Conversation
|
debf477 to
4211ce6
Compare
4211ce6 to
b206570
Compare
📝 WalkthroughWalkthroughAdds Changesets snapshot configuration, introduces a new NPM beta-release GitHub Actions workflow, and updates Rust/release workflows to compute and use a NEXT_VERSION for prerelease tagging via a helper script. Changes
Sequence Diagram(s)sequenceDiagram
participant User as Trigger (manual)
participant Workflow as NPM Beta Workflow
participant Repo as Git Checkout
participant Version as Version Script
participant Changesets as Changesets Check
participant Builder as Build & Snapshot
participant Registry as npm Registry
User->>Workflow: workflow_dispatch (snapshot_tag)
Workflow->>Repo: checkout (full history, submodules)
Repo->>Version: read package.json -> compute base version + short SHA
Version->>Workflow: produce beta VERSION (base.tag.sha)
Workflow->>Changesets: check for pending changesets
alt changesets exist
Changesets->>Builder: create snapshots & install deps
Builder->>Builder: build packages
Builder->>Registry: publish packages (NPM_TOKEN)
Builder->>Workflow: write step summary (version, tag, install cmd)
else no changesets
Changesets->>Workflow: emit "No changesets" summary and guidance
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
⏰ 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). (56)
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 |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/npm-preview-release.yml (1)
47-58: Version calculation relies on a hardcoded package.json path—consider parameterizing it.Line 54 reads the base version from a fixed path (
./typescript/sdk/package.json), which could become brittle if the repo structure changes. Consider extracting this as a workflow parameter, an environment variable, or a helper script that auto-discovers the right package, similar to how the changesets config drives the "fixed" package group. Additionally, since line 63 usesyarn changeset version --snapshot, verify that the manually computed version on lines 54–57 aligns with what changesets actually generates and publishes.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.changeset/config.json(1 hunks).github/workflows/npm-preview-release.yml(1 hunks).github/workflows/rust-release.yml(1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.8)
.github/workflows/npm-preview-release.yml
30-30: label "depot-ubuntu-latest" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-11-arm", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ 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). (55)
- GitHub Check: env-test-matrix (testnet4, sepolia, core)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-recovery)
- GitHub Check: cli-evm-e2e-matrix (warp-send)
- GitHub Check: env-test-matrix (mainnet3, optimism, core)
- GitHub Check: env-test-matrix (mainnet3, inevm, igp)
- GitHub Check: env-test-matrix (mainnet3, arbitrum, core)
- GitHub Check: env-test-matrix (mainnet3, optimism, igp)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-basic)
- GitHub Check: env-test-matrix (mainnet3, inevm, core)
- GitHub Check: cli-evm-e2e-matrix (warp-init)
- GitHub Check: env-test-matrix (mainnet3, arbitrum, igp)
- GitHub Check: env-test-matrix (mainnet3, ethereum, igp)
- GitHub Check: env-test-matrix (mainnet3, ethereum, core)
- GitHub Check: cli-evm-e2e-matrix (warp-bridge-2)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-config)
- GitHub Check: cli-evm-e2e-matrix (warp-deploy-2)
- GitHub Check: cli-evm-e2e-matrix (warp-rebalancer)
- GitHub Check: cli-evm-e2e-matrix (warp-check-4)
- GitHub Check: cli-evm-e2e-matrix (warp-read)
- GitHub Check: cli-evm-e2e-matrix (warp-deploy-1)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-ism-updates)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-1)
- GitHub Check: cli-evm-e2e-matrix (core-read)
- GitHub Check: cli-evm-e2e-matrix (warp-bridge-1)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-2)
- GitHub Check: cli-evm-e2e-matrix (warp-check-3)
- GitHub Check: cli-evm-e2e-matrix (warp-check-5)
- GitHub Check: cli-evm-e2e-matrix (warp-check-2)
- GitHub Check: cli-evm-e2e-matrix (relay)
- GitHub Check: cli-evm-e2e-matrix (warp-check-1)
- GitHub Check: cli-evm-e2e-matrix (core-check)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-submitters)
- GitHub Check: cli-radix-e2e-matrix (warp-apply-route-extension)
- GitHub Check: cli-evm-e2e-matrix (core-deploy)
- GitHub Check: cli-cross-chain-e2e-matrix (warp-deploy)
- GitHub Check: cli-evm-e2e-matrix (core-apply)
- GitHub Check: cli-evm-e2e-matrix (core-init)
- GitHub Check: cli-radix-e2e-matrix (warp-apply-ownership-updates)
- GitHub Check: cli-radix-e2e-matrix (core-deploy)
- GitHub Check: cosmos-sdk-e2e-run
- GitHub Check: cli-radix-e2e-matrix (warp-deploy)
- GitHub Check: cli-cross-chain-e2e-matrix (warp-apply)
- GitHub Check: cli-cosmos-e2e-matrix (warp-deploy)
- GitHub Check: cli-cosmos-e2e-matrix (core-apply)
- GitHub Check: cli-cosmos-e2e-matrix (warp-read)
- GitHub Check: cli-install-test-run
- GitHub Check: cli-cosmos-e2e-matrix (core-check)
- GitHub Check: cli-cosmos-e2e-matrix (core-read)
- GitHub Check: cli-cosmos-e2e-matrix (core-deploy)
- GitHub Check: infra-test
- GitHub Check: test-rs
- GitHub Check: lint-rs
- GitHub Check: lander-coverage
- GitHub Check: e2e-matrix (evm)
- GitHub Check: yarn-install
🔇 Additional comments (5)
.changeset/config.json (1)
33-37: Snapshot configuration aligns with changeset versioning strategy. SettinguseCalculatedVersion: truewill use the calculated version based on changeset files, andprereleaseTemplateconfigures the suffix for snapshot releases with placeholders like{tag}and{commit}. This pairs well with the npm preview workflow's snapshot release flow..github/workflows/rust-release.yml (1)
282-302: Prerelease versioning now uses calculated next version—aligns with changesets approach.Switching from BASE_VERSION to NEXT_VERSION for prerelease naming makes the Rust workflow consistent with the NPM preview release model. The comments nicely explain the rationale. Worth verifying this change won't break any tooling or scripts downstream that may expect the old prerelease format (e.g., deployment, artifact naming).
.github/workflows/npm-preview-release.yml (3)
30-30:depot-ubuntu-latestrunner label is valid for Depot—actionlint warning is a false positive.Depot supports the
depot-ubuntu-latestalias for the current Ubuntu LTS release, so the static analysis flag here is a false positive. The workflow is correctly configured for your CI/CD infrastructure.
62-71: Workflow structure and publish flow are sound—verify version consistency across snapshot and publish steps.The changeset-based snapshot and publish steps follow best practices. However, double-check that the version output used in the GitHub release (line 79) matches the version that changesets publishes, especially since there's a separate manual version calculation upstream. If they diverge, the GitHub release tag could mismatch the published package version.
84-98: Pre-release warning and installation instructions are clear and helpful.The release body includes a prominent warning for preview releases and concise installation commands using the snapshot tag. This is good developer ergonomics—new maintainers and CI systems will immediately know this is a preview and how to install it.
3e14842 to
f2f221b
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/npm-beta-release.yml (1)
54-60: Input handling has redundant fallback logic.Since
snapshot_tagis defined asrequired: truein the workflow_dispatch inputs (line 12), the|| 'beta'fallback patterns on lines 65 and 73 aren't strictly necessary — the input will always be present. Simplifying these to just${{ inputs.snapshot_tag }}would make the intent clearer. That said, the current approach is defensive and works fine.If you'd like to clean this up, here's what the publish and version steps could look like:
- name: Create snapshot versions - run: yarn changeset version --snapshot ${{ inputs.snapshot_tag || 'beta' }} + run: yarn changeset version --snapshot ${{ inputs.snapshot_tag }}And similarly for line 73.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
.changeset/config.json(1 hunks).changeset/test-beta-release.md(1 hunks).github/workflows/npm-beta-release.yml(1 hunks).github/workflows/rust-release.yml(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .changeset/test-beta-release.md
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: paulbalaji
Repo: hyperlane-xyz/hyperlane-monorepo PR: 6943
File: rust/main/config/mainnet_config.json:965-965
Timestamp: 2025-08-26T13:46:37.695Z
Learning: In the repository hyperlane-xyz/hyperlane-monorepo, skip reviewing the file rust/main/config/testnet_config.json in future code reviews as requested by paulbalaji.
🪛 actionlint (1.7.8)
.github/workflows/npm-beta-release.yml
34-34: label "depot-ubuntu-latest" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-11-arm", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ 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). (57)
- GitHub Check: cli-evm-e2e-matrix (warp-deploy-2)
- GitHub Check: cli-evm-e2e-matrix (warp-deploy-1)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-recovery)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-config)
- GitHub Check: cli-evm-e2e-matrix (warp-rebalancer)
- GitHub Check: cli-evm-e2e-matrix (warp-check-4)
- GitHub Check: cli-evm-e2e-matrix (warp-read)
- GitHub Check: cli-evm-e2e-matrix (warp-check-5)
- GitHub Check: cli-evm-e2e-matrix (warp-send)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-basic)
- GitHub Check: cli-evm-e2e-matrix (warp-check-3)
- GitHub Check: cli-evm-e2e-matrix (warp-init)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-ism-updates)
- GitHub Check: cli-evm-e2e-matrix (warp-check-1)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-2)
- GitHub Check: cli-evm-e2e-matrix (warp-bridge-2)
- GitHub Check: cli-evm-e2e-matrix (relay)
- GitHub Check: cli-evm-e2e-matrix (warp-bridge-1)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-submitters)
- GitHub Check: cli-evm-e2e-matrix (warp-check-2)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-1)
- GitHub Check: cli-evm-e2e-matrix (core-read)
- GitHub Check: cli-evm-e2e-matrix (core-init)
- GitHub Check: cli-evm-e2e-matrix (core-check)
- GitHub Check: cli-evm-e2e-matrix (core-deploy)
- GitHub Check: env-test-matrix (mainnet3, arbitrum, igp)
- GitHub Check: cli-evm-e2e-matrix (core-apply)
- GitHub Check: env-test-matrix (testnet4, sepolia, core)
- GitHub Check: env-test-matrix (mainnet3, arbitrum, core)
- GitHub Check: env-test-matrix (mainnet3, ethereum, core)
- GitHub Check: env-test-matrix (mainnet3, optimism, core)
- GitHub Check: env-test-matrix (mainnet3, inevm, igp)
- GitHub Check: env-test-matrix (mainnet3, inevm, core)
- GitHub Check: env-test-matrix (mainnet3, optimism, igp)
- GitHub Check: env-test-matrix (mainnet3, ethereum, igp)
- GitHub Check: cli-radix-e2e-matrix (warp-apply-route-extension)
- GitHub Check: cli-cosmos-e2e-matrix (core-read)
- GitHub Check: cli-radix-e2e-matrix (warp-deploy)
- GitHub Check: cli-radix-e2e-matrix (core-deploy)
- GitHub Check: cli-cosmos-e2e-matrix (warp-read)
- GitHub Check: cli-cross-chain-e2e-matrix (warp-apply)
- GitHub Check: cosmos-sdk-e2e-run
- GitHub Check: cli-radix-e2e-matrix (warp-apply-ownership-updates)
- GitHub Check: cli-cosmos-e2e-matrix (warp-deploy)
- GitHub Check: cli-cosmos-e2e-matrix (core-deploy)
- GitHub Check: cli-cosmos-e2e-matrix (core-apply)
- GitHub Check: cli-cross-chain-e2e-matrix (warp-deploy)
- GitHub Check: cli-cosmos-e2e-matrix (core-check)
- GitHub Check: yarn-test-run
- GitHub Check: cli-install-test-run
- GitHub Check: infra-test
- GitHub Check: e2e-matrix (evm)
- GitHub Check: yarn-install
- GitHub Check: lint-rs
- GitHub Check: lander-coverage
- GitHub Check: test-rs
- GitHub Check: beta-release
🔇 Additional comments (6)
.changeset/config.json (1)
34-37: Snapshot versioning configuration looks solid.The
useCalculatedVersion: trueandprereleaseTemplate: "{tag}.{commit}"settings will work nicely with the snapshot release flow — keeps version bumps consistent across NPM and Rust workflows. This aligns with the changesets documentation for snapshot releases..github/workflows/npm-beta-release.yml (4)
61-71: Dependency setup and build process look straightforward.Using
--immutableensures reproducibility, and passing the GITHUB_TOKEN to the version step (if needed by changesets) is the right call. The snapshot versioning via changesets will respect the config we saw earlier.
72-77: Publish configuration with provenance is solid security practice.Using
NODE_AUTH_TOKENfor authentication and enablingNPM_CONFIG_PROVENANCEshows good attention to security and supply-chain best practices. Just make sure theNPM_TOKENsecret is already set in the repository settings — if not, this step will fail silently (or with an auth error) since the token will be empty.Ensure
NPM_TOKENsecret is configured in repository settings. You can verify this manually in Settings → Secrets and variables → Actions, or by attempting a test run of the workflow.
78-90: Workflow summary is clear and user-friendly.Including the version, tag, branch, and install commands makes it easy for users to copy-paste and test the beta release. This is exactly the kind of documentation that prevents support questions.
34-34: Static analysis hint aboutdepot-ubuntu-latestrunner can be ignored.The actionlint tool flagged this as an unknown runner label, but it's a custom Depot runner which is used consistently throughout your workflows (e.g.,
rust-release.ymlline 35). This is expected and not an issue..github/workflows/rust-release.yml (1)
281-302: Script exists and properly handles edge cases including first release.The
determine-next-version.shscript is well-implemented with robust error handling:
- Edge case handling: Lines 36-46 correctly handle the first release scenario. When no previous tags exist, it falls back to analyzing all commits in the repository using
git log --oneline --no-merges -- .- Internal error handling: The script uses
set -euo pipefail(line 20) and validates arguments upfront (lines 22-26).- Workflow error propagation: GitHub Actions runs bash steps with
-eflag by default, so any failure indetermine-next-version.shwill cause the workflow step to fail and halt execution.The implementation properly handles the concern about "very first release" scenarios—when no agents tags exist, the script retrieves the git log for all commits and correctly determines the version bump.
7bb5555 to
2cb4fc8
Compare
2cb4fc8 to
c011ab2
Compare
This reverts commit c011ab2.
Skip build and publish steps when no changesets are present, and display a helpful summary explaining how to create a beta release.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/npm-beta-release.yml (1)
75-75: Clean up redundant fallback operators in snapshot_tag.Since
snapshot_taginput hasrequired: trueanddefault: 'beta', the|| 'beta'fallback on lines 75 and 87 is unreachable dead code. The input will always be populated, so these can be simplified.- run: yarn changeset version --snapshot ${{ inputs.snapshot_tag || 'beta' }} + run: yarn changeset version --snapshot ${{ inputs.snapshot_tag }}- run: | - echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> $HOME/.npmrc - yarn changeset publish --tag ${{ inputs.snapshot_tag || 'beta' }} + run: | + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> $HOME/.npmrc + yarn changeset publish --tag ${{ inputs.snapshot_tag }}Also applies to: 87-87
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
.changeset/config.json(1 hunks).github/workflows/npm-beta-release.yml(1 hunks).github/workflows/release.yml(1 hunks).github/workflows/rust-release.yml(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- .changeset/config.json
- .github/workflows/rust-release.yml
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: paulbalaji
Repo: hyperlane-xyz/hyperlane-monorepo PR: 6943
File: rust/main/config/mainnet_config.json:965-965
Timestamp: 2025-08-26T13:46:37.695Z
Learning: In the repository hyperlane-xyz/hyperlane-monorepo, skip reviewing the file rust/main/config/testnet_config.json in future code reviews as requested by paulbalaji.
Learnt from: paulbalaji
Repo: hyperlane-xyz/hyperlane-monorepo PR: 6943
File: rust/main/config/mainnet_config.json:965-965
Timestamp: 2025-08-26T13:46:37.695Z
Learning: In the repository hyperlane-xyz/hyperlane-monorepo, skip reviewing the file rust/main/config/mainnet_config.json in future code reviews as requested by paulbalaji.
⏰ 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). (55)
- GitHub Check: yarn-test
- GitHub Check: cli-evm-e2e-matrix (warp-send)
- GitHub Check: cli-evm-e2e-matrix (warp-read)
- GitHub Check: cli-evm-e2e-matrix (warp-check-3)
- GitHub Check: cli-evm-e2e-matrix (warp-rebalancer)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-config)
- GitHub Check: cli-evm-e2e-matrix (warp-init)
- GitHub Check: cli-evm-e2e-matrix (warp-check-4)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-recovery)
- GitHub Check: cli-evm-e2e-matrix (warp-check-1)
- GitHub Check: cli-evm-e2e-matrix (warp-check-2)
- GitHub Check: cli-evm-e2e-matrix (warp-bridge-1)
- GitHub Check: cli-evm-e2e-matrix (warp-check-5)
- GitHub Check: cli-evm-e2e-matrix (warp-deploy-2)
- GitHub Check: cli-evm-e2e-matrix (warp-extend-basic)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-submitters)
- GitHub Check: cli-evm-e2e-matrix (warp-deploy-1)
- GitHub Check: cli-evm-e2e-matrix (warp-bridge-2)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-ism-updates)
- GitHub Check: cli-evm-e2e-matrix (core-deploy)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-1)
- GitHub Check: cli-evm-e2e-matrix (core-read)
- GitHub Check: cli-evm-e2e-matrix (core-check)
- GitHub Check: cli-evm-e2e-matrix (relay)
- GitHub Check: cli-evm-e2e-matrix (warp-apply-2)
- GitHub Check: cli-evm-e2e-matrix (core-apply)
- GitHub Check: cli-evm-e2e-matrix (core-init)
- GitHub Check: env-test-matrix (mainnet3, arbitrum, igp)
- GitHub Check: env-test-matrix (testnet4, sepolia, core)
- GitHub Check: env-test-matrix (mainnet3, inevm, core)
- GitHub Check: env-test-matrix (mainnet3, inevm, igp)
- GitHub Check: env-test-matrix (mainnet3, ethereum, core)
- GitHub Check: env-test-matrix (mainnet3, optimism, core)
- GitHub Check: env-test-matrix (mainnet3, arbitrum, core)
- GitHub Check: env-test-matrix (mainnet3, ethereum, igp)
- GitHub Check: env-test-matrix (mainnet3, optimism, igp)
- GitHub Check: cli-cosmos-e2e-matrix (core-deploy)
- GitHub Check: cli-cosmos-e2e-matrix (warp-read)
- GitHub Check: cli-cosmos-e2e-matrix (warp-deploy)
- GitHub Check: cli-cosmos-e2e-matrix (core-read)
- GitHub Check: cli-radix-e2e-matrix (warp-apply-route-extension)
- GitHub Check: cli-cosmos-e2e-matrix (core-apply)
- GitHub Check: cli-radix-e2e-matrix (warp-apply-ownership-updates)
- GitHub Check: cli-cosmos-e2e-matrix (core-check)
- GitHub Check: cli-radix-e2e-matrix (warp-deploy)
- GitHub Check: cosmos-sdk-e2e-run
- GitHub Check: cli-cross-chain-e2e-matrix (warp-apply)
- GitHub Check: cli-radix-e2e-matrix (core-deploy)
- GitHub Check: cli-cross-chain-e2e-matrix (warp-deploy)
- GitHub Check: cli-install-test-run
- GitHub Check: infra-test
- GitHub Check: lint-rs
- GitHub Check: lander-coverage
- GitHub Check: test-rs
- GitHub Check: e2e-matrix (evm)
🔇 Additional comments (6)
.github/workflows/release.yml (1)
62-62: LGTM! — Proper PR title adds consistency to release workflow.This change gives the changesets action a consistent PR title ("chore: release npm packages") instead of relying on the default. Keeps things organized when you've got layers of release workflows running around, and makes it easier to spot release PRs in the GitHub interface.
.github/workflows/npm-beta-release.yml (5)
3-19: Well-layered workflow structure.The trigger config, concurrency settings, and environment variables are all dialed in nicely. The
workflow_dispatchsetup with choice inputs and the concurrency group prevent tangled execution paths. Everything here does what it needs to do without extra fluff.
40-56: Version calculation logic is solid.Extracting the base version from
typescript/sdk/package.jsonand constructing the snapshot version with tag and short SHA matches the PR objectives and the changeset config'sprereleaseTemplate. The format aligns well with how the Rust release workflow derives prerelease versions.
57-67: Changeset detection gates the workflow appropriately.The find pattern correctly counts pending changesets and the conditional gating in downstream steps ensures no unnecessary work happens if there's nothing to release. The warning message is helpful—developers get clear guidance on what to do next.
69-90: Build and publish pipeline is well-structured.All major operations are properly gated on the changeset count. The NPM token setup, provenance flag, and use of standard
yarn changesetcommands follow established patterns. One thing worth noting: if a partial publish fails (e.g., one package succeeds, another fails), the workflow won't explicitly catch it. Theyarn changeset publishcommand will exit with an error if any package fails, which is good, but there's no retry logic or post-publish validation step. For a manual release workflow this is acceptable, but just something to keep in mind if you expand this later.
92-117: Summary output provides clear UX.Both paths—successful release and "no changesets"—provide helpful context and next steps. The install commands use the correct dist-tag syntax, and the branch info helps users confirm they're releasing from the right place.
xeno097
left a comment
There was a problem hiding this comment.
Looks good to me but i would also like to have a review from our chief @antigremlin as he had to battle with changesets too
antigremlin
left a comment
There was a problem hiding this comment.
Nice, but needs some fixes.
49b07ef to
3ad1244
Compare
|
before merging will:
|
This reverts commit 3ad1244.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7473 +/- ##
============================
============================
🚀 New features to boost your workflow:
|
Summary
Add a beta release workflow for NPM packages, allowing quick publishing of pre-release versions for testing.
NPM Beta Release Workflow
New workflow (
.github/workflows/npm-beta-release.yml) that allows publishing beta releases to NPM:beta(default),alpha,rc,preview{nextVersion}-{tag}.{gitSha}(e.g.,19.10.0-beta.abc1234)Usage
Installation
After running, users can install beta packages:
Changeset Snapshot Configuration
Added snapshot config to
.changeset/config.json:useCalculatedVersion: true- Uses the calculated next version as base (not0.0.0)prereleaseTemplate: "{tag}.{commit}"- Format for prerelease suffixRust Preview Version Fix
Updated the Rust release workflow so prereleases use the calculated next version as base:
1.7.0, prerelease would be1.7.0-preview.11.7.0and commits warrant a minor bump, prerelease will be1.8.0-preview.1This aligns Rust prerelease versioning with NPM's behavior.
Test plan
Test run: https://github.com/hyperlane-xyz/hyperlane-monorepo/actions/runs/19711214912/job/56472066118?pr=7473
🤖 Generated with Claude Code
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.