-
Notifications
You must be signed in to change notification settings - Fork 0
OpenVox Release Playbook
-
Ensure dependency bumps are merged into puppet-runtime, including running Update Components to bump all the Ruby gems, and manually updating the other components such a Ruby, Curl, and OpenSSL to new versions if needed.
-
Run prepare -> release -> build. Build
agent-runtime-main(OpenVox 9) and/oragent-runtime-8.x(OpenVox 8). -
Use the promote action to promote the version of puppet-runtime you just built into openvox. Ensure you select the correct target branch to promote into (
mainfor OpenVox 9 and8.xfor OpenVox 8). -
If there is a new version of OpenFact since the last release, use the same promote action to promote that version to the target branch as well.
-
(Optional) Run the Build openvox-agent action, giving it the branch name (
mainfor OpenVox 9 or8.xfor OpenVox 8). This will build unsigned test versions of the packages and uploads them to the artifacts S3 bucket. You can find the version of the build by inspecting the "Upload output to S3" step in the build action for any of the platforms. -
(Optional) Ask the community to beta test these packages and highlight any issues so they can be fixed before release. If there are fixes needed, repeat the steps above as appropriate.
-
Run the Beaker Acceptance Pipeline for OpenVox with
Pre-release buildchecked and the new version you are releasing + the latest release of the other components you aren't releasing. Ensure everything is green. -
Run the Prepare release action, inspect the CHANGELOG in the result PR, and merge the PR.
-
Run the Release action. Previously, this would fail on the step where it tries to bump the version, because we don't do that for this repo. But the release would be cut anyway. I think this is now fixed since the last release where this failed, though.
-
Run the Build openvox-agent action. This builds all of the unsigned packages and uploads them to the artifacts S3 bucket.
-
Follow the Sign and Release process below.
-
Ensure all dependency bumps are merged in.
- If any of the openvoxproject clojure sub-components need updating, you'll need to do the whole process of building those in the right order to avoid leiningen being cranky about differing dependency versions. Note that there is currently a circular dependency between clj-http-client and trapperkeeper-webserver-jetty10 around dependencies that are only for tests, but lein will still be unhappy and you may need to merge the bump of one of them with tests being red.
- For OpenVox Server 8, note that we must remain on logback 1.3.x, ring-core 1.14.x, and Bouncy Castle 1.x (all of the various jars for org.bouncycastle).
-
(Optional) Run the Build openvox-server](https://github.com/OpenVoxProject/openvox-server/actions/workflows/build.yml) and Build openvox-server - FIPS platforms actions, giving it the branch name (
mainfor OpenVox 9 or8.xfor OpenVox 8). This will build unsigned test versions of the packages and uploads them to the artifacts S3 bucket. You can find the version of the build by inspecting the "Upload output to S3" step in the build action for any of the platforms. -
(Optional) Ask the community to beta test these packages and highlight any issues so they can be fixed before release. If there are fixes needed, repeat the steps above as appropriate.
-
Manually run
bundle exec rake changelogand merge in the updates. We'll change this in the future to be part of automation. Do not change any version strings. Thelein releaseprocess later will bump them accordingly, and the changelog action will automatically strip the-SNAPSHOToff of the current unreleased version string. -
Run Release and publish package to clojars -> Build openvox-server and Build openvox-server - FIPS platforms.
-
Follow the Sign and Release process below.
-
Ensure dependency bumps are merged into puppet-runtime, including running Update Components to bump all the Ruby gems, and manually updating the other components such a Ruby, Curl, and OpenSSL to new versions if needed.
-
Use the promote action to promote the version of puppet-runtime you just built into OpenBolt.