Author: desruisseaux
Date: Thu May 19 04:32:47 2016
New Revision: 1744505
URL: http://svn.apache.org/viewvc?rev=1744505&view=rev
Log:
Update release instructions.
Modified:
sis/site/trunk/content/release-management-setup.mdtext
sis/site/trunk/content/release-management.mdtext
Modified: sis/site/trunk/content/release-management-setup.mdtext
URL:
http://svn.apache.org/viewvc/sis/site/trunk/content/release-management-setup.mdtext?rev=1744505&r1=1744504&r2=1744505&view=diff
==============================================================================
--- sis/site/trunk/content/release-management-setup.mdtext [UTF-8] (original)
+++ sis/site/trunk/content/release-management-setup.mdtext [UTF-8] Thu May 19
04:32:47 2016
@@ -37,14 +37,18 @@ However in the later case, all relative
├─ trunk
├─ branches
├─ tags
+ ├─ non-free
+ │ └─ sis-epsg
├─ distribution
├─ release-test
+ │ └─ maven
└─ site
Create the above directory structure as below:
:::bash
svn checkout https://svn.apache.org/repos/asf/sis/trunk
+ svn checkout https://svn.apache.org/repos/asf/sis/non-free
svn checkout https://svn.apache.org/repos/asf/sis/release-test
svn checkout https://svn.apache.org/repos/asf/sis/site/trunk site
svn checkout https://dist.apache.org/repos/dist/dev/sis distribution
Modified: sis/site/trunk/content/release-management.mdtext
URL:
http://svn.apache.org/viewvc/sis/site/trunk/content/release-management.mdtext?rev=1744505&r1=1744504&r2=1744505&view=diff
==============================================================================
--- sis/site/trunk/content/release-management.mdtext [UTF-8] (original)
+++ sis/site/trunk/content/release-management.mdtext [UTF-8] Thu May 19
04:32:47 2016
@@ -85,15 +85,15 @@ Java updates {#java-update}
While we need a JDK6 installation for the `bootclasspath` option, we do not
recommend to use it for generating
the binaries since JDK6 has reached its end of public updates (but not the end
of commercial support).
-We recommend to create the release with JDK8 instead. Make sure that the JDK
installation
-to be used for the release has been updated recently, since compilers may
receive critical bug fixes.
+We recommend to create the release with JDK7 instead (JDK8 `javadoc` tool
seems to have a bug that prevent its use with SIS).
+Make sure that the JDK installation to be used for the release has been
updated recently, since compilers may receive critical bug fixes.
For example the `javadoc` tool of older JDK versions was known to generate
HTML pages with a vulnerability in them.
-Prepare site and source code {#prepare-source}
-=================================================
+Prepare web site and source code {#prepare-source}
+=====================================================
Before to start the release process:
@@ -143,6 +143,24 @@ It will not yet be published on `http://
+Source code {#prepare-code}
+------------------------------
+
+Replace the `$OLD_VERSION` number by `$NEW_VERSION` in the following literals.
+Those changes need to be applied on the development branch and merged with all
other branches and trunk.
+
+ * `DOWNLOAD_URL` in
`application/sis-console/src/main/java/org/apache/sis/console/ResourcesDownloader.java`
file.
+
+Commit and merge to other branches and to trunk.
+
+ :::bash
+ svn commit --message "Set the EPSG geodetic dataset URL to its expected
location after release."
+ cd ../JDK7
+ svn merge ../JDK8
+ # Repeat the above commit and the merge commands for other branches until
the changes are merged to trunk.
+
+
+
Create branch and tag {#branch}
==================================
@@ -281,14 +299,11 @@ additional test worth to do before deplo
mvn clean install --define bootclasspath=$BOOTCLASSPATH
mvn org.apache.sis.core:sis-build-helper:$NEW_VERSION:dist --non-recursive
-If the above succeeded, deploy. We temporarily delete the Maven site
descriptors (`site.xml`)
-for preventing Maven to deploy them, since there is no apparent reason why
users would want to
-download site descriptors from a Maven repository.
+If the above succeeded, deploy:
:::bash
- find . -name "site.xml" -delete
+ chmod a-w target/distribution/*.zip
mvn deploy --activate-profiles apache-release --define
bootclasspath=$BOOTCLASSPATH
- svn revert . --recursive
@@ -328,6 +343,27 @@ the availability of this temporary repos
+Deploy non-free resources to Nexus {#maven-nonfree}
+------------------------------------------------------
+
+We deploy the non-free resources in a separated Nexus repository for allowing
deployment of those resources to Maven Central
+before deployment of the rest of Apache SIS. This allows to test that the URL
to those resources in Apache SIS are correct.
+
+Go to the directory that contains a checkout of
`https://svn.apache.org/repos/asf/sis/data/non-free/sis-epsg`.
+Replace occurrences of `<version>$OLD_VERSION</version>` by
`<version>$NEW_VERSION</version>` in the root `pom.xml`.
+Deploy:
+
+ :::bash
+ mvn deploy --activate-profiles apache-release --define
bootclasspath=$BOOTCLASSPATH
+
+In Nexus:
+
+ * Delete all `*-source-release.zip.*` files since they duplicate the
`*-source.zip.*` files.
+ * In the `sis-epsg-$NEW_VERSION.jar` file, verify that `META-INF/LICENSE`
contain the EPSG terms of use.
+ * Close the repository and take note of its URL.
+
+
+
Test the Nexus release artifacts {#nexus-text}
-------------------------------------------------
@@ -340,13 +376,26 @@ Usually, only the 3 last digits need to
:::bash
cd ../../release-test/maven
vim pom.xml
+ mvn compile
svn commit -m "Test project for SIS $NEW_VERSION-RC$RELEASE_CANDIDATE"
+Create a temporary directory where Apache SIS will write the EPSG dataset.
+
+ :::bash
+ mkdir target/SpatialMetadata
+ export SIS_DATA=`pwd`/target/SpatialMetadata
+
Clear the local Maven repository in order to force downloads from the Nexus
repository, then test.
This will also verify the checksums.
+ :::bash
rm -r ~/.m2/repository/org/apache/sis
mvn package --strict-checksums
+
+Verify that the EPSG dataset has been created, then cleanup:
+
+ :::bash
+ ll $SIS_DATA
mvn clean
@@ -361,13 +410,24 @@ and keeping the `diff` smaller on the SV
If JDK8 is *not* used, then omit the `cp` command below.
:::bash
+ cd $TAG_DIR
cp ../../JDK8/src/main/javadoc/stylesheet.css src/main/javadoc/
- mvn javadoc:aggregate --define bootclasspath=$BOOTCLASSPATH
+ mvn javadoc:aggregate
svn revert src/main/javadoc/stylesheet.css
cd target/site
zip -9 -r apache-sis-$NEW_VERSION-doc.zip apidocs
cd ../..
+Note: if Javadoc fails because of
[JDK-8061305](https://bugs.openjdk.java.net/browse/JDK-8061305) bug,
+a workaround is to temporarily copy the OpenGIS annotations into the
`sis-metadata` module
+(only the time needed for building the javadoc):
+
+ :::bash
+ mkdir core/sis-metadata/src/main/java/org/opengis
+ cd core/sis-metadata/src/main/java/org/opengis
+ ln -s <path to GeoAPI project>/geoapi/src/main/java/org/opengis/annotation
+ cd -
+
Initialize the distribution directory {#dist}
@@ -378,6 +438,7 @@ The `$RELEASE_CANDIDATE` variable shall
:::bash
cd ../../distribution
+ svn update
mkdir -p $NEW_VERSION/RC$RELEASE_CANDIDATE
svn add $NEW_VERSION
cd $NEW_VERSION/RC$RELEASE_CANDIDATE
@@ -411,21 +472,21 @@ Sign and commit {#sign}
Sign the source, javadoc and binary artifacts:
:::bash
- gpg --print-md SHA512 apache-sis-$NEW_VERSION-src.zip >
apache-sis-$NEW_VERSION-src.zip.sha
- gpg --print-md MD5 apache-sis-$NEW_VERSION-src.zip >
apache-sis-$NEW_VERSION-src.zip.md5
+ shasum --algorithm 512 apache-sis-$NEW_VERSION-src.zip >
apache-sis-$NEW_VERSION-src.zip.sha
+ md5sum apache-sis-$NEW_VERSION-src.zip >
apache-sis-$NEW_VERSION-src.zip.md5
gpg --use-agent --armor --detach-sign --default-key $SIGNING_KEY
apache-sis-$NEW_VERSION-doc.zip
- gpg --print-md SHA512 apache-sis-$NEW_VERSION-doc.zip >
apache-sis-$NEW_VERSION-doc.zip.sha
- gpg --print-md MD5 apache-sis-$NEW_VERSION-doc.zip >
apache-sis-$NEW_VERSION-doc.zip.md5
+ shasum --algorithm 512 apache-sis-$NEW_VERSION-doc.zip >
apache-sis-$NEW_VERSION-doc.zip.sha
+ md5sum apache-sis-$NEW_VERSION-doc.zip >
apache-sis-$NEW_VERSION-doc.zip.md5
gpg --use-agent --armor --detach-sign --default-key $SIGNING_KEY
apache-sis-$NEW_VERSION-bin.zip
- gpg --print-md SHA512 apache-sis-$NEW_VERSION-bin.zip >
apache-sis-$NEW_VERSION-bin.zip.sha
- gpg --print-md MD5 apache-sis-$NEW_VERSION-bin.zip >
apache-sis-$NEW_VERSION-bin.zip.md5
+ shasum --algorithm 512 apache-sis-$NEW_VERSION-bin.zip >
apache-sis-$NEW_VERSION-bin.zip.sha
+ md5sum apache-sis-$NEW_VERSION-bin.zip >
apache-sis-$NEW_VERSION-bin.zip.md5
Verify checksums and signatures:
:::bash
- find . -name "*.md5" -exec shasum --check '{}' \;
+ find . -name "*.md5" -exec md5sum --check '{}' \;
find . -name "*.sha" -exec shasum --check '{}' \;
find . -name "*.asc" -exec gpg --verify '{}' \;