Development release and deployment
Vouch has the following stages of deployment and release for the dev cycle:
- Deploy WIP binaries manually in dev
- Release alpha artifacts. Usually deployed via ansible to dev
- Release beta artifacts intended to be the next stable release candidate
Deploy WIP binaries manually in dev
- Ensure you update the
ReleaseVersioninmain.goto something appropriate for your changes, e.g.v1.9.0-alpha.dev. - Build a
vouchbinary from your changes that is appropriate for the target infrastructure - most likelylinux/amd64. - Copy the binary to the target host, e.g.
scp /path/to/vouch eth-val-d04-01.attestant.io:/home/vouch. - Log in to the host and execute
./home/vouch/vouch --versionto verify it is the same as set in the first step. - If you're changes require updates to the config be sure to create a backup of
/home/vouch/.vouch.ymland then edit accordingly. - Move the new binary to the vouch
binlocation and restartvouch, e.g.mv /home/vouch/vouch /home/vouch/bin/vouch && chown vouch /home/vouch/bin/vouch && systemctl restart attestant-vouch
Release alpha artifacts
- Create branch of intended changes and be sure to update
ReleaseVersioninmain.goto match the tag in the next step. - Tag the branch with a dev label, e.g.
git tag -a v1.x.0-alpha.y -m "<insert message briefly describing changes>", wherexis the target minor version andyis the next iteration of thealpha. For example, if the current version in dev wasv1.9.0-alpha.1the next version would bev1.9.0-alpha.2. - Push the tag to github, e.g.
git push origin v1.9.0-alpha.7, this will automatically create a Draft release in the github releases page. - The Draft release is not immediately visible to others - it needs to be published first. You can do this by navigating to the github releases page, finding the release and clicking the edit button. Once there you should update the release description and ensure
Set as a pre-releaseis selected at the bottom. Finally, click the publish button. - Once the release is published it should be possible to update the release ansible and push the new version to dev.
- Announce the release in #vouch on Discord.
- Do NOT pin the release announcement.
Release beta artifacts
- Create branch of intended changes and be sure to update
ReleaseVersioninmain.goto match the tag in the next step. - Tag the branch with a dev label, e.g.
git tag -a v1.x.0-beta.y -m "<insert message briefly describing changes>", wherexis the target minor version andyis the next iteration of thebeta. For example, if the current version in dev wasv1.9.0-beta.1the next version would bev1.9.0-beta.2. - Push the tag to github, e.g.
git push origin v1.9.0-beta.7, this will automatically create a Draft release in the github releases page. - The Draft release is not immediately visible to others - it needs to be published first. You can do this by navigating to the github releases page, finding the release and clicking the edit button. Once there you should update the release description and ensure
Set as a pre-releaseis selected at the bottom. Finally, click the publish button. - Once the release is published it should be possible to update the release ansible and push the new version to dev.
- Announce the release in #vouch on Discord.
- Do NOT pin the release announcement.
Production release
Vouch has the following release processes for production:
- Release new minor version artifact to be the latest stable release
- Release patch version as a backport to current stable release
Release new minor version artifact to be the latest stable release
- Choose a commit that you would like to be the new minor version, be sure to update
ReleaseVersioninmain.goto match the tag in the next step. - Tag the branch with a release label, e.g.
git tag -a v1.x.0 -m "<insert message briefly describing changes>", wherexis the target minor version. For example, if the current latest version wasv1.8.3the next version would bev1.9.0. - Push the tag to github, e.g.
git push origin v1.9.0, this will automatically create a Draft release in the github releases page. - The Draft release is not immediately visible to others - it needs to be published first. You can do this by navigating to the github releases page, finding the release and clicking the edit button. Once there you should update the release description and ensure
Set as latest releaseis selected at the bottom. Finally, click the publish button. - Announce the release in #vouch on Discord.
- Pin the release announcement.
Release patch version as a backport to current stable release
- Create/Find a branch of the current minor release patch version increments. E.g. if the current version of vouch is
v1.8.0, you should create a branch off that commit explicitly calledv1.8.x, or simply change to that branch if it already exists. - Create a new branch from the above branch to add your changes to. E.g. if the latest version is
v1.8.2you wouldgit checkout v1.8.x, then create a branch for the next version, which in this example would begit checkout -b v1.8.3. - Add your changes to the new branch, be sure to update
ReleaseVersioninmain.goto match the tag in the later step. Push your changes to github and raise a PR from your new branch to the patch versions branch. E.g. in the example above you would add your changes tov1.8.3and raise a PR to merge those changes in tov1.8.x - Tag the branch with a release label, e.g.
git tag -a v1.x.y -m "<insert message briefly describing changes>", wherexis the target minor version andyis the next patch version. For example, if the current latest version wasv1.8.1the next version would bev1.8.2. - Push the tag to github, e.g.
git push origin v1.8.2, this will automatically create a Draft release in the github releases page. - The Draft release is not immediately visible to others - it needs to be published first. You can do this by navigating to the github releases page, finding the release and clicking the edit button. Once there you should update the release description and ensure
Set as latest releaseis selected at the bottom. Finally, click the publish button. - Announce the release in #vouch on Discord.
- Pin the release announcement.