chore: adopt changesets#256
Draft
pikonha wants to merge 1 commit into
Draft
Conversation
|
@pikonha is attempting to deploy a commit to the Blockful Team on Vercel. A member of the Team first needs to authorize it. |
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.
Summary
This PR adopts Changesets as the canonical versioning, changelog, tagging, and GitHub Releases workflow for the notification-system monorepo.
It keeps the existing Railway deploy flow untouched. Deploys still happen from
devandmain; this PR only adds a durable release record around those deploys.What changed
.changeset/with independent package versioning, GitHub changelog formatting,baseBranch: dev, andupdateInternalDependencies: patch.@changesets/cliand@changesets/changelog-githubto the root dev dependencies, plus apnpm changesetscript alias.private: trueso no npm publish can happen accidentally.version.yamlto open/update the rolling “Version Packages” PR on pushes todev.release.yamlto create package git tags and GitHub Releases on pushes tomain, without publishing to npm.release-readiness.yamlto blockdev -> mainPRs while unconsumed changesets still exist.graphql-contract-updates.yamlto require changesets foranticapture-clientand all generated-client consumers when GraphQL contract files change.test.yamlwith achangeset-checkjob so PRs todevmust include a changeset unless they are doc/GitHub/config-only changes.CLAUDE.mddocumenting how contributors and agents should use the new workflow.GitHub setup required
Before relying on this workflow, confirm these repository settings in GitHub:
Go to Settings -> Actions -> General -> Workflow permissions.
changesets/action@v1inversion.yamlto open/update the Version Packages PR.Confirm branch protections for
devallow the GitHub Actions bot to create/update the Version Packages PR branch.dev.github-actions[bot]or otherwise allow the Changesets action branch pattern used by the action.Confirm branch protections for
mainallowrelease.yamlto create tags and GitHub Releases on push tomain.contents: write, already declared in the workflow.pnpm changeset tag, notpnpm changeset publish.After this PR merges, make the new checks required where appropriate:
dev: requirechangeset-checkandgraphql-contract-updates.main: requirerelease-readiness.Keep Railway deploy settings unchanged.
.github/workflows/deploy.yamlwas intentionally not edited.devandmaindeploys continue independently of Changesets.Expected release flow after merge
devand include a.changeset/*.mdfile, or an empty changeset for non-releaseable changes.dev,version.yamlopens or updates the rolling “Version Packages” PR.devbefore opening the weeklydev -> mainPR.release-readiness.yamlblocks thedev -> mainPR if any unconsumed changesets remain.main,release.yamlcreates package tags and GitHub Releases. Nothing publishes to npm.Validation
pnpm install --frozen-lockfilepnpm changeset statuspnpm changeset status --since=origin/devafter staging.github/workflows/*.yamlprivate: truepnpm buildpnpm dispatcher testpnpm logic-system testpnpm consumer testpnpm subscription-server testpnpm --filter @notification-system/messages testpnpm --filter @notification-system/anticapture-client testpnpm --filter @notification-system/dashboard testKnown local test limitation
pnpm testwas also run. It failed only in@notification-system/integrated-testsduring Jest global setup because this local machine does not have a working Testcontainers container runtime. The package-specific CI matrix tests pass locally.