To release Soroban RPC, follow this process in order:
- Run
go get github.com/stellar/go@<horizon_release_tag>
to updatego.mod
andgo.sum
to match the tagged Horizon version branch. - Commit this change to
main
in a pull request
Currently, the soroban-rpc
repo doesn't publish crates, so we will be running a modified version of our main Rust release workflow.
- Run the Bump Version workflow from
main
- Review the PR from running the Bump Version workflow
- Merge the PR after the publish dry runs complete successfully. Although currently we don't publish crates from the
soroban-rpc
repo, we want the dry runs to succeed.
- Create an annotated tag with
git tag -a v<release_version_number> -m "Description for release"
- Push the tag to remote with
git push origin --tags
- Create a new GitHub release from the previously created tag.
- The release title MUST NOT start with a v, otherwise artifact uploads fail (see workflow file and this Slack thread for context)
- Monitor GitHub actions until they succeed
-
Review the package stage log, and note the build number for next steps
For reference, here is the Soroban RPC docker repo
- Update the monorepo’s horizon.yml integration test config to point to the new rpc image (e.g. go#5054)
- Update the quickstart image build configs to use the latest RPC and horizon (e.g. quickstart#502).
- Update
soroban_rpc_ref
,go_ref
, andcore_ref
in all build workflows - Update
SOROBAN_RPC_REF
,CORE_REF
, andHORIZON_REF
in the Makefile
- Update
- Run the Buildmeister soroban-rpc-promote-to-stable pipeline