Publish each cycle's store, named for the cycle - #43
Merged
Conversation
RISCfuture
force-pushed
the
navdata/publish-store
branch
2 times, most recently
from
September 8, 2026 08:00
ccf7038 to
c505cc4
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 08:02
c505cc4 to
c5a531f
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 08:03
c5a531f to
3629b55
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 15:48
3629b55 to
82241ae
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 16:13
82241ae to
17ce676
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 16:20
17ce676 to
a451a6d
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 16:26
a451a6d to
d932496
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 16:33
d932496 to
b107b79
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 16:36
b107b79 to
be9cef2
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 16:58
be9cef2 to
d4bedaa
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 17:10
d4bedaa to
71d264b
Compare
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 8, 2026 18:09
71d264b to
66cac09
Compare
A store built on a Mac is only useful to the app if the app can fetch it. This publishes one per cycle to R2, beside the terrain the same bucket already serves, and confirms afterwards that what went up can be read back. Generation stays on Linux, in NavDataDistribution, where it already runs daily. This job transcodes what that publishes, which is the whole reason it needs macOS: SwiftData does not exist on Linux. Two pipelines generating from the FAA separately would drift, and the drift would only show up in a cockpit. Artifacts are named for their cycle and each manifest states the window it is effective for. There is no "latest" pointer, because a mutable one cannot say which cycle is current and a stale one is indistinguishable from a fresh one. It also gives the client somewhere to fall back to: a cycle whose publish failed leaves the previous one in place, still carrying its own expiry, rather than a hard 404 for four weeks. The manifest is uploaded after the store it describes, so a client that finds a manifest can rely on the store being there. The job is idempotent — a cycle already published costs two HTTP requests and stops — so running it daily is how a missed publish gets picked up rather than waiting for the next cycle. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq
RISCfuture
force-pushed
the
navdata/publish-store
branch
from
September 9, 2026 06:39
66cac09 to
32d7494
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A store built on a Mac is only useful to the app if the app can fetch it.
This publishes one per cycle to R2, beside the terrain the same bucket
already serves, and confirms afterwards that what went up can be read
back.
Generation stays on Linux, in NavDataDistribution, where it already runs
daily. This job transcodes what that publishes, which is the whole reason
it needs macOS: SwiftData does not exist on Linux. Two pipelines
generating from the FAA separately would drift, and the drift would only
show up in a cockpit.
Artifacts are named for their cycle and each manifest states the window
it is effective for. There is no "latest" pointer, because a mutable one
cannot say which cycle is current and a stale one is indistinguishable
from a fresh one. It also gives the client somewhere to fall back to: a
cycle whose publish failed leaves the previous one in place, still
carrying its own expiry, rather than a hard 404 for four weeks.
The manifest is uploaded after the store it describes, so a client that
finds a manifest can rely on the store being there.
The job is idempotent — a cycle already published costs two HTTP requests
and stops — so running it daily is how a missed publish gets picked up
rather than waiting for the next cycle.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq
Stack created with GitHub Stacks CLI • Give Feedback 💬
🤖 Generated with Claude Code
https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq