You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/10/02 13:24:02 UTC

[incubator-plc4x] branch master updated: Added some more documentation to the release process.

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git


The following commit(s) were added to refs/heads/master by this push:
     new 8352cac  Added some more documentation to the release process.
8352cac is described below

commit 8352cac0ba7b5ef4054619d90612b1cfa94bcd3a
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Tue Oct 2 15:23:59 2018 +0200

    Added some more documentation to the release process.
---
 src/site/asciidoc/developers/release.adoc | 91 ++++++++++++++++++++++---------
 1 file changed, 65 insertions(+), 26 deletions(-)

diff --git a/src/site/asciidoc/developers/release.adoc b/src/site/asciidoc/developers/release.adoc
index a6e4c4d..8c22bd1 100644
--- a/src/site/asciidoc/developers/release.adoc
+++ b/src/site/asciidoc/developers/release.adoc
@@ -75,7 +75,7 @@ Otherwise we would have to define the release and development version for each m
 In general the plugin will now ask you 3 questions:
 
 1. The version we want to release as (It will suggest the version you get by omitting the `-SNAPSHOT` suffix)
-2. The name of the tag the release commit will be tagged with in the SCM
+2. The name of the tag the release commit will be tagged with in the SCM (Name it `rel/{release-version}`
 3. The next development version (The version present in the pom after the release)
 
 That the plugin does, is:
@@ -92,6 +92,16 @@ That the plugin does, is:
 
 However this just prepared the repository for the release, we have to perform the release to get the release artifacts.
 
+== What if something goes wrong?
+
+If something goes wrong, you can always execute:
+
+   mvn release:rollback
+
+And it will change the versions back and commit and push things.
+
+However it will not delete the tag in GIT (locally and remotely). So you have to do that manually or use a different tag next time.
+
 === Performing a release
 
 This is done by executing another goal of the `maven-release-plugin`:
@@ -159,7 +169,7 @@ All of the four `*-source-relese.zip*` artifacts should be located in the direct
 
 So after committing these files to SVN you are ready to start the vote.
 
-== Starting a vote on the mailing list
+=== Starting a vote on the mailing list
 
 After staging the release candidate in the Apache SVN, it is time to actually call out the vote.
 
@@ -179,6 +189,9 @@ The following is the one used to do our first release:
    A minimum of 3 binding +1 votes and more binding +1 than binding -1
    are required to pass.
 
+   Release tag: rel/0.1.0
+   Hash for the release tag: 8c1e0c1b85ce15814f2c08e0eec5d593951d168d
+
    Per [3] "Before voting +1 [P]PMC members are required to download
    the signed source code package, compile it as provided, and test
    the resulting executable on their own platform, along with also
@@ -233,7 +246,7 @@ After the 72 hour minimum wait period is over and we have fulfilled the requirem
 
 ```
 
-== An extra step for incubator podlings
+=== An extra step for incubator podlings
 
 If the vote passes in the project, for a top-level project the formal process would be finished.
 
@@ -243,6 +256,7 @@ Now our mentors and any member of the Incubator PMC have the chance to review ou
 
 Only if this second vote passes, are we allowed to finally announce the release and release the artifacts.
 
+(The following template needs to be adjusted in several places for other releases):
 ```
     To:
 general@incubator.apache.org
@@ -299,50 +313,75 @@ Please vote accordingly:
 [ ] +0 no opinion
 [ ] -1 disapprove with the reason
 
-Best regards,
-Chris
+{your name here}
+Apache PLC4X
 ```
 
+As soon as the 72 hours period has passed and we got enough `+1` votes, we send a vote result email:
 
-== Releasing after a successful vote
+```
+    To:
+general@incubator.apache.org
 
-As soon as the votes are finished and the results were in favor of a release, the staged artifacts can be released.
+    E-Mail Topic:
+[VOTE] Release Apache PLC4X (Incubating) 0.1.0 [RC2]
 
-=== Releasing the Maven artifacts
+    Message:
+Hello all,
 
-The probably simplest part is releasing the Maven artifacts.
+The vote for releasing Apache PLC4X {version}-{RC-Number} (incubating) is closed, now.
 
-In order to do this, the release manager logs into Nexus at https://repository.apache.org/, selects the stagign repository and clicks on the `Release` button.
+Vote result:
+{number of binding +1} (+1 binding) ({List of apache ids for voters})
+{number of binding 0} (0 binding) ({List of apache ids for voters})
+{number of binding -1} (-1 binding) ({List of apache ids for voters})
 
-This will move all artifacts into the Apache release repository and delete the staging repository after that.
+number of non-binding +1} (+1 non-binding) ({List names of voters})
+number of non-binding 0} (0 non-binding) ({List names of voters})
+number of non-binding -1} (-1 non-binding) ({List names of voters})
 
-All release artifacts released to the Apache release repo, will automatically be synced to Maven central.
+Thank you everyone for taking the time to review the release and help us.
 
-=== Releasing the source bundle
+I will process to publish the release and send ANNOUNCE.
 
-// TODO ... finish this ...
+{your name here}
+Apache PLC4X
+```
 
-=== Notifying the world
+Also you need to add the release to the next board report for the incubator:
+https://wiki.apache.org/incubator/October2018
+(Please adjust the url to the current date)
 
-// TODO ... finish this ...
+=== Releasing after a successful vote
 
-== What if something goes wrong?
+As soon as the votes are finished and the results were in favor of a release, the staged artifacts can be released.
+This is done by moving them inside the Apache SVN.
 
-If something goes wrong, you can always execute:
+   svn move -m "Release Apache PLC4X (incubating) 0.1.0" \
+       https://dist.apache.org/repos/dist/dev/incubator/plc4x/0.1.0-incubating/rc2 \
+       https://dist.apache.org/repos/dist/release/incubator/plc4x/0.1.0-incubating
 
-   mvn release:rollback
+This will make the release artifacts available and will trigger them being copied to mirror sites.
 
-And it will change the versions back and commit and push things.
+This is also the reason why you should wait at least 24 hours before sending out the release notification emails.
 
-However it will not delete the tag in GIT (locally and remotely). So you have to do that manually or use a different tag next time.
+=== Releasing the Maven artifacts
 
-== Actually performing the release
+The probably simplest part is releasing the Maven artifacts.
 
-Up till now only a version in GIT has been produced. In order to actually release you have to execute:
+In order to do this, the release manager logs into Nexus at https://repository.apache.org/, selects the stagign repository and clicks on the `Release` button.
 
-   mvn release:perform
+This will move all artifacts into the Apache release repository and delete the staging repository after that.
 
-This will do a clean checkout of the tag we previously created into the roots `target` directory and do a full build with the `apache-release` profile activated.
-This will build and test the project, create the site, JavaDoc, build the source release artifacts (Which we will be voting on) and stage all maven artifacts in a staging repo of Apache's Nexus.
+All release artifacts released to the Apache release repo, will automatically be synced to Maven central.
 
+=== Updating Jira
 
+1. Set the released version to "released" and set the "release-date"
+2. Add the next version to the versions.
+
+=== Notifying the world
+
+Make sure you have given the Apache mirrors time to fetch the release files by waiting at least 24 hours after moving the release candidtate to the release part of the SVN.
+
+// TODO ... finish this ...