Skip to main content

A release is cut from main by a maintainer, by hand. GitHub Actions cannot run for this repository at the moment (billing), so the release workflow does not build binaries: the only prebuilt binary is the macOS arm64 one built locally, and every other platform installs from source (cargo install --git ... --tag vX.Y.Z seleniumbase-rs-cli) or through Homebrew.

Warning

Every push, tag, GitHub release and Homebrew commit is public. Run the whole gate on the exact commit you tag, and never force-push.

Start from a clean, current main

Terminal

Set the version

Terminal

cargo set-version (cargo-edit) also moves the CLI crate’s path dependency on the library; Cargo.lock follows. Update the version pins in README.md and look for the old version in other docs (rg -n 'OLD\.VERSION' -g '*.md' -g '*.toml' -g '*.rb', CHANGELOG files aside).

Close the changelog

Rename ## [Unreleased] in CHANGELOG.md to ## [X.Y.Z] - YYYY-MM-DD, open a new empty ## [Unreleased] above it, then write the docs page from it:

Terminal

Regenerate what is generated

Terminal

Commit everything as chore(release): X.Y.Z.

Gate the release commit

Terminal

Publish main and the tag

Terminal

In zsh write "${C}:refs/heads/main": $C:r would be read as a modifier.

Build the macOS binary

Terminal

Archive target/release/sbrs and target/release/sbrs-mcp with the completion scripts as seleniumbase-rs-vX.Y.Z-aarch64-apple-darwin.tgz, and write its SHA-256 next to it.

Create the GitHub release

Terminal

The notes are the version’s CHANGELOG block, plus a line saying the prebuilt binary is for macOS arm64 only and how to install elsewhere.

Update the Homebrew formula

In the homebrew-tap repository, set url to the tag’s source archive and sha256 to its checksum in Formula/sbrs.rb:

Terminal

Commit sbrs X.Y.Z and push. brew upgrade sbrs then gives users the release.

Move the consumers

The companion extension’s end-to-end crate pins the library by tag: move it to vX.Y.Z. The stealth workspace follows with cargo update -p seleniumbase-rs and its own gates.