This is an automated email from the ASF dual-hosted git repository.

leerho pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/datasketches-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 6c40c5f8 Update Java Release Process
6c40c5f8 is described below

commit 6c40c5f8cc973461922c04fba20b4b9498471023
Author: Lee Rhodes <[email protected]>
AuthorDate: Sat Nov 9 14:58:24 2024 -0800

    Update Java Release Process
---
 docs/Community/ReleaseProcessForJavaComponents.md | 121 +++++++++++-----------
 1 file changed, 60 insertions(+), 61 deletions(-)

diff --git a/docs/Community/ReleaseProcessForJavaComponents.md 
b/docs/Community/ReleaseProcessForJavaComponents.md
index 7fad83f0..b58edcbc 100644
--- a/docs/Community/ReleaseProcessForJavaComponents.md
+++ b/docs/Community/ReleaseProcessForJavaComponents.md
@@ -23,14 +23,14 @@ layout: doc_page
 # Release Process For Java Components 
 __NOTES:__
 
-* This process covers major and minor releases only. Bug-fix releases, which 
increment the third digit, are performed on a A.B.X branch and not on master, 
but otherwise are similar.
+* This process covers major and minor releases only. Patch-fix releases, which 
increment the third digit, are performed on a A.B.X branch and not on 
master/main, but otherwise are similar.
 * Some of these operations can be performed either on the Command-Line or in 
your IDE, whatever you prefer.
-* The Java **datasketches-memory** project has its own specialized release 
process. Please consult the README.md file on that project.
+* The Java **datasketches-memory-2.X and 3.X** projects have their own 
specialized release process. Please consult the README.md file on those 
projects.
 
 ## Preparation
 
-### Check for Code Completeness
-* Confirm that all __temporary__ branches are checked into master and/or 
deleted, both local and remote.
+### Check For Code Completeness
+* Confirm that all __temporary__ branches are checked into master/main and/or 
deleted, both local and remote.
 * Confirm any new bug fixes have corresponding tests
 * At major version releases, search for deprecated code and remove at __Major 
Versions__ only.
     * `find . -name "*.java" -type f -print | xargs grep -n -s -A0 "deprecat"` 
<br/> (This will find "deprecated", "Deprecating", "deprecation", etc.)
@@ -52,7 +52,6 @@ For Java 8, the TestNG version must remain at 7.5.1
 * `mvn versions:display-plugin-updates`
 * `mvn versions:display-property-updates` For all POM properties
 
-
 ### Visual Checks for Correctness
 * LICENSE
 * NOTICE -- check for copyright dates
@@ -72,66 +71,65 @@ Also specifies line separator characters for text files.
 * `mvn clean test -P check-cpp-files` (only for ds-java)
 * `mvn clean test -P check-cpp-historical-files` (only for ds-java)
 * `mvn clean javadoc:javadoc`
-* `mvn clean install -DskipTests=true`
-
-* Check that the /target/ directory has 5 jars: (may need to refresh)
-    * datasketches-\<component-version\>-SNAPSHOT-javadoc.jar
-    * datasketches-\<component-version\>-SNAPSHOT-sources.jar
-    * datasketches-\<component-version\>-SNAPSHOT-test-sources.jar
-    * datasketches-\<component-version\>-SNAPSHOT-tests.jar
-    * datasketches-\<component-version\>-SNAPSHOT.jar
-* Check your local Maven local repository
-    * 
_~/.m2/repository/org/apache/datasketches/datasketches-\<component\>/A.B.0-SNAPSHOT/_
 
-    * It should have 5 new jars and a .pom file. 
 
 ### Run IDE Checks
 * Run Code Coverage > 90%
 * SpotBugs checks (is it properly configured?)
 * Checkstyle (is it properly configured?)
 
-## Create Permanent Release Branch & Update POM Version
-
-### Make sure GPG-Agent is running and GitHub is clean
-* From Command Line at Component root:
-    * `eval $(gpg-agent --daemon)`
-        * if it is not running it will start it.
-        * if it is already running you will see something like:
-        * `gpg-agent: a gpg-agent is already running - not starting a new one` 
 
