...
Create a RSA GPG key of length 4096, upload it to the public server, and add it to the KEYS file (do this process once for each release lead): https://github.com/apache/incubator-mxnet/blob/master/KEYS &
...
See more detailed instructions on creating the key here: https://www.apache.org/dev/openpgp.html#generate-key. Instructions for updating the KEYS file can be found here: https://github.com/apache/incubator-mxnet/blob/master/KEYS#L9-L13at the beginning of the KEYS file. Note that you must use apache email instead of personal email for the key. The following instructions shows how to update the key using svn.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# checkout the apache mxnet repo svn co https://dist.apache.org/repos/dist/devrelease/incubator/mxnet apache-mxnet cd apache-mxnet # update the KEYS file ... # commit the update svn commit -m “update keys file for xxx ” --username your_username --password your_passwd |
...
Code Block | ||||
---|---|---|---|---|
| ||||
svn co https://dist.apache.org/repos/dist/dev/incubator/mxnet && cd mxnet/#.#.#.rc0 brew install gpg coreutils wget https://downloads.apache.org/incubator/mxnet/KEYS gpg --import ../KEYS |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
gpg --verify ./apache-mxnet-src-0.11.0.rc3-incubating.tar.gz.asc gsha512sum --check ./apache-mxnet-src-0.11.0.rc1-incubating.tar.gz.sha512 |
...
Info | ||||
---|---|---|---|---|
| ||||
To: general@incubator.apache.org Dear community, This is a call for a releasing Apache MXNet (incubating) #.#.#, release Apache MXNet (incubating) community has voted and approved the release. Vote thread: Result thread: The source tarball, including signatures, digests, etc. can be found at: The tag to be voted upon is #########: The release hash is #########: Release artifacts are signed with the following key: KEYS file available: For information about the contents of this release, see: The vote will be open for 72 hours. [ ] +1 release this package as ######### Best regards, |
...
For linux, we can trigger a release pipeline that builds, tests and publishes the pip wheels and python docker images for us with just a few steps:
- Go to https://jenkins.mxnet-ci.amazon-ml.com/job/restricted-mxnet-cd/job/mxnet-stable-release-pipeline/ and and make sure you have write access to the Jenkins system.
- Click "Configure" and update the "Branch specifier" to point to the GitHub branch/tag and click "Save" (The GitHub repository URL is set to apache/incubator-mxnet, if you are releasing using a fork, update this URL too)
- For branch, use
<branchName>
- For tag, use
refs/tags/<tagName>
- For branch, use
- Click "Build with Parameters" from the left pane, modify the following fields as needed and click on "Build"
- MXNET_VARIANTS : Make sure all supported cu* flavors are present
- RELEASE_BUILD" : Keep the box Unchecked
- CD_RELEASE_JOB_NAME : Do not modify this field
- VERSION : Mention the MXNet release tag here e.g. 1.8.0, 2.0.0 (This tag is only used in naming python docker images.)
- This triggers the release pipelines for different cpu and cu* flavors which can be found here here https://jenkins.mxnet-ci.amazon-ml.com/job/restricted-mxnet-cd/job/mxnet-stable-release-job/ . You can click on "Open Blue Ocean" from the left pane to check pipeline status. There are 3 pipelines that get trigerred:
- First pipeline builds the libmxnet binaries for different flavors. Only after this pipeline completes (takes around 2.5 hours), the other two pipelines are triggered, that run in parallel.
- Second pipeline "python/pypi" publishes the pip wheels to https://dist.mxnet.io/python/.
- Third pipeline "python/docker" publishes the python docker images to https://gallery.ecr.aws/w6z5f7h2/mxnet/python.
- If any job in any of the three pipelines fails, go through the corresponding logs and either
- Re-trigger the pipeline in case it's a flaky failure or
- Root cause and fix the issue and then re-trigger the pipeline.
- Re-trigger the pipeline in case it's a flaky failure or
- Once all pipelines are green, Python wheels and Python docker images for all variants are published to their respective targets. Now we need to move these released artifacts to their final locations so that they are available to users:
- Python wheels (for this release) from https://dist.mxnet.io/python/ go to PyPI.
- Identify the wheels by the version number, date created, and variant string
- Download the above wheels, give them another test if needed, and upload them to PyPI
- For more info regarding publishing pip wheels to Pypi, please contact zhasheng@apache.org
- Python docker images (for this release) from https://gallery.ecr.aws/w6z5f7h2/mxnet/python go to dockerhub.
- Identify the docker images by the version number, date created, and variant string
- Pull each docker image to local (docker pull public.ecr.aws/w6z5f7h2/mxnet/python:<tag>)
- Tag downloaded images (docker tag …)
- Login to dockerhub (docker login ...)
- Push images (docker push …)
- Python wheels (for this release) from https://dist.mxnet.io/python/ go to PyPI.
...