Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1. Preparing for release candidates:

Step 1. prepare release notes (bug fixes, features added)

Draft release notes which should include the list of new features and bug fixes, along with limitations, known issues, credits, etc.

Step 2.

...

Inform the

...

Community of timing

After every release, the community should decide on a list of features to deliver for the following release. When the clear target date for a release has been estimated, the release manager should inform the community of the release schedule. All features which the community wishes to include in the release should be merged and tested successfully before the date of the first release candidate. The first release candidate should be on a commit which passed builds from at least 3 days before cutting the release candidate. This will make the release manager's job easier. Below is a template for the information:

...

Feel free to add any other comments/suggestions.
Thanks,
$RM

Step 3.

...

Make code changes with necessary version updates

At least 3 days prior to cutting the first release candidate, bump up the version number and address other changes that the release depends on.

  1. Bump up the version number. An example can be followed here: https://github.com/apache/incubator-mxnet/pull/6462
  2. Update NEWS and README. An example can be followed here: https://github.com/apache/incubator-mxnet/pull/6471
  3. 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 manager): https://github.com/apache/incubator-mxnet/blob/master/KEYS & https://dist.apache.org/repos/dist/dev/incubator/mxnet/KEYS See more detailed instructions on creating the key here: https://www.apache.org/dev/openpgp.html#generate-key

Step 4.

...

Cut a Release Candidate

  1. The release candidate should contain all planned features, bug fixes, and code changes above. The release candidate commit should have passed the merge build, pip builds, nightly tests. Docs should also be manually built locally & checked for correctness. TODO: how to retrieve the commit hash.

  2. Tag release candidate
      • Checkout the commit into a new branch "v#.#.#" and push it
      • Go to the GitHub repo’s “releases” tab
      • Click “Draft a new release”
      • Provide the release tag in the form of “v#.#.#.rc0” where 0 means it’s the first release candidate
      • Select the commit by clicking Target: branch > Recent commits > $commit_hash
      • Copy and paste NEWS change into the description box
      • Select “This is a pre-release"
  3. Tag all the dependent submodules for every MXNet release. If a code-change (e.g. bug-fix) is required to a dependent sub-module then we take a branch from the tag and apply the code-change only to the branch for the sub-module so that the change is minimal. This should allow the MXNet release process to have better convergence towards a stable release.

  4. Create artifacts for the release and push to the dist folder

...

Code Block
languagebash
titleCreating the src tar
linenumberstrue
git clone git@github.com:apache/incubator-mxnet.git --recursive apache-mxnet-src-0.11.0.rc3-incubating
git checkout v0.11.0
git submodule update --init --recursive
git checkout 0.11.0.rc3
rm -rf R-package/*
rm -rf R-package
rm -rf .DS_Store
rm -rf .git*
brew install gnu-tar 
gtar -czvf apache-mxnet-src-0.11.0.rc3-incubating.tar.gz apache-mxnet-src-0.11.0.rc3-incubating

b) apache-mxnet-src-#.#.#.rc0-incubating.tar.gz.asc: 

details here: http://www.apache.org/dev/release-signing.html#openpgp-ascii-detach-sig

c) Create MD5 checksum : apache-mxnet-src-#.#.#.rc0-incubating.tar.gz.md5: Create MD5 checksum

d) Create SHA checksum: apache-mxnet-src-#.#.#.rc0-incubating.tar.gz.sha512: Create SHA checksum

Code Block
languagebash
titleSignatures
gpg --armor --output apache-mxnet-src-0.11.0-incubating.tar.gz.asc --detach-sig apache-mxnet-src-0.11.0-incubating.tar.gz

md5 apache-mxnet-src-0.11.0-incubating.tar.gz > apache-mxnet-src-0.11.0-incubating.tar.gz.md5
shasum -a 512 apache-mxnet-src-0.11.0-incubating.tar.gz > apache-mxnet-src-0.11.0-incubating.tar.gz.sha512

 

 

#.#.#-incubating.RC0 folder: Create a folder for this RC in the dist folder

 

e) Create a folder for this RC in the dist folder: 0.11.0-incubating.RC0 folder 

Code Block
languagebash
titleUploading to dist
# Checkout the Apache directory in Apache distribution SVN "dev" repo
$ svn co https://dist.apache.org/repos/dist/dev/incubator/mxnet
# select p
# Make directory for this RC in the above directory
$ cd mxnet
$ mkdir #.#.#.rc0
# Move artifacts into this folder
$ cp ../apache-mxnet-src-#.#.#.rc0-incubating.tar.gz* #.#.#.rc0
$ svn add #.#.#.rc0
$ svn commit -m "Add mxnet-#.#.#.rc0" --username "lxn2"

...

Step 5.

...

Validate release package

As per the Apache documentation, verify that the release candidate artifacts satisfy the following:

...