-
-    * Confirm GitHub repository is current and git status is clean:
-        * `git status` # should return:
-        * "On branch master, your branch is up to date with 'origin/master', 
nothing to commit, working tree clean."
-     
-### Create New Release Branch
-* Assume current master POM version = A.B.0-SNAPSHOT
-* Create new __Permanent Branch__: "A.B.X"
-    * Note: This assumes a normal progression of release numbers. However, 
when moving to a new major release the current A.B.0-SNAPSHOT will be followed 
by a new __Permanent Branch__: A'.0.X, where A' = A + 1.
-
-### Edit Release Branch POM Version to Target Release Version 
-* Switch to new Release Branch
+## Create Permanent Release Branch & Update POM Versions
+
+### Assume Semantic Versioning
+* Current master/main POM version = A.B.0-SNAPSHOT
+* Next anticipated future release of master/main = A.B'.0-SNAPSHOT where B' = 
B + 1.
+* Release branch = A.B.X.
+* Target release version = A.B.0. 
+    * Except for patch releases where the 3rd digit is modified on the same 
release branch A.B.X
+
+### Make Sure Master/Main Branch Is Clean
+* From command line at component root on master/main branch:
+* Confirm master/main branch is current and git status is clean:
+    * `git status` # should return:
+    * "On branch master/main, your branch is up to date with 
'origin/master(main)', nothing to commit, working tree clean."
+
+### Edit Master/Main Branch POM with the SNAPSHOT Version of the Anticipated 
Next Future Release
+* Edit master/main pom.xml to A'.B'.0-SNAPSHOT where A' or B' will be 
incremented by 1.
+* Commit and Push this change to origin/master(main) with the comment "Release 
Process: Change master/main pom version to A'.B'.0-SNAPSHOT."
+    * This may require changing to a temparary branch and creating a PR to be 
approved if master/main branch is restricted. 
+
+### Create And Switch to New __Permanent Release Branch__ "A.B.X"
+
+### Edit Release Branch POM Version to Target Release Version "A.B.0"
+* Note: if major version change, the target release version will be A'.0.0, 
where A' = A + 1.
 * Edit pom.xml version to A.B.0 (remove -SNAPSHOT, do not change A or B) in 
case of normal progression, or A'.0.0 in the case of a new major release.
-* Commit the change. __DO NOT PUSH!__
+* Commit the change locally. __DO NOT PUSH YET!__
 * Create Annotated TAG for this commit: A.B.0-RC1 (or RCn) or A'.0.0-RC1
 * Write down the Git hash : example: 40c6f4f (you will need it later)
