...
- 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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/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" |
...
- 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. - Check with the website lead and docs lead that all necessary updates have made it into the release branch
- Most updates happen post-release.
- Broken link updates in tutorials and faqs would be an exception.
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 language bash theme Midnight title Adding 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
- 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
...
- Nightly Tests
Following jobs are run as a part of the nightly tests:- NightlyTests
- 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. - Backward Compatibility checker (currently restricted).
- Some jobs might take up to 4-5 hours, so plan accordingly.
- 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).
- Jenkins CI Tests
- 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/
- 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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
# 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 | ||||
---|---|---|---|---|
| ||||
svn co https://dist.apache.org/repos/dist/dev/incubator/mxnet && cd mxnet/#.#.#.rc0 brew install gpg coreutils 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 |
...
This process needs to change -> http://www.apache.org/dev/release-download-pages.html
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# 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/ |
...
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 language bash theme Midnight firstline 1 title Delete old releases from ASF mirrors (assuming new release version is 1.1.0 and the old one is 1.0.0 linenumbers true # 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'
...