Author: fanningpj
Date: Sun Sep 24 11:57:24 2023
New Revision: 1912523

URL: http://svn.apache.org/viewvc?rev=1912523&view=rev
Log:
update release guide (more changes to come)

Modified:
    poi/site/src/documentation/release-guide.txt

Modified: poi/site/src/documentation/release-guide.txt
URL: 
http://svn.apache.org/viewvc/poi/site/src/documentation/release-guide.txt?rev=1912523&r1=1912522&r2=1912523&view=diff
==============================================================================
--- poi/site/src/documentation/release-guide.txt (original)
+++ poi/site/src/documentation/release-guide.txt Sun Sep 24 11:57:24 2023
@@ -139,7 +139,67 @@ find . -name "*.asc" -exec gpg --no-secm
      - Remove any old release candidates (only need to keep the latest one)
      - svn commit the changes
 
- (III) Calling the vote:
+(III) Deploy Jars to Maven Staging
+
+  1. Ensure that there has been a build with the right svn commit and then 
download the jars
+     - https://ci-builds.apache.org/job/POI/job/POI-DSL-1.8
+     - 
https://ci-builds.apache.org/job/POI/job/POI-DSL-1.8/lastSuccessfulBuild/artifact/
+
+  2. Set up a `poi-prep` directory and copy all the jars other than the `test` 
jars into it.
+
+  3. We need to create pom files. Copy the ones from the last release into the 
directory with the jars.
+     - ensure the pom file names match the jar names (same version)
+
+This is an example script:
+{code:sh}
+export POI_RELEASE=5.2.4
+export POI_LAST_RELEASE=5.2.3
+curl 
https://repo1.maven.org/maven2/org/apache/poi/poi/$POI_LAST_RELEASE/poi-$POI_LAST_RELEASE.pom
 --output poi-$POI_RELEASE.pom
+curl 
https://repo1.maven.org/maven2/org/apache/poi/poi-scratchpad/$POI_LAST_RELEASE/poi-scratchpad-$POI_LAST_RELEASE.pom
 --output poi-scratchpad-$POI_RELEASE.pom
+curl 
https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml/$POI_LAST_RELEASE/poi-ooxml-$POI_LAST_RELEASE.pom
 --output poi-ooxml-$POI_RELEASE.pom
+curl 
https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml-lite/$POI_LAST_RELEASE/poi-ooxml-lite-$POI_LAST_RELEASE.pom
 --output poi-ooxml-lite-$POI_RELEASE.pom
+curl 
https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml-full/$POI_LAST_RELEASE/poi-ooxml-full-$POI_LAST_RELEASE.pom
 --output poi-ooxml-full-$POI_RELEASE.pom
+curl 
https://repo1.maven.org/maven2/org/apache/poi/poi-excelent/$POI_LAST_RELEASE/poi-excelent-$POI_LAST_RELEASE.pom
 --output poi-excelent-$POI_RELEASE.pom
+curl 
https://repo1.maven.org/maven2/org/apache/poi/poi-examples/$POI_LAST_RELEASE/poi-examples-$POI_LAST_RELEASE.pom
 --output poi-examples-$POI_RELEASE.pom
+{code:sh}
+
+  4. Fix up the version values in the poms
+     - I would recommend using an IDE and loading up the full `poi-prep` 
directory
+     - Replace all instances of the old version number with the new one
+     - if using 'Replace All', approve each change just in case the old 
version number might also match the version of a non-POI dependency
+     - update the dependency versions
+     - check if we need to remove or add dependencies
+     - great care must be taken at this stage because this step is very error 
prone
+     - feel free to generate the poms using the Gradle build instead but the 
Gradle build will get some aspects wrong
+     - the poi-ooxml-lite build is one aspect that messes up the generated poms
+     - you can hand modify the poms to fix issues (compare against the poms 
from the last release)
+
+  5. Generate signatures (no need for SHA checksums because they are 
automatically created later)
+     - The 1556F3A4 key in the command below is just an example, replace the 
value with your own key id
+
+{code:sh}
+for f in *.jar *.pom; do gpg --default-key 1556F3A4 -ab $f; done
+{code}
+
+  6. Create bundle jars
+
+{code:sh}
+jar -cvf poi-bundle.jar poi-5*.pom poi-5*.pom.asc poi-5*.jar poi-5*.jar.asc
+jar -cvf poi-ooxml-bundle.jar poi-ooxml-5*.pom poi-ooxml-5*.pom.asc 
poi-ooxml-5*.jar poi-ooxml-5*.jar.asc
+jar -cvf poi-ooxml-full-bundle.jar poi-ooxml-full*.pom poi-ooxml-full*.pom.asc 
poi-ooxml-full*.jar poi-ooxml-full*.jar.asc
+jar -cvf poi-ooxml-lite-bundle.jar poi-ooxml-lite*.pom poi-ooxml-lite*.pom.asc 
poi-ooxml-lite*.jar poi-ooxml-lite*.jar.asc
+jar -cvf poi-scratchpad-bundle.jar poi-scratchpad*.pom poi-scratchpad*.pom.asc 
poi-scratchpad*.jar poi-scratchpad*.jar.asc
+jar -cvf poi-excelant-bundle.jar poi-excelant*.pom poi-excelant*.pom.asc 
poi-excelant*.jar poi-excelant*.jar.asc
+jar -cvf poi-examples-bundle.jar poi-examples*.pom poi-examples*.pom.asc 
poi-examples*.jar poi-examples*.jar.asc
+{code}
+
+  7. Deploy bundle jars to repository.apache.org
+     - Login with your Apache username and password
+     - If you have never deployed a bundle artifact then read
+       https://help.sonatype.com/repomanager2/staging-releases/artifact-bundles
+     - deploy each of the 7 bundle jars - watch out for exceptions when 
loading them
+
+(IV) Calling the vote:
 
    1. The release manager should call the vote
    2. Include the URL of the release artifacts
@@ -147,7 +207,7 @@ find . -name "*.asc" -exec gpg --no-secm
    4. Provide guidance on what needs to be checked
    5. Complete a tally, and send a result once the time has passed
 
- (IV) After the vote:
+(V) After the vote:
 
 Deploy the artifacts from the staging area 
(https://dist.apache.org/repos/dist/dev/poi/)
 to the release area of the dist repo:



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

Reply via email to