-* __Now Push__ Branch  "A.B.X" with edited pom.xml to origin __NEVER MERGE 
THIS PERMANENT BRANCH INTO MASTER__
+* __NOW PUSH__ Release Branch  "A.B.X" with edited pom.xml to origin __DO NOT 
MERGE THIS PERMANENT BRANCH INTO MASTER/MAIN__
 * Do explicit push of tags on new branch A.B.X (or A'.0.X) to origin:
     * `git push origin --tags`
 
-### Confirm new Release Branch, Tag and Git hash
+### Run Maven Install on Release Branch
+* `mvn clean install -DskipTests=true`
+* Check that the /target/ directory has 5 jars: (may need to refresh)
+    * datasketches-\<component-version\>-javadoc.jar
+    * datasketches-\<component-version\>-sources.jar
+    * datasketches-\<component-version\>-test-sources.jar
+    * datasketches-\<component-version\>-tests.jar
+    * datasketches-\<component-version\>.jar
+* Check your local Maven local repository
+    * 
_~/.m2/repository/org/apache/datasketches/datasketches-\<component\>/A.B.0/_ 
+    * It should have 5 new jars and a .pom file. 
+
+#### Confirm new Release Branch, Tag and Git hash
 * From a web browser at origin web site: 
github.com/apache/datasketches-\<component\>
     * Select the A.B.X branch or A'.0.X
     * Confirm that the tag: A.B.0-RC1 (or A'.0.0-RC1) exists and that the tag 
is on the latest commit and with the correct Git hash.
-    * __DO NOT CREATE PR OR MERGE THIS PERMANENT BRANCH INTO MASTER__
+    * __DO NOT CREATE PR OR MERGE THIS PERMANENT BRANCH INTO MASTER/MAIN__
 * From IDE or Command Line:
     * Confirm that the tag A.B.0-RC1 and the branch A.B.X, (or A'.0.0-RC1 and 
the branch A'.0.X) and HEAD coincide with the correct Git hash.
     * Confirm that there are no unstaged or staged changes.
-    * Return to master branch
-
-### Edit Master Branch with the SNAPSHOT Version of the Anticipated Next 
Future Release
-* Edit master pom.xml to A'.B'.0-SNAPSHOT where A' or B' will be incremented 
by 1.
-* Commit and Push this change to origin/master with the comment "Release 
Process: Change pom version to A'.B'.0-SNAPSHOT."
-    * This may require changing to a temparary branch and creating a PR to be 
approved if master branch is restricted. 
-* Return to release branch A.B.X (or A'.0.X)
+    * Return to master/main branch
 * You may minimize your IDE, pointing at the release branch.
 
 ## Push Candidate Release to *dist/dev*
@@ -145,20 +143,21 @@ Also specifies line separator characters for text files.
 * Open a terminal in the dist/dev/datasketches directory and do a checkout:
     * `svn co https://dist.apache.org/repos/dist/dev/datasketches/ .`      
#Note the DOT
     * `svn status`    # make sure it is clean: does not list any (?) or (!) 
files
+        * If any (?) or (!) files exist they must be resolved before 
proceding. 
 
 ### Create & Push Zip Files & Signatures/Hashes to *dist/dev*
 * You will need the following arguments:
-  * Absolute path of target project.basedir on your system
-  * Project.artifactId : datasketches-\<component\> where component is e.g., 
java, pig, hive,...
-  * GitHub Tag: A.B.0-RC1 (or RCn)
+  * Absolute system path of target project.basedir pointing to the release 
branch
+  * Project.artifactId : "datasketches-\<component\>" where component is e.g., 
java, memory, pig, hive,...
+  * Release GitHub Tag: A.B.0-RC1 (or RCn)
   * Have your GPG passphrase handy -- you may have only a few seconds to enter 
it!
 * Start a new terminal in the above *dist/dev/datasketches/scripts* directory 
on your system:
   * Confirm *gpg-agent* is running:
       * `eval $(gpg-agent --daemon)`
           * if it is not running it will start it
           * if it is already running you will see something like:
-          * `gpg-agent: a gpg-agent is already running - not starting a new 
one`  
-  * Run something like this (you need to copy & edit):
+          * `gpg-agent: a gpg-agent is already running - not starting a new 
one`
+  * Run something like this (you must copy & edit):
     * `./bashDeployToDist.sh 
/Users/<name>/dev/git/Apache/datasketches-<component> datasketches-<component> 
A.B.0-RC1`
     * Follow the instructions.
     * NOTE: if you get the error "gpg: signing failed: No pinentry":
@@ -166,9 +165,9 @@ Also specifies line separator characters for text files.
         * change to: pinentry-program */usr/local/bin/pinentry-tty*
         * reload the gpg agent in the terminal: `gpg-connect-agent reloadagent 
/bye` 
         * restart the *./bashDeployToDist* script
-    * Close the terminal
+  * Close the terminal
 
-### Check Primary Zip Files & Signatures/Hashes
+#### Check Primary Zip Files & Signatures/Hashes
 * Check this web URL ~ 
*https://dist.apache.org/repos/dist/dev/datasketches/\<component\>/A.B.0-RC1/*
     * Update SVN: `svn up`
     * There should be 3 files: \*-src.zip, \*-src.zip.asc, \*-src.zip.sha512
@@ -195,7 +194,7 @@ Also specifies line separator characters for text files.
 * **Have your GPG passphrase handy -- you may have only a few seconds to enter 
it, but it may be automatic!**
 * `mvn clean deploy -Pnexus-jars -DskipTests=true`
 
-### DEPLOY-CHECK
+#### DEPLOY-CHECK
 * Login to Nexus: [repository.apache.org](https://repository.apache.org/) / 
Staging Repositories for orgapachedatasketches-XXXX
 * Click __Content__ and search to the end.  Each jar & pom should have .asc, 
.md5, .sha1 signatures
 * Check target/ & .m2 that jars & pom exist and have .asc signatures
@@ -203,11 +202,11 @@ Also specifies line separator characters for text files.
 ### CLOSE (Very Important)
 * [CLOSE] the Staging Repository with a comment: "\<component\> A.B.0"
 
-### CHECK CLOSE
+#### CHECK CLOSE
 * Confirm its existance under Repositories/Staging web-site URL (in the 
summary window)
 * Grab its URL while there. You will need it for the Vote Letter.
 
-### CHECK Local Maven Repo
+#### CHECK Local Maven Repo
 * Check your local Maven repository
     * 
_~/.m2/repository/org/apache/datasketches/datasketches-\<component\>/A.B.0/_ 
     * It should have 5 new jars and a .pom file each with .asc, .md5, and 
.sha1 signatures. <br/> Note: Newer versions of the Maven deploy plugin do not 
copy the md5 and sha1 signatures into .m2, but they will still exist in Nexus. 
md5 and sha1 are obsolete.
@@ -278,9 +277,9 @@ Also specifies line separator characters for text files.
 * Select "orgapachedatasketches-XXXX" (If more than one make sure you select 
the right one!)
 * At the top of the window, select "Drop"
 
-### If necessary, update branch *master* from branch *A.B.X*
+### If necessary, update branch *master/main* from branch *A.B.X*
 If you have gone through more than one Release Candidate, you may have changes 
that need to be 
-reflected in the master. Use the **git cherry-pick** command for this.  
+reflected in the master/main. Use the **git cherry-pick** command for this.  
 
 ## Finalize Release Documentation
 
@@ -299,7 +298,7 @@ reflected in the master. Use the **git cherry-pick** 
command for this.
 ### Update Website Downloads.md "Latest Source Zip Files" Table
 * This script assumes that the remote *.../dist/release/datasketches/...* 
directories are up-to-date with no old releases.  
 * Start a new terminal in the *../dist/dev/datasketches/scripts* directory on 
your system:
-* Make sure your local website directory is pointing to master and up-to-date. 
+* Make sure your local website directory is pointing to master/main and 
up-to-date. 
 * Run the following with the argument specifying the location of your local 
website directory:
     * `./createDownloadsInclude.sh /Users/<name>/ ... /datasketches-website`
 * When this is done, be sure to commit the changes to the website.
@@ -307,7 +306,7 @@ reflected in the master. Use the **git cherry-pick** 
command for this.
 ### Update Website Documentation
  * From the *github.com/datasketches-\<component\>* website, run JavaDoc 
GitHub action for the release tag:
     * On the component website (github.com/apache/datasketches-\<component\>), 
go to *Actions* and select the *JavaDoc* workflow.
-    * Open the *Run workflow* pull-down, then in the *Branch:master* 
pull-down, select the correct release tag instead of the branch. 
+    * Open the *Run workflow* pull-down, then in the *Branch:master/main* 
pull-down, select the correct release tag instead of the branch. 
     * Run the workflow and check that it finished successfully.
     * Return to the component website home, select the *gh-pages* branch and 
check that it created *docs/X.Y.Z* directory
  * From your local *datasketches-website* directory:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to