Hi Debo Thanks you Debo for becoming our new releasing manager, I'm trying to detail the steps below from my previous releases, hope it can help.
Hi PPMCs Please correct me if any missing or incorrect items below and welcome to optimize & improve the following steps, Thanks! 1) Prepare a Linux box (one time setup) The commands are running on Linux OS, so please have a Linux box or a Virtual Machine for releasing 2) Prepare your release key if not yet or expired (one time setup) https://www.apache.org/dev/openpgp.html#generate-key Please also put your key fingerprint into your account, https://id.apache.org 3) Start a GPG agent on your Linux box using the following command (before releasing) $eval 'gpg-agent --daemon --use-standard-socket' 4) Install SVN client on your laptop to upload staged/released artifacts 5) Using SVN client to check out the staged trunk (One time and Update before voting) https://dist.apache.org/repos/dist/dev/incubator/mnemonic This trunk is used to upload the release candidates before voting on dev@list 6) Using SVN client to check out the release trunk (One time and Update after voting) https://dist.apache.org/repos/dist/release/incubator/mnemonic This trunk is used to upload the releases after voting on general@list 7) Using SVN client to checkout the project status file (One time and Update after releasing) https://svn.apache.org/repos/asf/incubator/public/trunk/content/projects/mnemonic.xml 8) Replace the KEYS file contents with yours in both trunk of stage and release and then commit the changes using SVN client 9) run the following command for auto release packaging on project directory $./build-tools/release.sh <current release version> <next release version> <candidate Id> for example $./build-tools/release.sh 0.8.0 0.8.0 rc1 Note that usually we use the same current version in above command as we cannot predict whether or not have a new candidate for this release before voting In this step, you may have to input your GPG password to allow gpg to sign off artifacts using your private key 10) Prepare the new release candidate folder on stage trunk please duplicate a folder from latest release candidate on stage trunk and rename it as current release candidate. for example: 0.8.0-incubating-rc1 and then empty the src folder 11) Update the CHANGES.txt for current release candidate on stage trunk a) open the JIRA for Mnemonic project b) in the overview, click the "Versions" c) click the latest version that needs to be release, for example "0.8.0-incubating" d) click the button "Release Notes" on top-right e) copy the Text between "Configure Release Notes" and "Edit/Copy Release Notes" f) open CHANGES.txt and replace all contents with the one just copied 12) Upload packaged artifacts from Linux box Please use tools e.g. SCP to download all artifacts suffixed with *.tar.gz under target/ folder into the src folder of staged trunk 13) Commit the whole new release candidate folder in the staged trunk using the SVN client to commit it all 14) Prepare a voting mail for dev@list voting Please refer to the latest vote mail in dev@list 15) Report the voting results on dev@list if not pass, please prepare next release candidate after issues fixed 16) Prepare a voting mail for general@list voting Please refer to the latest vote mail in general@list 17) Report the voting results on general@list if not pass, please prepare next release candidate after issues fixed 18) Submit the voted release candidate to release trunk a) Please copy the release candidate from staged trunk to release trunk b) and then remove the rc[x] suffix of the folder, for example, 0.8.0-incubating-rc1 to 0.8.0-incubating c) commit your new folder into SVN repos using SVN client 19) Update the project status file for the new releasing Insert a new xml element to mnemonic.xml for new release for example: "<li>2017-xx-xx the eighth official release.</li>" and then commit it using SVN client Please also improve it or correct it if any issue, Thanks! Very truly yours +Gary