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

Reply via email to