- 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>