You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by GitBox <gi...@apache.org> on 2021/03/22 10:12:16 UTC
[GitHub] [james-project] jeantil commented on a change in pull request #337: [DOCUMENTATION] Better document THE release process
jeantil commented on a change in pull request #337:
URL: https://github.com/apache/james-project/pull/337#discussion_r598580437
##########
File path: docs/modules/community/pages/release.adoc
##########
@@ -15,3 +15,137 @@ Don't forget to add your key to https://downloads.apache.org/james/KEYS
$ ssh people.apache.org
$ cd /www/www.apache.org/dist/james
+
+== Release cheat sheet
+
+First, discuss your intention to perform a release on server-dev mailing list, to ensure a consensus would be reached
+before starting this time-consuming process.
+
+Then you can prepare the release materials:
+
+ * Ensure the `CHANGELOG.md` and `upgrade-instructions.md` files are up to date.
+ * Freeze your version in it and initiate a new iteration.
+ * Write a blog post within `/src/homepage/_post` about your release.
+ * Update the documentation website `/docs`, `src/site`, and `README.md` to point to your new release.
+ * Update the `/dockerfiles`
+
+Open a pull request to validate the changes.
+
+Once merged, it is time for the maven release.
+
+Set up your maven configuration in `~/.m2/settings.xml` :
+
+[source,bash]
+----
+<settings>
+ <servers>
+ <!-- To publish a snapshot of some part of Maven -->
+ <server>
+ <id>apache.snapshots.https</id>
+ <username>apacheId</username>
+ <password>xxxxxx</password>
+ </server>
+ <!-- To stage a release of some part of Maven -->
+ <server>
+ <id>apache.releases.https</id>
+ <username>apacheId</username>
+ <password>xxxxxxxx</password>
+ </server>
+ <server>
+ <id>svn.apache.org</id>
+ <username>apacheId</username>
+ <password>xxxxxx</password>
+ </server>
+
+ </servers>
+</settings>
+----
+
+Run these commands to perform a release, from the master branch:
+
+[source,bash]
+----
+mvn clean install -DskipTests -Djib.skip -Dmaven.javadoc.skip=true -T 4
+
+mvn deploy -DskipTests -Dskip.jib -Dmaven.javadoc.skip=true -T 8
+
+mvn release:clean
+
+mvn release:prepare -Darguments="-Dmaven.javadoc.skip=true -DskipTests -Dskip.jib" -DautoVersionSubmodules=true
+
+mvn release:perform -Darguments="-Dmaven.javadoc.skip=true -DskipTests -Dskip.jib" -DautoVersionSubmodules=true
+----
+
+Failure to react when being prompted for git or GPG credentials might abort the release.
Review comment:
GPG agent with a reasonable session time can be used to unlock the key before hand and reduce this risk
##########
File path: docs/modules/community/pages/release.adoc
##########
@@ -15,3 +15,137 @@ Don't forget to add your key to https://downloads.apache.org/james/KEYS
$ ssh people.apache.org
$ cd /www/www.apache.org/dist/james
+
+== Release cheat sheet
+
+First, discuss your intention to perform a release on server-dev mailing list, to ensure a consensus would be reached
+before starting this time-consuming process.
+
+Then you can prepare the release materials:
+
+ * Ensure the `CHANGELOG.md` and `upgrade-instructions.md` files are up to date.
+ * Freeze your version in it and initiate a new iteration.
+ * Write a blog post within `/src/homepage/_post` about your release.
+ * Update the documentation website `/docs`, `src/site`, and `README.md` to point to your new release.
+ * Update the `/dockerfiles`
+
+Open a pull request to validate the changes.
+
+Once merged, it is time for the maven release.
+
+Set up your maven configuration in `~/.m2/settings.xml` :
+
+[source,bash]
+----
+<settings>
+ <servers>
+ <!-- To publish a snapshot of some part of Maven -->
+ <server>
+ <id>apache.snapshots.https</id>
+ <username>apacheId</username>
+ <password>xxxxxx</password>
+ </server>
+ <!-- To stage a release of some part of Maven -->
+ <server>
+ <id>apache.releases.https</id>
+ <username>apacheId</username>
+ <password>xxxxxxxx</password>
+ </server>
+ <server>
+ <id>svn.apache.org</id>
+ <username>apacheId</username>
+ <password>xxxxxx</password>
+ </server>
+
+ </servers>
+</settings>
+----
+
+Run these commands to perform a release, from the master branch:
+
+[source,bash]
+----
+mvn clean install -DskipTests -Djib.skip -Dmaven.javadoc.skip=true -T 4
Review comment:
Ensure that HEAD has a clean build on CI ?
I realize that mvn release creates commits of its own to mess around with the version numbers in the pom files but I feel it would be cleaner to have a green build on ci as a basis since we skip tests in the release
##########
File path: docs/modules/community/pages/release.adoc
##########
@@ -15,3 +15,137 @@ Don't forget to add your key to https://downloads.apache.org/james/KEYS
$ ssh people.apache.org
$ cd /www/www.apache.org/dist/james
+
+== Release cheat sheet
+
+First, discuss your intention to perform a release on server-dev mailing list, to ensure a consensus would be reached
+before starting this time-consuming process.
+
+Then you can prepare the release materials:
+
+ * Ensure the `CHANGELOG.md` and `upgrade-instructions.md` files are up to date.
+ * Freeze your version in it and initiate a new iteration.
+ * Write a blog post within `/src/homepage/_post` about your release.
+ * Update the documentation website `/docs`, `src/site`, and `README.md` to point to your new release.
+ * Update the `/dockerfiles`
+
+Open a pull request to validate the changes.
+
+Once merged, it is time for the maven release.
+
+Set up your maven configuration in `~/.m2/settings.xml` :
+
+[source,bash]
+----
+<settings>
+ <servers>
+ <!-- To publish a snapshot of some part of Maven -->
Review comment:
> To publish a snapshot of some part of Maven
I think you meant james ... or did I misunderstand the comment
also do we need auth for snapshot publication ? I though this was automated on CI ...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org