You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/03/08 07:09:33 UTC
[isis] branch master updated: ISIS-2450: updates to release process
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new a39d21d ISIS-2450: updates to release process
a39d21d is described below
commit a39d21d10b6302e2cec6e272b29f78391c7028ac
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 8 07:09:14 2021 +0000
ISIS-2450: updates to release process
---
.../modules/ROOT/pages/cutting-a-release.adoc | 83 ++++++++++++++--------
1 file changed, 52 insertions(+), 31 deletions(-)
diff --git a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
index a8a74ed..d659ec8 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -211,35 +211,69 @@ cd ../isis-release
git push origin $ISISBRANCH -u
----
-* Finally switch to the `isis-parent` directory:
-+
-[source,bash,subs="attributes+"]
-----
-cd isis-parent
-----
=== Bump code to `$ISISREL`
Search through the `.java` files for `{page-isisprev}`, and change to `{page-isisrel}`.
+At the time of writing there are just a couple of files that have the release hard-coded.
+
+=== Switch to the `isis-parent` directory
+
+The remainder of the release process is performed from the context of the `isis-parent` directory:
+
+[source,bash,subs="attributes+"]
+----
+cd isis-parent
+----
+
=== Bump projects to `$ISISREL`
-We use `mvn versions:set` to manually bump the release version:
+We use `mvn versions:set` to manually bump the release version.
+(After release, there is a xref:comguide:ROOT:cutting-a-release.adoc#reset-revision-property[similar step at the end] to reset back to a `-SNAPSHOT` version).
+
+(Still in the `isis-parent` directory), the steps are:
+* First we bump the framework's `pom.xml` files:
++
[source,bash,subs="attributes+"]
----
mvn versions:set -DnewVersion=$ISISREL
-mvn install -o -DskipTests
+----
-pushd ../starters
+* next we build the framework so that these versioned `pom.xml` files are available for the next step:
++
+[source,bash,subs="attributes+"]
+----
+mvn install -o -DskipTests -Dreleased
+----
++
+[NOTE]
+====
+The `released` system property is set to only sanity check the modules actually to be released (ignores the incubator modules).
+
+Partly that's because there's no need to check the incubator modules, it's also because the incubator modules require Java 11 (Java 8 is used for everything else)
+====
+
+* next we also update the starters (as used by applications built using the framework):
++
+[source,bash,subs="attributes+"]
+----
+pushd starters
mvn versions:set -DnewVersion=$ISISREL
+mvn install -DskipTests -o
popd
+----
+
+* finally we commit the changes:
++
+[source,bash,subs="attributes+"]
+----
git add ..
git commit -m "$ISISJIRA: bumps version to $ISISREL"
----
-NOTE: After release, there is a xref:comguide:ROOT:cutting-a-release.adoc#reset-revision-property[similar step at the end] to reset back to `2.0.0-SNAPSHOT`.
=== Sanity check
@@ -250,16 +284,10 @@ Delete all Isis artifacts from your local Maven repo, then build using the `-o`
[source,bash,subs="attributes+"]
----
rm -rf ~/.m2/repository/org/apache/isis
-mvn clean install -o -Dreleased -P'!all'
+mvn clean install -o -Dreleased
+git clean -dfx
----
-[NOTE]
-====
-The `released` system property is set to only sanity check the modules actually to be released (ignores the incubator modules).
-
-Partly that's because there's no need to check the incubator modules, it's also because the incubator modules require Java 11 (Java 8 is used for everything else)
-====
-
=== Deploy
@@ -267,22 +295,16 @@ Since the `<version>` has already been updated, we just use `mvn deploy` to uplo
We activate the (inherited) `apache-release` profile to bring in the `gpg` plugin for code signing.
The build creates a zip of the directory, so before executing the release we remove any other files.
-Still in the `isis-parent` directory:
-[source,bash]
-----
-pushd ..
-git clean -dfx
-popd
-----
-
-To deploy (upload the artifacts), we use:
+Still in the `isis-parent` directory, we deploy (upload the artifacts) using:
[source,bash,subs="attributes+"]
----
+
mvn deploy \
-Dapache-release \
-Dgit
+popd
----
When prompted, enter your GPG passphrase.
@@ -351,13 +373,12 @@ See xref:comguide:ROOT:key-generation.adoc[Key Generation] for more details.
[#reset-revision-property]
=== Reset `revision` property
-At the beginning of the release process we bumped the version to the release version, ie `$ISISREL`.
+At the <<bump-code-to-isisrel,beginning>> of the release process we bumped the version to the release version, ie `$ISISREL`.
With the release now deployed we now need to reset the revision back down to the base snapshot, ie `2.0.0-SNAPSHOT`.
[NOTE]
====
-Previously we bumped to the next development snapshot.
-However, this approach doesn't play well with CI/CD when Apache Isis is mounted as a git submodule, so instead we always use `2.0.0-SNAPSHOT` for all development work.
+Bumping back to `2.0.0-SNAPSHOT` (rather than the next development snapshot) simplifies CI/CD scripts for teams that want to building Apache Isis from source using git submodules.
====
Therefore (still in the `isis-parent` directory):
@@ -365,7 +386,7 @@ Therefore (still in the `isis-parent` directory):
[source,bash,subs="attributes+"]
----
mvn versions:set -DnewVersion=2.0.0-SNAPSHOT
-mvn install -DskipTests -o -Dreleased -P'!all'
+mvn install -DskipTests -o -Dreleased
pushd ../starters
mvn versions:set -DnewVersion=2.0.0-SNAPSHOT