Author: fanningpj
Date: Sun Sep 24 11:19:17 2023
New Revision: 1912519
URL: http://svn.apache.org/viewvc?rev=1912519&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=1912519&r1=1912518&r2=1912519&view=diff
==============================================================================
--- poi/site/src/documentation/release-guide.txt (original)
+++ poi/site/src/documentation/release-guide.txt Sun Sep 24 11:19:17 2023
@@ -43,41 +43,14 @@
For Windows users, install Cygwin and make sure you have the above
utilities
6a. The POI build system requires two components to perform a build
* <a href="https://ant.apache.org">Ant</a> 1.9.x or higher
- * <a href="https://forrest.apache.org/">Forrest</a> 0.90.
+ * <a href="https://forrest.apache.org/">Forrest</a> 0.9.
Make sure ANT_HOME and FORREST_HOME are set.
- 6b. To deploy with Maven, you should have the latest stable Maven 2.x.
- POI 3.10-beta2 was deployed with Maven 2.2.1.
-
- 6c. Ensure you can log in to https://repository.apache.org/ with your Apache
+ 6b. Ensure you can log in to https://repository.apache.org/ with your Apache
credentials, and that you can see the "Staging Repositories" area on
the left hand side.
- 6d. Ensure your ~/.m2/settings.xml contains a server entry with your
- Apache credentials in, to be used for uploading. Something like:
-
-{code:xml}
-<?xml version="1.0" encoding="UTF-8"?>
-<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0">
- <servers>
- <server>
- <!-- used for uploading to nexus staging repository and svn commit
-->
- <id>apache-id</id>
- <username>apache-userid</username>
- <password>apache-passwd</password>
- </server>
- <server>
- <!-- used for signing the releases -->
- <id>poi-signing</id>
- <username>keyid (key fingerprint, no spaces)</username>
- <passphrase>password</passphrase>
- <privateKey>../.gnupg/secring.gpg</privateKey>
- </server>
- </servers>
-</settings>
-{code}
-
- 6e. It's a good idea to check at https://ci-builds.apache.org/job/POI/
+ 6c. It's a good idea to check at https://ci-builds.apache.org/job/POI/
that Jenkins is in a good state (i.e. most recent build passed
and is up to date with SVN). You probably also want to e-mail
the dev list with a note to say you're building a release.
@@ -111,45 +84,61 @@ svn pd 'svn:executable' $(find -name .sv
Dist is a regular svn repo that can be checked out and committed to.
To upload to dist: https://www.apache.org/dev/release-distribution
+You can use these commands to do a sparse checkout of dist.apache.org.
+There are so many files from all the Apache projects that it is not
recommended to do a full checkout.
+
+{code:sh}
+svn checkout https://dist.apache.org/repos/dist/ --depth immediates
+svn update --set-depth infinity dist/dev/poi/
+svn update --set-depth infinity dist/release/poi/
+{code}
+
-(II) Making release artefacts
- This is mostly automated with a sequence of 3 release-prep ant targets.
+(II) Making release artifacts
Run these commands from a clean checkout of
https://svn.apache.org/repos/asf/poi/trunk
- 1. The following command will update the documentation and create/download
the tag (needs a Java7+ environment)
- using your Apache credentials stored in ~/.m2/settings.xml.
- {code:sh}
- ant -Dversion.id=FIXME3.15 release-prep1
- {code}
-
- 2. Compile the dist (needs a JDK8 environment, sudo update-alternatives
--config java)
- {code:sh}
- ant release-prep2
- {code}
-
- 3. Upload to the nexus repo and to the svn release candidate repo (needs a
Java7+ environment)
- The nexus repo is located at https://repository.apache.org/
- The release candidate repo is located at
https://dist.apache.org/repos/dist/dev/poi/(4.0.0-RC1)
- {code:sh}
- ant -Dversion.id=FIXME3.15 -Drelease.rc=RC1 release-prep3
- {code}
-
- 4. Summarise key changes, and any backwards incompatible ones,
- in the partially auto-generated
./build/release/build/dist/RELEASE-NOTES.txt
- which needs to be committed separately
-
- 5. validate signatures
-
-Check your signed files
-
-{code:sh}
-find . -name "*.md5" -type f -execdir md5sum -c {} \;
-find . -name "*.sha1" -type f -execdir sha1sum -c {} \;
-find . -name "*.sha256" -type f -execdir sha256sum -c {} \;
+ 1. Update the version number in these files and commit the changes to svn.
+ - build.xml (version.id)
+ - build.gradle
+ - osgi/pom.xml (version and poi.version)
+
+ 2. Force a new build at https://ci-builds.apache.org/job/POI/job/POI-DSL-1.8
+ - when build completes, download the built jars from
+
https://ci-builds.apache.org/job/POI/job/POI-DSL-1.8/lastSuccessfulBuild/artifact/
+
+ 3. To produce the source distributions, run
+ - ./gradlew distSrcZip
+ - ./gradlew distSrcTar
+
+ 4. Copy the build/dist files to your svn checkout of dist.apache.org
(dist/dev/poi/src)
+
+ 5. Generate SHA512 checksums
+
+{code:sh}
+for f in *.zip *.tgz
+do
+ sha512sum $f > $f.sha512
+done
+{code}
+
+ 6. Generate signatures
+ - The 1556F3A4 key in the command below is just an example, replace the
value with your own key id
+
+{code:sh}
+for f in *.zip *.tgz; do gpg --default-key 1556F3A4 -ab $f; done
+{code}
+
+ 7. Validate the checksums and signatures
+
+{code:sh}
find . -name "*.sha512" -type f -execdir sha512sum -c {} \;
find . -name "*.asc" -exec gpg --no-secmem-warning --verify {} \;
{code}
+ 8. Deploy the source distribution files to the dev area of dist.apache.org
+ - Remove any old release candidates (only need to keep the latest one)
+ - svn commit the changes
+
(III) Calling the vote:
1. The release manager should call the vote
@@ -164,25 +153,6 @@ Deploy the artifacts from the staging ar
to the release area of the dist repo:
https://dist.apache.org/repos/dist/release/poi/release/
-Perform a sparse checkout of the dist repo to move artifacts in the staging
area to the release area
-In the following example, replace FIXME3.16-RC1 or FIXME3.16 with the version
you are releasing
-
-{code:sh}
-svn checkout https://dist.apache.org/repos/dist/ --depth immediates
-svn update --set-depth immediates dist/dev/poi/
-svn update --set-depth infinity dist/dev/poi/FIXME3.16-RC1/
-svn update --set-depth infinity dist/release/poi/
-svn rm dist/release/poi/release/src/* dist/release/poi/release/bin/*
dist/release/poi/release/maven/
-svn mv dist/dev/poi/FIXME3.16-RC1/poi-src-* dist/release/poi/release/src/
-svn mv dist/dev/poi/FIXME3.16-RC1/maven/ dist/release/poi/release/
-svn mv dist/dev/poi/FIXME3.16-RC1/RELEASE-NOTES.txt
dist/release/poi/dev/RELEASE-NOTES-FIXME3.16.txt
-# regular (non-svn) copy so that these text files retain their revision history
-cp dist/release/poi/dev/RELEASE-NOTES-FIXME3.16.txt
dist/release/poi/release/RELEASE-NOTES.txt
-cp dist/dev/poi/KEYS dist/release/poi/KEYS
-svn ci dist/ -m "deploy 3.16 release artifacts from staging area"
-{code}
-
-
And remove any old releases from the staging area if they exist (should have
been deleted by Step 11)
Staging area: https://dist.apache.org/repos/dist/dev/poi/
@@ -215,7 +185,7 @@ mvn archetype:create -DgroupId=org.apach
cd maven-test
{code}
-edit pom.xml and add the release artefacts to the project dependencies:
+edit pom.xml and add the release artifacts to the project dependencies:
{code:xml}
<dependency>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]