This document outlines the automated release process for foundry-zksync
project.
The release process ensures that every change is systematically analyzed, documented, and packaged for distribution.
-
Triggering the Release Workflow
- Every merge to the
main
branch activates a special workflow. - This workflow uses the
release-please
tool to analyze the commits.
- Every merge to the
-
Commit Analysis and Release Candidate Creation
- The
release-please
tool scans for new conventional commits that meet the criteria for triggering a release. - If qualifying commits are found, the tool automatically creates a Release Pull Request (PR). This PR includes:
- An updated changelog detailing the new changes.
- Updated
Cargo.toml
andCargo.lock
files with the next release version.
- The
-
Review and Approval
- The Release PR must be reviewed and approved by the designated Release Manager.
- Once approved, the PR is merged when the release is planned.
-
Creating a New Release
- Upon merging the Release PR:
- The workflow automatically creates a new GitHub tag and release corresponding to the new version.
- The Release PR is marked as "released" and linked to the newly created release.
- Merged PRs included in the release are also labeled with
released in version...
.
- Upon merging the Release PR:
-
Generating and Publishing Artifacts
- The
release-please
workflow also triggers therelease.yaml
workflow. - This workflow generates binary artifacts for the release and attaches them to the GitHub release generated by
release-please
.
- The
-
Release Completion
- With the binary artifacts added, the release is complete and available for distribution.
The foundry-zksync
project follows Semantic Versioning.
Tags are created in the format foundry-zksync-vX.Y.Z
.