Having a "how to release" wiki page (or any kind of living document) for
the project ensures that anyone in the community can release the product.
This is great for onboarding new RMs, etc...

Patrick

On Wed, May 24, 2017 at 9:27 AM, Debojyoti Dutta <ddu...@gmail.com> wrote:

> Thx a lot Gary and Patrick for the tips on release management. It would be
> my 1st so I am going to seamlessly ask for forgiveness :)
>
> debo
>
> On Tue, May 23, 2017 at 7:43 PM, Patrick Hunt <ph...@apache.org> wrote:
>
>> fyi many projects capture this, some even capture the exact email formats
>> etc..., on their wiki. Typically as a "how to release" page, e.g.
>>
>> https://wiki.apache.org/hadoop/HowToRelease
>> http://htrace.incubator.apache.org/building.html
>>
>> You might compare to what you've created, however each project typically
>> has it's own special cases.
>>
>> For things like "Commit the whole new release candidate folder in the
>> staged trunk
>> using the SVN client to commit it all" (and similar) you probably should
>> just give the command to run to simplify things and reduce the chances for
>> error. The more you can make each operation "copy/paste" the more likely
>> you'll have a successful release and easier for the RM. That said the more
>> you can automate the better (typically by adding it to mvn).
>>
>> Patrick
>>
>> On Tue, May 23, 2017 at 5:50 PM, Gang(Gary) Wang <ga...@apache.org>
>> wrote:
>>
>>> 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/cont
>>> ent/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
>>>
>>
>>
>
>
> --
> -Debo~
>

Reply via email to