Skip to content

fix: release pipeline#215

Merged
lpahlavi merged 15 commits intomainfrom
lpahlavi/fix-release-pipeline
Aug 29, 2025
Merged

fix: release pipeline#215
lpahlavi merged 15 commits intomainfrom
lpahlavi/fix-release-pipeline

Conversation

@lpahlavi
Copy link
Contributor

@lpahlavi lpahlavi commented Aug 27, 2025

Currently, release-plz runs into issues when trying to determine the next version of the sol_rpc_canister crate. This is because the sol_rpc_canister crate is a binary crate and hence not published on crates.io. However, since a release tag exists for the crate, release-plz tries to download the latest release from crates.io and fails. See this failed release pipeline run for example.

I've opened a PR to fix this issue in the upstream release-plz repository, and updated the release pipeline here to build the release-plz GitHub action from source to include those changes. This is a temporary solution until the changes are merged in the upstream repository. The release pipeline runs again successfully when using the patched release-plz GitHub action (see this run).

@lpahlavi lpahlavi force-pushed the lpahlavi/fix-release-pipeline branch from 1466776 to b3e95b4 Compare August 27, 2025 14:35
@lpahlavi lpahlavi requested a review from gregorydemay August 27, 2025 14:48
@lpahlavi lpahlavi marked this pull request as ready for review August 27, 2025 14:49
@lpahlavi lpahlavi requested a review from a team as a code owner August 27, 2025 14:49
@lpahlavi lpahlavi marked this pull request as draft August 29, 2025 08:53
@lpahlavi lpahlavi requested a review from gregorydemay August 29, 2025 10:57
@lpahlavi
Copy link
Contributor Author

lpahlavi commented Aug 29, 2025

@gregorydemay See the updated PR description. I've opened an issue and PR in the upstream release-plz repository and this PR now just uses the patched GitHub action in the meantime until those changes are merged upstream.

Note that after running the release pipeline, the generated PR didn't update the sol_rpc_canister version. I think that's just because there are no commits directly changing the Rust code in there. WDYT?

@lpahlavi lpahlavi marked this pull request as ready for review August 29, 2025 10:58
Copy link
Contributor

@gregorydemay gregorydemay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix!

uses: dtolnay/rust-toolchain@v1
with:
command: release-pr
toolchain: nightly
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we really need nightly?

Copy link
Contributor Author

@lpahlavi lpahlavi Aug 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it was a huge pain to get release-plz to compile from source (see the commits in this branch 😅) due to their use of some unstable features (I believe if let chains in if statements) and conflicts with the sol-rpc-canister repo Rust version. I guess this should hopefully be just a temporary fix so I thought it's good enough, but we can also experiment to find was versions of Rust work. WDYT?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's just to compile release-plz, then I'm totally fine with it, but I'm more worried that nightly could be use to compile the sol-rpc-canister and this would be problematic (for build reproducibility)

Copy link
Contributor Author

@lpahlavi lpahlavi Aug 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked into it a bit more and stumbled onto this tracking issue for the problematic unstable feature. Turns out it's enough to just use Rust 1.88.0 to compile the release-plz GitHub action, since the feature became stable then. I just changed the cargo install to use v1.88.0 instead of nightly and it seems to work fine.

@gregorydemay
Copy link
Contributor

@lpahlavi

Note that after running the release pipeline, the generated PR didn't update the sol_rpc_canister version. I think that's just because there are no commits directly changing the Rust code in there. WDYT?

There is one commit that should be picked up if the changelog was automatically generated

git log --format='%C(auto) %h %s' sol_rpc_canister-v1.1.0..HEAD -- canister
 c3d5468 chore: upgrade SOL RPC canister to v1.1.0 (#206)

But that's I think not too tragic and could be manually adapted in the generated PR?

@lpahlavi
Copy link
Contributor Author

There is one commit that should be picked up if the changelog was automatically generated

git log --format='%C(auto) %h %s' sol_rpc_canister-v1.1.0..HEAD -- canister
 c3d5468 chore: upgrade SOL RPC canister to v1.1.0 (#206)

But that's I think not too tragic and could be manually adapted in the generated PR?

@gregorydemay I guess actually release-plz is smart enough to ignore this commit since it's just updating the crate version. It's not too much of a hassle, but I mostly wanted to make sure I didn't somehow break something in my upstream PR leading to an incomplete changelog / incorrect version determination.

@lpahlavi lpahlavi requested a review from gregorydemay August 29, 2025 12:04
@lpahlavi lpahlavi merged commit a7b6fc9 into main Aug 29, 2025
13 checks passed
@lpahlavi lpahlavi deleted the lpahlavi/fix-release-pipeline branch August 29, 2025 15:11
lpahlavi added a commit that referenced this pull request Sep 2, 2025
In #215 we switched to building the release-plz CLI from source to
include release-plz/release-plz#2357 before it
was merged. Since that change is now merged in the upstream repository
master branch, this PR switches back to the upstream version of the
release-plz GitHub action, pinning the release-plz version to v0.3.142
which includes release-plz/release-plz#2357.
lpahlavi added a commit that referenced this pull request Sep 2, 2025
In #215 we switched to building the release-plz CLI from source to
include release-plz/release-plz#2357 before it
was merged. Since that change is now merged in the upstream repository
master branch, this PR switches back to the upstream version of the
release-plz GitHub action, pinning the release-plz version to v0.3.142
which includes release-plz/release-plz#2357.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants