feat: set up monorepo release process with changesets#1
Conversation
👷 Deploy Preview for sulaf processing.
|
✅ Deploy Preview for sulaf canceled.
|
🦋 Changeset detectedLatest commit: caa83be The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
📝 WalkthroughSummary by CodeRabbitRelease Notes
WalkthroughThe pull request establishes a monorepo release automation system using Changesets. It introduces Changesets configuration, a GitHub Actions release workflow, npm scripts for versioning and publishing, and updates registry package metadata with new deployment URLs and naming conventions. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Tip You can disable the changed files summary in the walkthrough.Disable the |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.changeset/config.json:
- Around line 3-7: The "repo" value in the changelog config is currently just
"sulaf", which yields malformed GitHub links; update the "repo" property in the
changeset config object to the full GitHub slug in "owner/repo" format (e.g.,
"sulaf/your-repo-name") so the changelog generator can build correct
links—locate the "repo" key in the config JSON and replace the single-token
value with the full slug.
In @.github/workflows/release.yml:
- Around line 18-24: Update the GitHub Actions release workflow to match
repository constraints: replace the "Setup Node.js 20" step
(actions/setup-node@v3) with setup-node@v4 and set node-version to 24, add a
step to install Bun using setup-bun@v2 (targeting bun@1.3.10), and replace the
"Install Dependencies" step that runs `yarn` with a step that runs `bun install
--frozen-lockfile`; ensure step names reflect these changes so the workflow uses
Node 24 and Bun 1.3.10 for installs.
- Around line 16-21: Update the GitHub Actions step versions and Node target:
change the uses of actions/checkout@v3 and actions/setup-node@v3 to
actions/checkout@v4 and actions/setup-node@v4, and update the setup-node input
node-version from 20 to 24 so the workflow uses the maintained action versions
and a current Node runtime; locate the steps referencing "uses:
actions/checkout" and "uses: actions/setup-node" to apply these changes.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 70a37d0c-84cf-4f85-8a81-027cf9a18751
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (6)
.changeset/brown-weeks-brake.md.changeset/config.json.github/workflows/release.ymlpackage.jsonpackages/registry/package.jsonpackages/registry/scripts/registry.config.ts
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Redirect rules - sulaf
- GitHub Check: Header rules - sulaf
- GitHub Check: Pages changed - sulaf
🧰 Additional context used
🪛 actionlint (1.7.11)
.github/workflows/release.yml
[error] 16-16: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
[error] 19-19: the runner of "actions/setup-node@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
🪛 markdownlint-cli2 (0.21.0)
.changeset/brown-weeks-brake.md
[warning] 7-7: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
🔇 Additional comments (4)
packages/registry/package.json (1)
3-3: Good addition for Changesets compatibility.Adding an explicit package version here is the right move for monorepo release/version workflows.
packages/registry/scripts/registry.config.ts (1)
6-6: Config rename looks consistent with registry output generation.
baseUrl,registry.name, andregistry.homepageupdates are aligned and will flow correctly into generated registry metadata.Also applies to: 28-29
.changeset/brown-weeks-brake.md (1)
1-7: Changeset file is correctly structured for patch releases.The package bump declarations and summary message are valid for the release flow.
package.json (1)
26-29: Changesets script split is clean and conventional.Separating
versionandpublishscripts and keeping a composedreleasecommand improves release-step clarity.
| "changelog": [ | ||
| "@changesets/cli/changelog", | ||
| { | ||
| "repo": "sulaf" | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Expectation after fix: repo value contains a slash
python - <<'PY'
import json
cfg=json.load(open('.changeset/config.json'))
repo=cfg.get('changelog',[None,{}])[1].get('repo','')
print("repo =", repo)
print("valid_owner_repo_format =", "/" in repo and not repo.startswith("/") and not repo.endswith("/"))
PYRepository: hetari/sulaf
Length of output: 100
Update changelog configuration to use full GitHub slug.
Line 6 needs the owner/repo format. Using "sulaf" alone will produce malformed changelog links.
🔧 Proposed fix
- "repo": "sulaf"
+ "repo": "hetari/sulaf"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "changelog": [ | |
| "@changesets/cli/changelog", | |
| { | |
| "repo": "sulaf" | |
| } | |
| "changelog": [ | |
| "@changesets/cli/changelog", | |
| { | |
| "repo": "hetari/sulaf" | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.changeset/config.json around lines 3 - 7, The "repo" value in the changelog
config is currently just "sulaf", which yields malformed GitHub links; update
the "repo" property in the changeset config object to the full GitHub slug in
"owner/repo" format (e.g., "sulaf/your-repo-name") so the changelog generator
can build correct links—locate the "repo" key in the config JSON and replace the
single-token value with the full slug.
| uses: actions/checkout@v3 | ||
|
|
||
| - name: Setup Node.js 20 | ||
| uses: actions/setup-node@v3 | ||
| with: | ||
| node-version: 20 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Expectation after fix: no v3 references remain
rg -n 'uses:\s*actions/(checkout|setup-node)@v3' .github/workflows/release.yml || trueRepository: hetari/sulaf
Length of output: 131
🌐 Web query:
actions/checkout deprecated v3 v4 GitHub 2025
💡 Result:
No, actions/checkout v3 is not deprecated. The official GitHub repository actively maintains multiple versions including v3, v4, v5, and v6 as of 2026. The README highlights "What's new" sections for v6, v5, and v4, with v3 still listed in the changelog with updates up to v3.6.0. There is no official deprecation notice for v3 in GitHub changelogs or docs, unlike other actions like artifacts v3 or cache v1-v2 which have explicit notices for 2025. Recommendations exist to upgrade to v4+ due to Node.js EOL concerns in v3 (Node 16), but v3 remains usable without workflow failures. Use the latest v6 for best security and features: uses: actions/checkout@v6. Upgrade path: v3 -> v4 introduces Node20; v4 -> v5 Node24; v5 -> v6 improved credential handling.
Citations:
- 1: Bump actions/checkout from 3 to 4 actions/checkout#1697
- 2: https://github.com/actions/checkout/blob/main/CHANGELOG.md
- 3: https://github.com/actions/checkout
- 4: https://github.com/actions/checkout/releases
- 5: https://github.com/marketplace/actions/checkout
- 6: https://github.com/actions/checkout/blob/main/README.md?plain=1
🌐 Web query:
actions/setup-node v3 deprecated v4 node-version support
💡 Result:
actions/setup-node v3 is deprecated due to running on Node.js 16, which GitHub Actions deprecated starting late 2023. Users should upgrade to v4 or later (current latest is v6.3.0 as of March 2026). v4 was released to support Node.js 20 and avoid deprecation warnings. v4 fully supports all node-version syntaxes including major versions (e.g., 20, 22, 24), specific versions (e.g., 20.19, 24.8.0), LTS aliases (lts/iron, lts/), latest (, latest, node), nightly, RC, and V8 canary builds. It downloads from actions/node-versions repository, which includes up-to-date Node.js versions up to 24.14.0+ as of early 2026. Caching for npm/yarn/pnpm is supported. Migration from v3 to v4: Simply change uses: actions/setup-node@v3 to @v4 in workflows. No breaking changes noted; v4 maintains backward compatibility. Official docs and starter workflows recommend v6 now, but v4 resolves v3 issues. Use explicit node-version like '24' or 'lts/*' for best practices. Example: - uses: actions/setup-node@v6 with: node-version: 24 cache: 'npm'
Citations:
- 1: https://github.com/actions/setup-node/blob/main/README.md
- 2: https://git.homeinfra.org/actions/setup-node/src/tag/v4.0.4/README.md
- 3: https://github.com/actions/setup-node
- 4: https://github.com/actions/setup-node/releases
- 5: https://github.com/marketplace/actions/setup-node-js-environment?version=v3.1.0
- 6: Node 16 deprecation actions/setup-node#850
- 7: https://github.blog/changelog/2024-03-06-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
🏁 Script executed:
#!/bin/bash
# Check if there are other workflow files that might reference these versions
find .github/workflows -name "*.yml" -o -name "*.yaml" | head -20Repository: hetari/sulaf
Length of output: 112
Upgrade GitHub Actions to currently maintained versions.
actions/setup-node@v3 is deprecated (uses Node.js 16, which GitHub deprecated in late 2023). While actions/checkout@v3 is still maintained, upgrading both to v4 ensures consistency with current recommended practices. Current versions are v6 for both actions, but v4 provides a solid upgrade path and is fully backward-compatible.
Proposed upgrade: checkout@v4 and setup-node@v4 with node-version: 24 (supported and recommended for Node.js 20+ actions).
🧰 Tools
🪛 actionlint (1.7.11)
[error] 16-16: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
[error] 19-19: the runner of "actions/setup-node@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.github/workflows/release.yml around lines 16 - 21, Update the GitHub
Actions step versions and Node target: change the uses of actions/checkout@v3
and actions/setup-node@v3 to actions/checkout@v4 and actions/setup-node@v4, and
update the setup-node input node-version from 20 to 24 so the workflow uses the
maintained action versions and a current Node runtime; locate the steps
referencing "uses: actions/checkout" and "uses: actions/setup-node" to apply
these changes.
| - name: Setup Node.js 20 | ||
| uses: actions/setup-node@v3 | ||
| with: | ||
| node-version: 20 | ||
|
|
||
| - name: Install Dependencies | ||
| run: yarn |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Root runtime constraints =="
rg -n '"engines"|"packageManager"|"(bun|node)"\s*:' package.json -A4 -B2
echo
echo "== Workflow runtime/install config =="
rg -n 'setup-node|node-version|setup-bun|run:\s*(yarn|bun)' .github/workflows/release.yml -A2 -B1Repository: hetari/sulaf
Length of output: 508
Align CI install/runtime with repository constraints.
Workflow uses Node.js 20 (line 21) while package.json requires "node": ">=24.0.0", and uses yarn (line 24) although the repository specifies "packageManager": "bun@1.3.10". This creates release failures and non-reproducible builds.
Update to Node 24 with setup-node@v4, replace yarn with Bun 1.3.10 via setup-bun@v2, and use bun install --frozen-lockfile for the install step.
🧰 Tools
🪛 actionlint (1.7.11)
[error] 19-19: the runner of "actions/setup-node@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.github/workflows/release.yml around lines 18 - 24, Update the GitHub
Actions release workflow to match repository constraints: replace the "Setup
Node.js 20" step (actions/setup-node@v3) with setup-node@v4 and set node-version
to 24, add a step to install Bun using setup-bun@v2 (targeting bun@1.3.10), and
replace the "Install Dependencies" step that runs `yarn` with a step that runs
`bun install --frozen-lockfile`; ensure step names reflect these changes so the
workflow uses Node 24 and Bun 1.3.10 for installs.
No description provided.