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