Hi,

I would like to restart the discussion about a ratis release.

1. It's hard to find the right time to release as thanks to the continuous testing with hdfs/ozone we always have some minor issues/improvements.

I would suggest to do a release as soon as possible and do more frequent releases.

Currently we have three patches available (and no blocker issues)

+-----------+------------------------------------------------------------+-----------+
| RATIS-217 | Support timeout for append entry requests(GrpcLogAppender) | ljain | | RATIS-208 | Allow client to specify replication level in a request | k8i6t2009 | | RATIS-218 | Optimize heartbeating in Ratis for Grpc protocol | msingh |
+-----------+------------------------------------------------------------+-----------+

Do you know if any of them is a must have for a release?

2. Also I started to document a process to create the release (WIP: see the attachment). Could you please add me to the Ratis project in apache cwiki?

Thanks
Marton


----------------------
A. PREPARE
----------------------

1. Increase maven memory:

export MAVEN_OPTS="-Xmx2000m"

2. check the id of your signing key

gpg --list-keys

export CODESIGNINGKEY=<yourid>

3. Choose a version

export RATISVERSION=0.2.0

----------------------
B. SOURCE RELEASE
----------------------

1. Create the signed tag

git config user.signingkey $CODESIGNINGKEY
git tag -s -m "Release $RATISVERSION" ratis-$RATISVERSION
git reset --hard ratis-$RATISVERSION

1. Remove the local-only files from your repo:

git clean -fdx

2. Set the release version:

mvn versions:set -DnewVersion=$RATISVERSION

3. Double check if you have no snapshot dependencies in your poms.

grep -r SNAPSHOT --include=pom.xml

4. Do a release build:

mvn clean install assembly:single -DskipTests=true  -Prelease -Papache-release 
-Dgpg.keyname=$CODESIGNINGKEY

########################################

Now you have the final source release artifact:

ratis-assembly/target/ratis-incubator-${RATISVERSION}-src.tar.gz

Use this to test the result and create the binary artifact.

#########################################

----------------------
C. VALIDATION AND BIN RELEASE 
----------------------

1. unpack the source release

export RATISDIR=$(pwd)
cd /tmp
tar zvxf 
$RATISDIR/ratis-assembly/target/ratis-incubator-${RATISVERSION}-src.tar.gz
cd ratis-incubator-${RATISVERSION}

2. Do the build again

mvn clean install assembly:single -DskipTests=true  -Prelease -Papache-release 
-Dgpg.keyname=$CODESIGNINGKEY

3. Do a smoke test

cd ratis-assembly/target
tar vzxf ratis-incubator-0.2.0-bin.tar.gz
cd ratis-incubator-0.2.0
./examples/bin/start-all.sh
./examples/bin/client.sh assign --name a --value 2
./examples/bin/client.sh get --name a

4. deploy the signed artifacts to the nexus

mvn deploy install assembly:single -DskipTests=true  -Prelease -Papache-release 
-Dgpg.keyname=$CODESIGNINGKEY

5. Close the staging repository on the nexus ui

https://repository.apache.org/#stagingRepositories

Wait for the validation and get the URL

https://repository.apache.org/content/repositories/orgapacheratis-1001/

6. Upload the bin/src artifacts to your personal space

----------------------
VOTE
----------------------

Write a mail with

1. url to the bin/src package + asc
2. stating url


----------------------
IN CASE OF VOTE PASSED
----------------------

1 . push the tag to the repository

2. Release the staging repository

3. Upload the final artifacts

4.  Set the next developer version

Reply via email to