INTER-1995: Migrate from semantic-release to changesets - #84
Conversation
Replace `semantic-release` with `@changesets/cli` for version and release management - Switch release workflow to `release-sdk-changesets`. - Add changeset preview job to analyze-commits workflow. - Remove unnecessary `.releaserc.json` file. - Reformat `CHANGELOG.md` to changesets format. - Update terraform output paths (`dist/terraform/terraform-*.json`). - Update `README.md` to reflect new artifact filenames. - Mark package as private to prevent npmjs publish. - Refactor `build.ts` path management. Related-Task: INTER-1995
There was a problem hiding this comment.
Pull request overview
This PR migrates the repository’s release/versioning automation from semantic-release to changesets, updating CI workflows and generated artifact naming to match the new release process.
Changes:
- Replace
semantic-releaseconfiguration with@changesets/cli+.changeset/config.jsonand updateCHANGELOG.mdto Changesets format. - Update GitHub Actions workflows to run Changesets-based release on pushes to
main, and add a PR changeset preview job. - Change Terraform artifact output locations/names (move out of
dist/terraform/json/, addterraform-prefix) and update docs accordingly.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| package.json | Marks package as private; adds Changesets tooling dependencies. |
| build.ts | Updates dist output paths and renames Terraform JSON artifacts with terraform- prefix. |
| README.md | Updates installation/build documentation to reference new Terraform artifact names/paths. |
| CONTRIBUTING.md | Updates contributor guidance to reflect Changesets-based release notes process. |
| CHANGELOG.md | Reformats changelog entries into Changesets-style sections. |
| .releaserc.json | Removes Semantic Release configuration. |
| .github/workflows/release.yml | Switches release workflow to Changesets-based reusable workflow, triggered on push to main. |
| .github/workflows/analyze-commits.yml | Adds Changesets preview job for PRs and skips changeset-release branches. |
| .changeset/config.json | Adds Changesets configuration (custom changelog format, restricted access, private package tagging). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| version-command: pnpm exec changeset version | ||
| publish-command: pnpm exec changeset publish | ||
| language: node | ||
| language-version: 24 |
There was a problem hiding this comment.
release.yml pins language-version: 24, but the repository standard is to use .node-version (currently 18) via actions/setup-node in other workflows. This mismatch can cause release builds to behave differently (or fail) compared to CI/local. Consider aligning the release workflow to .node-version (or updating .node-version + CI workflows if Node 24 is now required).
| language-version: 24 | |
| language-version: 18 |
There was a problem hiding this comment.
Maybe fix the other way by switching to 24 ?
There was a problem hiding this comment.
Upgrading the Node version for the project itself would be a different task. I think we should handle the Node version upgrade in a separate changeset. For now, I'll make sure the release workflow uses 18 (to make it similar to the developer setup)
| @@ -67,8 +67,8 @@ This is a quick overview of the installation setup. For detailed step-by-step in | |||
| ``` | |||
|
|
|||
| 3. Go to this repository [latest releases](https://github.com/fingerprintjs/fingerprint-pro-akamai-integration-property-rules/releases/latest) and download these two JSON files: | |||
There was a problem hiding this comment.
Old repo name needs updating? Fix everywhere pls
There was a problem hiding this comment.
Thanks for pointing that out. The repo name will be akamai-property-proxy, but this will be handled in a separate PR after the upcoming changes are merged. It's out of scope for this PR. I'll make sure this is fixed in the PR for the repo name change
| @@ -1,104 +1,2057 @@ | |||
| lockfileVersion: '6.0' | |||
| lockfileVersion: '9.0' | |||
There was a problem hiding this comment.
Is it not an issue that CI workflows still pin pnpn to version 8?
There was a problem hiding this comment.
I think this is caused by developers using different pnpm versions rather than CI (assuming the lock file doesn't change in the release workflow). There's a separate task for this issue, and it will be handled in a separate PR. We can optionally remove it from the current changes
pnpm exec changesetto create a changeset. |
JuroUhlar
left a comment
There was a problem hiding this comment.
Let's move this forward but make sure to fix the issues in follo-up PRs
Summary
semantic-releasewith@changesets/clifor versioning and release management.release-sdk-changesets(dist/terraform/json/todist/terraform/withterraform-prefixCHANGELOG.mdto changesets format.Out of Scope Changes
build.tspath handling.6.0to9.0.