This is an automated email from the ASF dual-hosted git repository. jbonofre pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push: new d11a8055b Update the Release Guide about the Helm Chart package (#2179) d11a8055b is described below commit d11a8055bd578b6e30f80a7d1e3c15d7340822c4 Author: JB Onofré <jbono...@apache.org> AuthorDate: Thu Sep 4 12:01:54 2025 +0200 Update the Release Guide about the Helm Chart package (#2179) * Update the Release Guide about the Helm Chart package * Update release-guide.md Co-authored-by: Pierre Laporte <pie...@pingtimeout.fr> * Add missing commit message * Whitespace * Use Helm GPG plugin to sign the Helm chart * Fix directories during Helm chart copy to SVN * Add Helm index to SVN * Use long name for svn checkout * Ensure the Helm index is updated after the chart is moved to SVN dist release * Do not publish any Docker image before the vote succeeds * Typos * Revert "Do not publish any Docker image before the vote succeeds" This reverts commit 5617e653201adb43d268c223c84bfbd3ba2afb22. * Don't mention Helm values.yaml in the release guide as it doesn't contain version details --------- Co-authored-by: Pierre Laporte <pie...@pingtimeout.fr> --- site/content/release-guide.md | 85 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 70 insertions(+), 15 deletions(-) diff --git a/site/content/release-guide.md b/site/content/release-guide.md index a0055b2c7..1b3dff734 100644 --- a/site/content/release-guide.md +++ b/site/content/release-guide.md @@ -28,10 +28,12 @@ To create a release candidate, you will need: * your Apache credentials (for repository.apache.org and dist.apache.org repositories) * a [GPG key](https://www.apache.org/dev/release-signing#generate) for signing artifacts, published in [KEYS](https://downloads.apache.org/incubator/polaris/KEYS) file +### Publish your GPG key + If you haven't published your GPG key yet, you must publish it before starting the release process: ``` -svn co https://dist.apache.org/repos/dist/release/incubator/polaris polaris-dist-release +svn checkout https://dist.apache.org/repos/dist/release/incubator/polaris polaris-dist-release cd polaris-dist-release echo "" >> KEYS # append a new line gpg --list-sigs <YOUR KEY ID HERE> >> KEYS # append signatures @@ -42,7 +44,6 @@ svn commit -m "add key for <YOUR NAME HERE>" To send the key to the Ubuntu key-server, Apache Nexus needs it to validate published artifacts: ``` gpg --keyserver hkps://keyserver.ubuntu.com --send-keys <YOUR KEY ID HERE> - ``` ### Dist repository @@ -74,7 +75,7 @@ export ORG_GRADLE_PROJECT_apachePassword=bar ### PGP signing -During release process, the artifacts will be signed with your key, eventually using `gpg-agent`. +During release process, the artifacts will be signed with your key, using `gpg-agent`. To configure gradle to sign the artifacts, you can add the following settings in your `~/.gradle/gradle.properties` file: @@ -86,6 +87,10 @@ To use `gpg` instead of `gpg2`, also set `signing.gnupg.executable=gpg`. For more information, see the Gradle [signing documentation](https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials). +### Helm chart signing + +Helm chart artifacts are signed with your key, using the [helm gpg plugin](https://github.com/technosophos/helm-gpg). Ensure the plugin is installed locally. + ### GitHub Repository The release should be executed against https://github.com/apache/polaris.git repository (not a fork). @@ -113,16 +118,25 @@ git push apache release/x.y.z Go in the branch, and set the target release version: ``` -git checkoout release/x.y.z +git checkout release/x.y.z echo "x.y.z" > version.txt -git commit -a -git push +``` + +and update the version in the Helm Chart in: + +* `helm/polaris/Chart.yaml` +* `helm/polaris/README.md` + +and commit/push the version bump: + +``` +git commit -m "Bump version to x.y.z" version.txt helm/polaris/Chart.yaml helm/polaris/README.md helm/polaris/values.yaml ``` Update `CHANGELOG.md`: ``` ./gradlew patchChangelog -git commit -a +git commit CHANGELOG.md -m "Update CHANGELOG for x.y.z release" git push ``` @@ -183,15 +197,54 @@ The binary distributions (for convenience) are available in: Now, we can stage the artifacts to dist dev repository: ``` -svn co https://dist.apache.org/repos/dist/dev/incubator/polaris polaris-dist-dev +svn checkout https://dist.apache.org/repos/dist/dev/incubator/polaris polaris-dist-dev cd polaris-dist-dev mkdir x.y.z cp /path/to/polaris/github/clone/repo/build/distribution/* x.y.z cp /path/to/polaris/github/clone/repo/runtime/distribution/build/distributions/* x.y.z -cp -r /path/to/polaris/github/clone/repo/helm/polaris helm-chart/x.y.z svn add x.y.z +``` + +### Stage Helm Chart package + +You can now create a Helm package with the following command in the Polaris source folder: + +``` +cd helm +helm package polaris +helm gpg sign polaris-x.y.z.tgz +``` + +Create the signature and checksum for the Helm package tgz and prov files: + +``` +shasum -a 512 polaris-x.y.z.tgz > polaris-x.y.z.tgz.sha512 +gpg --armor --output polaris-x.y.z.tgz.asc --detach-sig polaris-x.y.z.tgz +shasum -a 512 polaris-x.y.z.tgz.prov > polaris-x.y.z.tgz.prov.sha512 +gpg --armor --output polaris-x.y.z.tgz.prov.asc --detach-sig polaris-x.y.z.tgz.prov +``` + +Copy and Add the Helm package files to dist folder: + +``` +cd ../polaris-dist-dev +mkdir helm-chart/x.y.z +cp ../helm/*.tgz* helm-chart/x.y.z svn add helm-chart/x.y.z -svn commit -m"Stage Apache Polaris x.y.z RCx" +``` + +You can now update the Helm index: + +``` +cd helm-chart +helm repo index . +svn add index.yaml +``` + +Dist repository is now "complete" and we can push/commit: + +``` +svn commit -m "Stage Apache Polaris x.y.z RCx" ``` ### Build and stage Maven artifacts @@ -199,7 +252,7 @@ svn commit -m"Stage Apache Polaris x.y.z RCx" You can now build and publish the Maven artifacts on a Nexus staging repository: ``` -./gradlew publishToApache -Prelease -PuseGpgAgent +./gradlew publishToApache -Prelease -PuseGpgAgent -Dorg.gradle.parallel=false ``` Next, you have to close the staging repository: @@ -365,12 +418,14 @@ svn mv https://dist.apache.org/repos/dist/dev/incubator/polaris/x.y.z https://di svn mv https://dist.apache.org/repos/dist/dev/incubator/polaris/helm-chart/x.y.z https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart ``` -NB: you have to update the Helm chart repository index on https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart/index.yaml +Then, update the Helm Chart repository index on https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart/index.yaml: + ``` -svn co https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart polaris-helm-chart -cd polaris-helm-chart +svn checkout https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart polaris-dist-release-helm-chart +cd polaris-dist-release-helm-chart helm repo index . -svn commit +svn add index.yaml +svn commit -m "Update Helm index for x.y.z release" ``` Next, add a release tag to the git repository based on the candidate tag: