Skip to content

Release flow: how to pin Frame, and a consumer CI builds - #29

Merged
fts-forge[bot] merged 2 commits into
mainfrom
chore/gh-6-release-flow
Nov 2, 2026
Merged

fts-forge[bot] merged 2 commits into
mainfrom
chore/gh-6-release-flow

Conversation

@fts-forge

@fts-forge fts-forge Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Part of #6 (it closes once v0.1.0 is tagged). Part of #2. Stacked on #28 → #27 → #26; this PR's base is #28's branch.

What

  • README, "Using Frame":
    • the tag snippet, with frame (core) and frame-architect;
    • the [patch] tables a consumer has to repeat;
    • start a new app's Cargo.lock from Frame's.
  • README, "Releases":
    • semver like architect: vX.Y.Z tags on a green main, trunk-based, no release branches or commits;
    • Frame moves with architect via architect's just fleet-bump vX.Y.Z ../frame, plus that tag's other pins and [patch] tables in the same PR.
    • fleet-bump already takes any consumer path, so Frame needs no code entry in architect.
  • examples/consumer: the snippet as an out-of-tree crate, in its own workspace, pinned by tag v0.1.0. just consumer, a new CI job required by ci:
    • builds it against the commit under test, by patching Frame's git source to the checkout. So it works before the tag exists and needs no access to the private repo.
    • fails when the consumer's [patch] table drifts from Frame's.
  • Found by it: a fresh resolve picks smallvec 2.0.0-beta.4, and facet-styx 5.0.0-rc.7 doesn't compile against it. The consumer therefore starts from Frame's lock, and the README says to.

Proposed: v0.1.0

Once #26, #27, #28 and this PR are merged and main's checks are green, tag that commit v0.1.0. Nothing is tagged yet. After the tag:

Checks (local, per LOCAL-CHECKS.md)

  • Ran:
    • cargo fmt --all -- --check, plus rustfmt on the consumer;
    • just consumer, which passes.
  • Skipped:
    • clippy and tests: no workspace code changed, and the consumer crate isn't a workspace member.

@fts-forge
fts-forge Bot force-pushed the chore/gh-6-release-flow branch from 6ae8599 to 1cbd621 Compare November 2, 2026 05:48
@fts-forge
fts-forge Bot force-pushed the refactor/gh-5-core-architect-split branch from 300936a to 8c541c7 Compare November 2, 2026 05:50
@fts-forge
fts-forge Bot force-pushed the chore/gh-6-release-flow branch from 1cbd621 to 427ebca Compare November 2, 2026 06:01
@fts-forge
fts-forge Bot changed the base branch from refactor/gh-5-core-architect-split to main November 2, 2026 06:17
fts-forge Bot added 2 commits November 1, 2026 22:17
- README: Using Frame (the tag snippet, the [patch] tables to repeat, the
  lock to start from) and Releases (semver vX.Y.Z on a green main; moving
  with architect through architect's `just fleet-bump vX.Y.Z ../frame`).
- examples/consumer: the snippet as an out-of-tree crate (its own
  workspace), pinned by tag v0.1.0. `just consumer` (a CI job) builds it
  against the commit under test by patching Frame's git source to this
  checkout, so it works before the tag exists and without repo access, and
  fails when its [patch] tables drift from Frame's.
- It starts from Frame's Cargo.lock: a fresh resolve picked smallvec 2.0
  beta.4, which facet-styx 5.0.0-rc.7 doesn't compile against.
…kout

Patching the consumer's Frame git source still made cargo fetch the repo,
which the pool runner can't read (private, no credentials) and which has
no v0.1.0 tag yet. The check now builds a scratch copy whose frame and
frame-architect dependencies are path deps on the checkout.
@fts-forge
fts-forge Bot force-pushed the chore/gh-6-release-flow branch from 427ebca to 5440750 Compare November 2, 2026 06:17
@fts-forge
fts-forge Bot merged commit d37d905 into main Nov 2, 2026
4 checks passed
@fts-forge fts-forge Bot mentioned this pull request Nov 2, 2026
2 tasks
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.

0 participants