Skip to content

chore: keep graphite-ui versions manual - #10

Merged
AmrMsCLL merged 1 commit into
mainfrom
chore/manual-releases
Oct 4, 2026
Merged

AmrMsCLL merged 1 commit into
mainfrom
chore/manual-releases

Conversation

@AmrMsCLL

@AmrMsCLL AmrMsCLL commented Oct 4, 2026

Copy link
Copy Markdown
Member

The Hub changelog sync tags new versions automatically by default; graphite-ui tags publish package releases through its own release PRs, so it records those tags without cutting its own.

The Hub changelog sync tags new versions automatically by default; graphite-ui tags publish package releases through its own release PRs, so it records those tags without cutting its own.
@github-actions github-actions Bot added the size/xs 0-10 changed lines, excluding lockfiles label Oct 4, 2026
@AmrMsCLL
AmrMsCLL merged commit d947fc2 into main Oct 4, 2026
4 checks passed
@AmrMsCLL
AmrMsCLL deleted the chore/manual-releases branch October 4, 2026 12:35
AmrMsCLL added a commit to Project-Graphite/graphite-hub that referenced this pull request Oct 4, 2026
## What changed

Removes the need to remember to tag. With `--cut`, which `sync.yml` now
passes, the daily sync does this for each project with `releases: auto`:

1. **Attributes commits since its last version tag to the project.**
   - A project with `paths` owns the commits that touch those folders.
   - An epic owns the remaining commits in its repository.
   - A child project without `paths` is never cut automatically.
2. **Tags the next version if any of those commits is user-facing.** The
bump is minor for `feat` or a removal, patch for fixes, style and perf
changes, and major for `!` or `BREAKING CHANGE` from 1.0.0 onwards
(minor before that). The first version is 0.1.0, and after a prerelease
the pending version is released. The tag (`vX.Y.Z`, or `<slug>/vX.Y.Z`
inside an epic) goes on the project's newest commit, through the
platform App.
3. **Drafts the entry** in the same run, using the same PR and merge
flow as today.

Tags people push by hand are still recorded. `releases: manual` projects
(graphite-ui) are only recorded, never cut. Drafting a manual tag now
also uses `paths` when set, instead of the sibling-name heuristic.

Without `--cut`, `npm run sync:releases` stays read-only and only
reports what it would tag.

Depends on platform#22 (`paths` and `releases` in the registry, already
merged and synced here), Project-Graphite/windhawk-mods#3 (mod paths)
and Project-Graphite/graphite-ui#10 (`releases: manual`).

## Verification

- `npm test`: 18 pass, including the new `nextVersion` cases. `npm run
lint`, `format:check` and `build` pass, and `check-routes` finds 25
routes.
- Dry run against GitHub: it would tag `strata@v0.2.0`, which has 40
feature commits since v0.1.0. Every other project has no user-facing
commits since its last tag. It drafted graphite-ui 0.2.0 and 0.2.1 from
their existing tags correctly; I removed those drafts so the first real
run creates them.
- None of the `auto` repositories (strata, graphite-tracker,
graphite-message-lab, digital-to-physical, windhawk-mods) has a workflow
triggered by tags, so an automatic tag starts no build or deploy.

## Checklist

- [x] The change is focused and contains no credentials or generated
secrets.
- [ ] Documentation and tests were updated when behavior changed. Tests
were added; `README.md` does not describe the changelog yet.
- [x] Deployment or rollback considerations are described when relevant.

The sync still needs the `PLATFORM_APP_CLIENT_ID` and
`PLATFORM_APP_PRIVATE_KEY` repository secrets on graphite-hub. Every
scheduled run since 2026-10-02 has failed without them. Rollback:
revert, or drop `-- --cut` in `sync.yml` to return to recording only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/xs 0-10 changed lines, excluding lockfiles

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant