Self-review of the two preceding commits.
- the release body hardcoded one FAA basename while files: uploads every source by glob, so
each release attached an asset it did not list; basenames are now derived the same way
- allow_bootstrap was a standing matrix key on tc that nothing forced anyone to remove, so
an outage longer than the release walk-back would have rebuilt from one day with a green
run; it is now a workflow_dispatch input naming the one source permitted to bootstrap
- the per-source glob excluded prefixes by substring while build_registry.py matches the
source token exactly, so a future source named registry_* would have been dropped here
and kept there; both now anchor on the same filename shape
- README lists the Transport Canada asset, which the previous commit began publishing
Generated-by: Claude Opus 5 <noreply@anthropic.com>
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>
- 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>