Skip to content

Record nightly previews as part of the branching North Star - #32

Draft
ChrisonSimtian wants to merge 1 commit into
docs/rework-contribution-mdfrom
docs/northstar-nightly-cadence
Draft

Record nightly previews as part of the branching North Star#32
ChrisonSimtian wants to merge 1 commit into
docs/rework-contribution-mdfrom
docs/northstar-nightly-cadence

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Owner

Records nightly previews as part of the branching North Star. Nothing is implemented; the live workflow is untouched.

Stacked on Fallout-build#637. Base is docs/rework-contribution-md, so review that first — this diff only shows the delta.

What changed

  • docs/branching-and-release.md → North Star: a Preview cadence row in the Current/North Star table, and a new ## Nightly preview cadence section with the current and proposed triggers side by side.
  • docs/versioning.md → North Star: a short note that the cadence change does not touch the version scheme, so nobody reads the GitFlow section and assumes version.json moves with it.
  • docs/adr/0012-…: one bullet under §2 North Star.

Docs only, additive, 51 lines.

Why the version scheme stays put

Nightly needs no date in the version. The shape stays …-preview.{height}, {height} stays monotonic, and .g<commit> still names the exact commit built. ADR-0004 rejected date-based version cores; that rejection stands and this does not reopen it. Worth stating explicitly, because "nightly" usually implies a date-stamped version and here it does not.

The two traps are the point of the section

Both would have been found the hard way:

  • schedule fires only from the default branch. GitHub ignores schedule on non-default branches, so a nightly meant to build develop needs develop to be the default branch, or an explicit ref: develop on the checkout. Under full GitFlow, develop as default is the consistent choice and also makes new PRs target it.
  • A night with no commits reproduces the previous version. {height} only advances on a commit, so a quiet day yields a version that already exists and the push is rejected as a duplicate. Without a no-new-commits guard, every quiet night reports a red publish.

Trade-off, stated rather than buried

The preview lane publishes 22 packages per run, so per-commit means most runs differ trivially. Nightly cuts published versions, CI wall-clock, and the work the prune job undoes. It costs up to a day of latency before a merged fix is consumable, with workflow_dispatch as the escape hatch, and it attributes a regression to a night rather than a commit.

Fallout.Canary is unaffected either way — it already runs on a nightly cron and treats the repository_dispatch link as optional.

The GitFlow North Star moves the preview lane from `main` to `develop`. This
records that the cadence moves with it: one build a night instead of one per
commit.

Cadence only. The version stays `…-preview.{height}`, so `version.json` is
untouched and nbgv keeps producing monotonic heights. ADR-0004 rejected
date-based version cores and that rejection is not reopened.

Also records the two mechanical traps that would otherwise be found the hard
way. GitHub fires `schedule` only from the default branch, so a nightly of
`develop` needs `develop` to be the default branch or an explicit `ref` on the
checkout. And a night with no commits reproduces the previous version, because
`{height}` only advances on a commit, so the nightly needs a no-new-commits
guard or every quiet night reports a failed publish.

Nothing here is implemented. It sits under North Star in all three documents.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant