1) Setup Phase

  1.1 Prepare a Linux box 1.1.1 Install git tool chain 1.1.2 Install GPG tool chain 1.1.3 Install SVN client 1.1.4 Deploy deps. of Mnemonic devel. 1.1.1.1 Config git tool 1.1.2.1 Prepare a release key 1.1.2.1.1 Submit key fingerprint 1.1.3.1 Checkout stage trunk 1.1.3.2 Checkout release trunk 1.1.3.3 Checkout project status page only 1.1.3.1.1 Update KEYS file on stage trunk 1.1.3.2.1 Update KEYS file on release trunk 1.1.4.1 Configure Maven release account 1.1.1.1.1 Clone your forked Mnemonic project 1.1.1.1.1.1 Add Apache repository as upstream  

1.1 Prepare a Linux box

Please use the latest version of CentOS since you can refer to Dockerfile for the detail commands of Mnemonic dependencies deployment.

The Linux box could be a host, virtual machine or docker container.

 

1.1.4 Deploy deps. of Mnemonic devel.

Deploy all dependencies of Mnemonic development, please referring to the Dockerfile in Mnemonic project

For CentOS

https://github.com/apache/mnemonic/blob/master/docker/Dockerfile

For Ubuntu

https://github.com/apache/mnemonic/blob/master/docker-ubuntu/Dockerfile

 

1.1.1.1.1 Clone your forked Mnemonic project

$ git clone https://github.com/<your_username>/mnemonic.git

NOTE: please add username as the prefix to your git URL.

 

1.1.1.1.1.1 Add Apache repository as upstream

$ cd <cloned_mnemonic_project_dir>
$ git remote add upstream https://<your_apache_id>@git-wip-us.apache.org/repos/asf/mnemonic.git

NOTE: please add username as the prefix to your upstream git URL.

 

1.1.2.1 Prepare a release key

https://www.apache.org/dev/openpgp.html#generate-key

NOTE: Please use your Apache email address (<your_apache_id>@apache.org) to generate a GPG key for artifacts signing and the command "git config --get user.signingkey" should return the <gpg-key-id> of your signing key that you can find it using the command "gpg --list-keys" 

 

1.1.2.1.1 Submit the key fingerprint

https://id.apache.org


1.1.3.1 Checkout stage trunk

$ svn checkout https://<your_apache_id>@dist.apache.org/repos/dist/dev/mnemonic mnemonic-stage
 

1.1.3.1.1 Update KEYS file on stage trunk

Append your generated public key to this KEYS file


1.1.3.2 Checkout release trunk

 $ svn checkout https://<your_apache_id>@dist.apache.org/repos/dist/release/mnemonic mnemonic-release


1.1.3.2.1 Update KEYS file on release trunk

Append your generated public key to this KEYS file


1.1.3.3 Checkout the Mnemonic project status page only

$ svn checkout https://<your_apache_id>@svn.apache.org/repos/asf/incubator/public/trunk/content/projects mnemonic-status --depth empty
$ cd mnemonic-status
$ svn update mnemonic.xml

 

1.1.4.1 Configure Maven release account

Add following setting items into your private maven settings file, i.e. ~/m2/settings.xml

<settings>
....  
 <servers>
 ....
    	<server>
      		<id>apache.releases.https</id>
      		<username>yourApacheID</username>
     		<password>yourApachePassword</password>
   		 </server>
         <server>
             <id>apache.snapshots.https</id>
             <username>yourApacheID</username>
             <password>yourApachePassword</password>
         </server>
         <server>
             <id>repository.apache.org</id>
             <username>yourApacheID</username>
             <password>yourApachePassword</password>
         </server>
  </servers>
</settings>

Please make sure you can login the following repository using above account info.

https://repository.apache.org

2) Release Phase

  2.1 Ensure code readiness for release 2.1.1 Checkout and pull on master branch 2.1.2 Start GPG agent 2.1.3 Collect version changes info. 2.1.1.1 Run auto release tool Fail 2.1.1.1.1 Collect generated artifacts 2.1.1.1.1.1 Submit release candidate on stage trunk 2.1.1.1.1.1.1 Send vote mail to dev@list 2.1.1.1.1.1.1.1 Collect and report vote result on dev@list Not pass 2.1.1.1.1.1.1.1.1 Send vote mail to general@list 2.1.1.1.1.1.1.1.1.1 Collect and report vote result on general@list Not pass 2.1.1.1.1.1.1.1.1.1.1 Submit voted RC on release trunk 2.1.1.1.1.1.1.1.1.1.2 Terminate GPG agent 2.1.1.1.1.1.1.1.1.1.1.1 Update project status 2.1.1.1.1.1.1.1.1.1.1.2 Send out new release announcement 2.1.1.1.1.1.1.1.1.1.1.3 Clean up SVN repositories after releasing a new version 2.1.1.1.1.1.1.1.1.1.1.4 Update Website 2.1.1.1.1.1.1.1.1.1.1.1.1 Publish project status

