Prior to the first stable release we neither have formal release processes nor do we follow a fixed release schedule.
To create a new pre-release:
- Create a release PR which, if necessary:
- Updates the versions in the workspace
Cargo.toml - Updates the version in each crate
Cargo.toml - Updates the version of the NPM package in
js/resolc/package.json - Updates the
CHANGELOG.mdto reflect all observable changes
- If the CI passes, merge the release PR.
- Push a
vX.Y.Ztag that has the same version as inCargo.toml - The release workflow will attempt to build and publish a new pre-release if the latest tag does match the cargo package version.
- Wait for the
Releaseworkflow to finish. It should create the pre-release with the same name. - Check that pre-release was created on the Releases page with all artifacts.
- After the release is published, another workflow should start automatically and update JSON files in the resolc-bin repository as well as render the JSON on its GitHub Pages website. Check the changes.
- Update the revive compiler book accordingly.
Will happen automatically.
To create a new LLVM release, run "Release LLVM" workflow. Use current LLVM version as parameter, e.g. 18.1.8.
Version suffix will be resolved automatically.
The workflows will create new GitHub release, and upload LLVM binaries.
Next release of resolc will use newly created binaries.