This project provides the instructions and tools needed to generate Apache YuniKorn (Incubating) release artefacts. This obeys ASF release policy, and Podling Release Policy.
branch-0.8
v0.8.0
tools/release-configs.json
tools/build-release.py
to generate source code tarballA release needs to be tagged in git before proceeding. This triggers required updates in the go mod files for the branch. As an example check YUNIKORN-358.
The tagging is multi step process, all actions are done on the branch that will be released, like branch-0.8
:
go.mod
file in the core using go get github.com/apache/incubator-yunikorn-scheduler-interface
go.mod
file in the shim using go get github.com/apache/incubator-yunikorn-scheduler-interface
andgo get github.com/apache/incubator-yunikorn-core
. Add the tag and commit the changes.If you haven't signed any releases before, read the documentation to generate signing key Follow the steps below to add the key.
Generate a new PGP key (skip this step if you already have a key):
gpg --gen-key
And fill out the requested information using your full name and Apache email address.
Upload the exported key to a public key server like https://pgp.mit.edu/
.
gpg --export --armor <email address>
Upload the fingerprint to apache server: https://id.apache.org/
.
gpg --fingerprint <email address>
Only needed if this is the first release signed with the specific key. More detail can be found in the document: Signing a Release
(gpg --list-sigs <email address> && gpg --armor --export <email address>) >> MY_KEY
Add the content of the generated file to the existing KEYS list at https://dist.apache.org/repos/dist/release/incubator/yunikorn/KEYS
Never remove a key from this list!
NOTE: you will need to install subversion to access this repo (use your apache ID). You can use any SVN client, e.g svnX, for convenience.
# gpg signature gpg --local-user <email address> --armor --output apache-yunikorn-0.8.0-incubating-src.tar.gz.asc --detach-sig apache-yunikorn-0.8.0-incubating-src.tar.gz # checksum shasum -a 512 apache-yunikorn-0.8.0-incubating-src.tar.gz > apache-yunikorn-0.8.0-incubating-src.tar.gz.sha512
This will create the signature in the file: apache-yunikorn-0.8.0-incubating-src.tar.gz.asc
And the checksum in the file: apache-yunikorn-0.8.0-incubating-src.tar.gz.sha512
gpg --verify apache-yunikorn-0.8.0-incubating-src.tar.gz.asc apache-yunikorn-0.8.0-incubating-src.tar.gz
The release artefacts consist of three parts:
https://dist.apache.org/repos/dist/dev/incubator/yunikorn/
Create a release directory based on the version, i.e. 0.8.0
, add the three files to directory. Commit the changes.
If you have not done so already make sure to add your signature to the KEYS file.
NOTE: you will need to install subversion to access this repo (use your apache ID). You can use any SVN client, e.g svnX, for convenience.
According to podling release doc and release approval doc. Steps are:
dev@yunikorn.apache.org
. (72 hours)Once the voting is passed, move the release artefacts to https://dist.apache.org/repos/dist/release/incubator/yunikorn/. Once moved to this space, the content will be automatically synced to https://downloads.apache.org/incubator/yunikorn/ which can be used as the final location for release files. Read more for location of files on main server.
Publish an announcement blog to https://blogs.apache.org/yunikorn/, update the web-site with corresponding release notes, download links.
After the voting passed and the RC is accepted, release the helm chart
helm package --sign --key ${your_key_name} --keyring ${path/to/keyring.secret} helm-charts/yunikorn --destination .
Fore more information please check Helm documentation