A Guide To Release Management During Incubation [http://incubator.apache.org/guides/releasemanagement.html] [http://www.apache.org/dev/release-publishing.html]

 

2.1.1.1 Run auto release tool

$ cd <mnemonic_project_dir>
$ ./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

 

2.1.1.1.1 Collect generated artifacts

Create a folder named <version>-incubating-rc<seqnum> e.g. 0.9.0-incubating-rc1 on the staged trunk and then copy all artifacts suffixed with *.tar.gz under target/ folder into the src folder.


2.1.1.1.1.1.1 Send vote mail to dev@list

SUBJECT : [VOTE] Release of Apache Mnemonic-<version> [rc<rc_number>]
TO : dev@mnemonic.apache.org

Hi all,

This is a call for a releasing Apache Mnemonic
<version>, release candidate <rc_number>. This
is the new release of Mnemonic.

The source tarball, including signatures, digests, etc. can be found at:
https://dist.apache.org/repos/dist/dev/mnemonic/<version>-rc1/src/

The tag to be voted upon is v<version>-incubating:
https://git-wip-us.apache.org/repos/asf?p=mnemonic.git;a=shortlog;h=refs/tags/v<version>

The release hash is <commit_hash_code>:
https://git-wip-us.apache.org/repos/asf?p=mnemonic.git;a=commit;h=<commit_hash_code>

Release artifacts are signed with the following key:
https://dist.apache.org/repos/dist/dev/mnemonic/KEYS

KEYS file available:
https://dist.apache.org/repos/dist/dev/mnemonic/KEYS

For information about the contents of this release, see:
https://dist.apache.org/repos/dist/dev/mnemonic/<version>-rc<rc_number>/CHANGES.txt

The vote will be open for ~72 hours.
Please download the release candidate and evaluate the necessary items
including checking hashes, signatures, build from source, and test.  The
please vote:

[ ] +1 Release this package as apache-mnemonic-<version>
[ ] +0 no opinion
[ ] -1 Do not release this package because...

Thanks,
<RM name> on behalf of the Apache Mnemonic community

 

2.1.1.1.1.1.1.1 Collect and report vote result on dev@list

SUBJECT : [RESULT][VOTE] Release of Apache Mnemonic-<version>[rc<rc_number>]
TO : dev@mnemonic.apache.org

Hi all,

After being opened for over more than 72 hours, the vote for releasing Apache
Mnemonic <version> passed with <count> binding +1s, <count> non-binding +1s and no 0 or -1.
The link to vote thread is <vote_email_thread_https_link>
 
* Binding votes +1s: *
<voter_name> (<voter_apache_id>)
...
 
* Non-binding votes +1s: *
<voter_name> (<voter_apache_id>)
...

<0 or -1 vote if any>
 
Project Members Role Info
http://mnemonic.apache.org/develop/

*Thanks all*
Cheers
<RM name> on behalf of the Apache Mnemonic community

 

2.1.1.1.1.1.1.1.1 Send vote mail to general@list

SUBJECT : [VOTE] Release of Apache Mnemonic-<version> [rc<rc_number>]
TO : general@incubator.apache.org

Hello incubator PMCs,

The Apache Mnemonic community PPMCs and developers have voted and approved the proposal to release Apache Mnemonic <version> (incubating).
Apache Mnemonic is an advanced hybrid memory storage oriented library, it's proposed a non-volatile/durable Java object model and 
durable computing model that bring several advantages to significantly improve the performance of massive real-time data processing/analytic. 
developers are able to use this library to design their cache-less and SerDe-less high performance applications.

[VOTE] thread:
http://mail-archives.apache.org/mod_mbox/incubator-mnemonic-dev/...
...

[VOTE RESULT] thread:
http://mail-archives.apache.org/mod_mbox/incubator-mnemonic-dev/...
...

We now kindly request the Incubator PMC members review and vote on this incubator release.

The Apache Mnemonic-<version>-incubating release candidate is now available with the following artifacts for a project vote:
The source tarball, including signatures, digests, etc. can be found at:
https://dist.apache.org/repos/dist/dev/incubator/mnemonic/<version>-incubating-rc<rc_number>/src/

The tag to be voted upon is v<version>-incubating:
https://git-wip-us.apache.org/repos/asf?p=incubator-mnemonic.git;a=shortlog;h=refs/tags/v<version>-incubating

The release hash is <commit_hash_code>:
https://git-wip-us.apache.org/repos/asf?p=incubator-mnemonic.git;a=commit;h=<commit_hash_code>

Release artifacts are signed with the following key:
https://dist.apache.org/repos/dist/dev/incubator/mnemonic/KEYS

KEYS file available:
https://dist.apache.org/repos/dist/dev/incubator/mnemonic/KEYS

For information about the contents of this release, see:
https://dist.apache.org/repos/dist/dev/incubator/mnemonic/<version>-incubating-rc<rc_number>/CHANGES.txt

The vote will be open for ~72 hours.
Please download the release candidate and evaluate the necessary items
including checking hashes, signatures, build from source, and test.

please vote:
[ ] +1 Release this package as apache-mnemonic-<version>-incubating
[ ] +0 no opinion
[ ] -1 Do not release this package because...

Thanks,
<RM name> on behalf of the Apache Mnemonic (incubating) team

 

 

2.1.1.1.1.1.1.1.1.1 Collect and report vote result on general@list

SUBJECT : [RESULT][VOTE] Release of Apache Mnemonic-<version>-incubating [rc<rc_number>]
TO : general@incubator.apache.org

Hi all,
After being opened for over more than 72 hours, the vote for releasing Apache
Mnemonic <version>-incubating passed with <count> binding +1s, <count> non-binding +1s and no 0 or -1.
The link to vote thread is <vote_email_thread_https_link>
 
 
* Binding votes +1s: *
<voter_name> (<voter_apache_id>)
...
 
* Non-binding votes +1s: *
<voter_name> (<voter_apache_id>)
...


<0 or -1 vote if any>
 
Project Members Role Info
http://mnemonic.incubator.apache.org/develop/

*Thanks all*
Cheers
<RM name> on behalf of the Apache Mnemonic (incubating) community

Release manager can add binding votes from dev@list to this report.

2.1.1.1.1.1.1.1.1.1.2 Terminate GPG agent

 $ kill $SSH_AGENT_PID

 

2.1.1.1.1.1.1.1.1.1.1.2 Send out new release announcement

SUBJECT : [ANNOUNCE] Apache Mnemonic-<version>-incubating released
REPLY-TO : dev@mnemonic.apache.org
TO :
announce@apache.org,
dev@mnemonic.apache.org,
user@mnemonic.apache.org

The Apache Mnemonic community is pleased to announce the release of Apache Mnemonic-<version>.

Apache Mnemonic is an advanced hybrid memory storage oriented library, it's proposed a non-volatile/durable Java object model and
durable computing model that bring several advantages to significantly improve the performance of massive real-time data processing/analytic.
developers are able to use this library to design their cache-less and SerDe-less high performance applications.

The release is available for download at:

    https://dist.apache.org/repos/dist/release/mnemonic/<version>-incubating

The full changelog is available at:
https://dist.apache.org/repos/dist/release/mnemonic/<version>-incubating/CHANGES.txt

We would like to thank all contributors who made this release possible!

 

2.1.1.1.1.1.1.1.1.1.1.3 Clean up SVN repositories after releasing a new version

Remove all release candidates from stage trunk and remove previous versions from release trunk, only leave the latest version in release trunk.

2.1.1.1.1.1.1.1.1.1.1.4 Update Website

Update the webpage https://mnemonic.apache.org/downloads/ to reflect the release of a new version. a new JIRA ticket could be created for this action.

Note: please make sure that the new release has been sync. to mirrored sites before updating.

2.1.1.1.1.1.1.1.1.1.1.1.1 Publish project status

Please log into the following page and then click the "Build now" to publish updated project status

https://builds.apache.org/view/H-L/view/Incubator/job/Incubator%20Site/


2.1.2 Start GPG agent

$ export GPG_TTY="$(tty)"
$ eval $(gpg-agent --daemon)


2.1.3 Collect version changes info.

a) Please open the Apache JIRA for Mnemonic project -- https://issues.apache.org/jira/browse/MNEMONIC
b) In the overview, click the "Versions"
c) Click the latest version that needs to be release, for example "0.8.0"
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 for current RC on stage trunk
g)   Copy this CHANGES.txt file to the release candidate folder on the staged trunk, please refer to section 2.1.1.1.1 Collect generated artifacts