Repository navigation
feat: cut versions automatically in the release sync - #12
Merged
Merged
Conversation
For every project with releases: auto, the daily sync now tags the next version at its newest commit when user-facing commits have landed since the last tag: minor for features or removals, patch for fixes and other changes, major for breaking changes from 1.0.0. Commits are attributed by the project's paths, so projects inside an epic version on their own. Without --cut the script only reports what it would tag.
Deploying graphite-hub with
|
| Latest commit: |
15503b0
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://477e45ec.portfolio-bo7.pages.dev |
| Branch Preview URL: | https://feat-auto-cut-releases.portfolio-bo7.pages.dev |
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.
What changed
Removes the need to remember to tag. With
--cut, whichsync.ymlnow passes, the daily sync does this for each project withreleases: auto:pathsowns the commits that touch those folders.pathsis never cut automatically.feator a removal, patch for fixes, style and perf changes, and major for!orBREAKING CHANGEfrom 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.Zinside an epic) goes on the project's newest commit, through the platform App.Tags people push by hand are still recorded.
releases: manualprojects (graphite-ui) are only recorded, never cut. Drafting a manual tag now also usespathswhen set, instead of the sibling-name heuristic.Without
--cut,npm run sync:releasesstays read-only and only reports what it would tag.Depends on platform#22 (
pathsandreleasesin 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 newnextVersioncases.npm run lint,format:checkandbuildpass, andcheck-routesfinds 25 routes.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.autorepositories (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
README.mddoes not describe the changelog yet.The sync still needs the
PLATFORM_APP_CLIENT_IDandPLATFORM_APP_PRIVATE_KEYrepository secrets on graphite-hub. Every scheduled run since 2026-10-02 has failed without them. Rollback: revert, or drop-- --cutinsync.ymlto return to recording only.