sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1814904 - in /sis/site/trunk/content: release-management-setup.mdtext release-management.mdtext
Date Fri, 10 Nov 2017 18:56:42 GMT
Author: desruisseaux
Date: Fri Nov 10 18:56:42 2017
New Revision: 1814904

Update release instructions: abandon "mvn release" even in dry mode. Add instructions about
non-free modules and integration tests.


Modified: sis/site/trunk/content/release-management-setup.mdtext
--- sis/site/trunk/content/release-management-setup.mdtext [UTF-8] (original)
+++ sis/site/trunk/content/release-management-setup.mdtext [UTF-8] Fri Nov 10 18:56:42 2017
@@ -49,7 +49,7 @@ Create the above directory structure as
     svn checkout
-    svn checkout
+    svn checkout
     svn checkout
     svn checkout site
     svn checkout distribution

Modified: sis/site/trunk/content/release-management.mdtext
--- sis/site/trunk/content/release-management.mdtext [UTF-8] (original)
+++ sis/site/trunk/content/release-management.mdtext [UTF-8] Fri Nov 10 18:56:42 2017
@@ -72,6 +72,8 @@ in this page shall be adjusted according
     │  └─ $NEW_VERSION
     │     └─ target
     │        └─ distributions
+    ├─ non-free
+    │  └─ sis-epsg
     ├─ distribution
     │  └─ $NEW_VERSION
@@ -107,6 +109,7 @@ Before to start the release process:
 Documentation    {#prepare-documentation}
+We update JIRA and web site first because doing so is sometime a reminder of uncompleted
tasks in source code.
 Update [JIRA][JIRA] tasks and prepare release notes as below:
   * Ensure that the _Fix Version_ in issues resolved since the last release includes this
release version correctly.
@@ -185,7 +188,7 @@ but can be replaced by anything else), t
 We need to update the Subversion URL and SIS version numbers not only in the `pom.xml` files,
 but also in a few Java files. The following command performs the replacement using Ant.
 Note that this command does *not* yet remove the `-SNAPSHOT` suffix in version numbers
-(this will be done later):
+(this will be done later, at tag creation time):
     ant -buildfile core/sis-build-helper/src/main/ant/prepare-release.xml branch -Dbranch.version=$NEW_VERSION
@@ -194,44 +197,19 @@ Open the root `pom.xml` file in an edito
   * Remove the whole `<pluginRepositories>` block (including comment), since it should
not be needed for releases (and is actually not allowed).
-Remove the modules that are not yet ready for a release:
+Remove the modules that are not yet ready for a release.
+This may require removing `<module>` elements in the parent `pom.xml` file.
     svn remove storage/sis-shapefile
     svn remove application/sis-javafx
-Commit the changes on the branch:
+Validate with `svn diff`, ensure that the build is not broken (we will run the tests later),
+then commit the changes on the branch:
-    svn commit --message "Prepare the branch for the $NEW_VERSION release."
-Verify content    {#branch-verify}
-Starts the GPG agent if not already done.
-This is for avoiding to be prompted many time for the passphrase in every modules to be built
by Maven.
-    :::bash
-    eval $(gpg-agent --daemon)
-Try a dry run of the `release:prepare` goal. This goals checks for `SNAPSHOT` dependencies
in `pom.xml` files.
-It will not complete the prepare goal until all snapshot dependencies are resolved.
-If anything goes wrong, the directory can be cleaned by running the `release:clean` goal
-before to fix the problem and try again.
-    :::bash
-    mvn release:prepare --define releaseVersion=$NEW_VERSION --define tag=$NEW_VERSION --define
bootclasspath=$BOOTCLASSPATH \
-        --define autoVersionSubmodules=true --define updateWorkingCopyVersions=false --define
-The dry run will not commit any changes back to SVN. Instead, it will create `pom.xml.tag`
files containing
-the changes that would have been committed to SVN. We keep those files for verification purpose
in the next section.
-Verify signature for all files:
-    :::bash
-    find . -name "sis-*.asc" -exec gpg --verify '{}' \;
+    mvn install --define skipTests=true --define bootclasspath=$BOOTCLASSPATH
+    svn commit --message "Prepare branch for $NEW_VERSION release."
@@ -251,7 +229,7 @@ First, create the tag:
     svn copy$NEW_VERSION \
-             --message "Create the $NEW_VERSION tag for RC$RELEASE_CANDIDATE."
+             --message "Create $NEW_VERSION tag for RC$RELEASE_CANDIDATE."
@@ -267,23 +245,50 @@ plus some additional files:
     ant -buildfile core/sis-build-helper/src/main/ant/prepare-release.xml tag -Dbranch.version=$NEW_VERSION
-Compare with the modifications done by `mvn release:prepare`. The following command should
report no difference,
-ignoring the license or other information that may have been removed by the Maven plugin
-(this has been known to happen if the starting `<project>` tag is not on a single line).
+Validate with `svn diff`, search `SNAPSHOT` in the whole source directory in case we missed
some, then commit:
-    find . -name "pom.xml" -exec diff '{}' $BRANCH_DIR/'{}'.tag \;
+    svn commit --message "Fix version number to $NEW_VERSION (no -SNAPSHOT) and SVN directory."
+Verify content    {#branch-verify}
+Starts the GPG agent if not already done.
+This is for avoiding to be prompted many time for the passphrase in every modules to be built
by Maven.
+    :::bash
+    eval $(gpg-agent --daemon)
+Build the project with extensive tests enabled:
+    :::bash
+    mvn clean install --activate-profiles apache-release --define org.apache.sis.test.extensive=true
--define bootclasspath=$BOOTCLASSPATH
+Verify signature for all files:
+    :::bash
+    find . -name "sis-*.asc" -exec gpg --verify '{}' \;
+Build the `non-free` group of modules. Those modules will not be part of the distribution
(except on Maven),
+but we nevertheless need to ensure that they work. Before to test, verify that their version
numbers and their
+SIS dependencies are `$NEW_VERSION` without `-SNAPSHOT` suffix.
-    svn commit --message "Fix version number and SVN directory."
+    cd ../../non-free
+    svn update
+    mvn clean install --define bootclasspath=$BOOTCLASSPATH
-Clean the branch, since we will not need it anymore:
+Run the integration tests. The project version number in the `pom.xml` file must be set manually
to `$NEW_VERSION` first.
+Note that execution of those tests may be slow.
-    cd $BRANCH_DIR
-    mvn clean release:clean
+    cd ../release-test
+    svn update
+    cd maven
+    mvn clean test --define bootclasspath=$BOOTCLASSPATH

View raw message