Versions Compared

Key

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

...

  • All problems/fixes in release notes MUST have the PR link and a possible workaround if any
  • New features must be added to the readme/tutorial
Code Block
languagebash
themeMidnight
titleUse this script to get commits since a particular date
#!/bin/bash
# to get a list of commits since <date>
git log --pretty=format:"%h - %cn, %cd : %s" --no-merges --since="2017-09-01" > commits.txt
 
# To get a list of committers since <date>
git shortlog -sne --since="10 Aug 2017"

...

    1. Bump up the version number. An example can be followed here: https://github.com/apache/incubator-mxnet/pull/6462, update https://github.com/apache/incubator-mxnet/blob/master/setup-utils/install-mxnet-osx-python.sh#L36
      More recent example - https://github.com/apache/incubator-mxnet/pull/8567
      make sure no broken/non-existing links are added to the master branch.
    2. Check with the website lead and docs lead that all necessary updates have made it into the release branch
      1. Most updates happen post-release.
      2. Broken link updates in tutorials and faqs would be an exception.
    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 lead): 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. Instructions for updating the KEYS file can be found here: https://github.com/apache/incubator-mxnet/blob/master/KEYS#L9-L13. Note that you must use apache email instead of personal email for the key. 

      Code Block
      languagebash
      themeMidnight
      titleAdding Keys
      # checkout the apache mxnet repo
      svn co https://dist.apache.org/repos/dist/dev/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


...

  1. Nightly Tests
    Following jobs are run as a part of the nightly tests:
    1. NightlyTests
    2. NightlyTestsForBinaries
      These jobs should already contain needed branches if they are cut. If not, check the jobs configuration. These are triggered by DailyTrigger. Either wait until the jobs have been triggered or trigger them manually.
    3. Backward Compatibility checker (currently restricted).
    4. Some jobs might take up to 4-5 hours, so plan accordingly.
    5. In case of a failure of any job, check the console logs, the newly added PRs and try and resolve issues or contact community for a fix (on @dev list, for example). 
  2. Jenkins CI Tests
    1. The release branch must pass the tests on the CI. For example, here - http://jenkins.mxnet-ci.amazon-ml.com/job/incubator-mxnet/job/v1.1.0/
  3. RAT Check - make sure the RAT check passes (it's already part of the verification pipeline as a stage, no special actions needed)

 

...

Step 1.7. Tag release candidate (To be done by a committer)

...

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.

 

Step 1.9. Create artifacts for the release and push to the dist folder

...

      • Clone the Repo and checkout the release branch 
      • remove R-package until the licensing issue is resolved
      • Remove all the .git files
      • Remove all other files of the form .* (eg .travis, .DS_Store etc)
      • on MacOS use gnu-tar
      • Try to untar it in a different type of machine and try a classic build with `make`. Follow build instructions in the "Build from Source" section http://mxnet.incubator.apache.org/get_started/install.html
Code Block
languagebash
themeMidnight
titleCreating the src tar
linenumberstrue
git clone git@github.com:apache/incubator-mxnet.git apache-mxnet-src-0.12.0.rc0-incubating
git checkout v0.12.0
git submodule update --init --recursive
git checkout 0.12.0.rc0
rm -rf R-package/*
rm -rf R-package
rm -rf .DS_Store
rm -rf CODEOWNERS
find . -name ".git*" -print0 | xargs -0 rm -rf
brew install gnu-tar 
gtar -czvf apache-mxnet-src-0.12.0.rc0-incubating.tar.gz apache-mxnet-src-0.12.0.rc0-incubating

...

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

Code Block
languagebash
themeMidnight
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
shasum -a 512 apache-mxnet-src-0.11.0-incubating.tar.gz > apache-mxnet-src-0.11.0-incubating.tar.gz.sha512

...

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

Code Block
languagebash
themeMidnight
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"

...

    • PGP signatures and SHA256 checksum verification - 
Code Block
languagebash
themeMidnight
svn co https://dist.apache.org/repos/dist/dev/incubator/mxnet && cd mxnet/#.#.#.rc0
brew install gpg coreutils
gpg --import ../KEYS


Code Block
languagebash
firstlinetheme1Midnight
titlevalidate the signatures
linenumberstrue
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 

...

This process needs to change -> http://www.apache.org/dev/release-download-pages.html

Code Block
languagebash
firstlinetheme1Midnight
titleRename and Resign the RC to create GA
linenumberstrue
# Step 1: Download and Untar
tar -zxvf apache-mxnet-src-0.11.0.rc3-incubating.tar.gz

# Step 2: rename (remove the rc) and tar again
mv apache-mxnet-src-0.11.0.rc3-incubating apache-mxnet-src-0.11.0-incubating
gtar -czvf apache-mxnet-src-0.11.0-incubating.tar.gz apache-mxnet-src-0.11.0-incubating

# Step 3: Resign now
 
# Step 4: First upload here - 
svn mv https://dist.apache.org/repos/dist/dev/incubator/mxnet/0.11.0/
 
# Step 5: Move from dev to release
svn mv https://dist.apache.org/repos/dist/dev/incubator/mxnet/0.11.0/ https://dist.apache.org/repos/dist/release/incubator/mxnet/ --message "0.11.0 release moving from dev to release repo"

 
# Wait 24hours for the src mirroring. The final download page for the announce email is somewhere here (example 0.11.0) - https://www.apache.org/dyn/closer.cgi/incubator/mxnet/0.11.0-incubating/

...

  1. clean up older releases stored in https://dist.apache.org/repos/dist/release/incubator/mxnet/ and https://dist.apache.org/repos/dist/dev/incubator/mxnet/ 

    Code Block
    languagebash
    themeMidnight
    firstline1
    titleDelete old releases from ASF mirrors (assuming new release version is 1.1.0 and the old one is 1.0.0linenumberstrue
    # checkout apache release repo
    svn co https://dist.apache.org/repos/dist/release/incubator/mxnet apache-mxnet-release
    cd apache-mxnet-release
    # remove the previous release folder
    svn rm 1.0.0
    svn commit -m 'commit message'
    # checkout apache dev repo
    svn co https://dist.apache.org/repos/dist/dev/incubator/mxnet apache-mxnet-dev
    cd apache-mxnet-dev
    # remove the previous release candidate folders
    svn rm 1.1.0.rc*
    svn commit -m 'commit message'




...