This document details the procedure for releasing Benchmark, including publishing the Maven Central artifact and Github Release Notes with assets.
- Corresponding released version Deephaven Community Core (DHC)
- DHC docker image used by this release
- Access for running the Publish Release workflow in the main Benchmark repository
- Testing for the relevant combination of Benchmark and DHC image
- Occurs with nightly Benchmark runs but needs to be done manually in the case of a DHC patch
The deephaven-benchmark jar that can be used as a dependency to use the Benchmark API to write tests It is released to Maven Central.
The deephaven-benchmark tar distribution that allows users to run pre-existing Deephaven tests from a self-contained directory. It is attached to the corresponding Github Release Notes.
Typically, the release process up to and including the Github Release is run from the Github workflow, even for Deephaven Core patches.
- Go to the Publish Deephaven Benchmark workflow
- Click the "Run Workflow" dropdown on the right-hand side of the screen
- Run only on the main branch
- Fill in the Benchmark release version, which is the same as the DHC version
- Fill in the commit hash for the Benchmark commit to tag as the Benchmark release
- Fill in the previous tag to compare to. This is "previous" in semver order, not date order
- Click the "Run Workflow" button at the bottom
- When the workflow finishes, look for the release in Github Release Notes
- Make sure the correct Github Release is labelled, or still labelled, "Latest"
- Download and test the tar asset in the Github release. (Level of testing is informed by DHC and Benchmark release notes.)
Note
The OSS Sonatype can be very slow and requires some patience.
In the rare case where there needs to be a patch on Benchmark to work with a DHC patch, a branch is created off of the Benchmark main repo. After testing to make sure the patch works, the "Happy Path" above can be followed.
- Verify that upstream is set in a local "benchmark" clone
- Running
git remote get-url upstream
should yield[email protected]:deephaven/benchmark.git
- If upstream is not set, use
git remote add upstream [email protected]:deephaven/benchmark.git
- Running
- Make a branch for the new tag
- Run
git fetch upstream
- Run
git checkout vX.Y.0
(Use the previous tag for X.Y.0) - Run
git checkout -b release/vX.Y.1
(Use release tag for X.Y.1) - Make appropriate Benchmark changes and test
- Run
git push -u upstream release/vX.Y.1
- Run the "Happy Path" above (Do not merge the release branch)
- Run
One Benchmark artifact is published to Maven Central along with javadocs and source files. These have requirements for signing using the Deephaven Benchmark Certificate. The bundle created by the previous steps has does this
- Download Deephaven Benchmark Release X.Y.Z from the Publish Deephaven Benchmark workflow Artifacts and extract the deephaven-benchmark-X.Y.Z-bundle.jar.
- Log in to OSS Sonatype and click on "Staging Upload"
- Select "Artifact Bundle" from the "Upload Mode" dropdown, select the bundle to upload, and "Upload Bundle"
- After the upload is finished, click on "Staging Repositories" and click "Refresh"
- Select the item that appears for the bundle upload, then select the Summary tab at the bottom
- Sonatype performs various validation and it may take some time for the "Release" button to be enabled. The summary tabe in the bottom panel may show "Activity: Operation in progress"
- If there are no errors, and the "Release Button" is enabled, the bundle can be released
- After selecting "Release", the artifacts will eventually show up in Maven Central. Verify that the version has landed.