Each source accumulates by reading its own previous release asset, but only the joined
registry and the FAA CSV were published. Transport Canada could therefore never find a
prior asset and would have rebuilt from a single day on every run, permanently.
- stage the joined CSV and every per-source asset into one flat directory before upload,
so the artifact has a single root and nothing is lost to the least-common-ancestor rule
- carry the per-source CSVs into the release by glob, so a new source needs no edit here
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- key the reusable workflow's concurrency on the source: one shared group made the matrix
legs cancel each other, defeating the parallelism
- resolve action versions at write time on the jobs this change adds (checkout v7,
setup-python v7, upload-artifact v7, download-artifact v8) and add the missing
workflow concurrency block and job-level permissions
- stage each leg's outputs into one directory so every artifact has the same root; two
search paths moved the root to the common ancestor for some legs only, and the FAA CSV
and zip then matched nothing downstream
- fail a leg that produced no CSV, and split the unknown-source guard out of the tolerated
step so a matrix typo goes red
- write continue-on-error as an explicit comparison rather than relying on ! coercion
- gate the join on success rather than always, and rename its artifact so the download
pattern cannot re-ingest it on a re-run
- delete the previous release only when it exists, so a 403 stops the run instead of
leaving two assets that the next run reads as an ambiguous base
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- replace the hand-written build-faa job with a matrixed call per source, faa required and
tc tolerated, joined once every thread has finished
- publish openairframes_registry_*.csv and keep openairframes_faa_*.csv during transition
- validate the joined registry and NOTICE as required release files
- report missing optional assets as a workflow annotation rather than a plain echo
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- add a reusable registry-source workflow so every source runs in parallel rather than as
a hand-written job; adding a registry becomes one matrix entry plus one script
- add build_registry.py to align the per-source CSVs on the union of columns and emit a
single table discriminated by the source column
- reindex each frame to the union before concatenating, so a source missing a column
yields an empty cell rather than a shifted row
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- part id is 0-indexed in both --help and the loader docstring, matching the matrix
- daily release cron comment said 6:00pm while the expression fires at 06:00 UTC
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- write through get_schema_path() instead of a literal v1 filename
- drop the unreferenced SCHEMA_PATH backwards-compatibility shim
- widen the community PR trigger to schemas/** so a version bump still fires it
Generated-by: Claude Opus 5 <noreply@anthropic.com>
- prevent command injection from a crafted issue body closing the heredoc early
- drop the debug step that echoed untrusted input for no operational value
- read body and issue number from env in the community validation workflow
Generated-by: Claude Opus 5 <noreply@anthropic.com>
add clickhouse_connect
use 32GB
update to no longer do df.copy()
Add planequery_adsb_read.ipynb
INCREASE: update Fargate task definition to 16 vCPU and 64 GB memory for improved performance on large datasets
update notebook
remove print(df)
Ensure empty strings are preserved in DataFrame columns
check if day has data for adsb
update notebook