Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Marmotta Wiki" for 
change notification.

The "ReleaseProcess" page has been changed by JakobFrank:
https://wiki.apache.org/marmotta/ReleaseProcess?action=diff&rev1=13&rev2=14

Comment:
Some updates and clarifications on the release process

  This document provides a more detailed explanation of the steps involved in 
releasing Apache Marmotta and what happens when they are performed.
  
  <<TableOfContents()>>
- 
- = People =
- 
- Sebastian Schaffert is the release manager for Apache Marmotta.
  
  = Prerequisites =
   * you need a PGP/GPG key
@@ -21, +17 @@

  
  The whole release process is completely based on Maven and the "Maven Release 
Plugin", i.e. I added all the necessary steps to a Maven profile that can be 
used to run the release. Note however that this does not release you from the 
burden of doing manual checking of the result afterwards!
  
+ The release in the following guide is {{{3.0.0-incubating}}}, so you have to 
replace that value in all commands with the actual version number!
  
- = 1. Check that system builds, carry out some automatic license checking =
+ = Check that system builds, carry out some automatic license checking =
  
  Start with the latest snapshot build. Make sure your local GIT repository is 
committed and in sync with the remote repository.
  
- == 1a. Clean build ==
+ == Clean build ==
  
  Run:
  
@@ -39, +36 @@

  later phase you might need to meddle with GIT, clean up repositories, or
  worse.
  
- == 1b. RAT Checking ==
+ == RAT Checking ==
  
  Do: 
  
@@ -55, +52 @@

  
  This will check if all files have appropriate license headers, except those 
that have explicitly been included in the parent POM. If a file is excluded in 
the parent POM, add a comment why this is done, so others can later see the 
reasons. If the check fails, fix the affected source files, and start over 
(don't forget to GIT commit and push).
  
- = 2. Prepare the Release =
+ = Prepare the Release =
  
  The Maven Release Plugin basically has two phases: preparation and the actual 
release. The prepare phase will
   * update all your POM files to the release version number (e.g. 
3.0.0-incubating)
@@ -84, +81 @@

  mvn release:prepare -DreleaseVersion=3.0.0-incubating 
-DdevelopmentVersion=3.1.0-incubating-SNAPSHOT
  }}}
  
- = 3. Perform the Release =
+ = Perform the Release =
  
  The second step of the Maven Release Plugin is actually performing the
  release. No dry-run is possible here, so failure is bad. Make sure you have
@@ -114, +111 @@

  
  Already quite cool, but a few manual steps are still remaining to finish the 
release.
  
- = 4. Upload Distribution Assemblies =
+ = Upload Distribution Assemblies =
  
  First of all, check the distribution files in 
target/checkout/target/3.0.0-incubating, especially regarding license files, 
readme, and installability.
  
@@ -146, +143 @@

  
  This will upload the release artifacts to the subversion server.
  
- = 5. Close Staging Repository =
+ = Close Staging Repository =
  
  The Maven artifacts are uploaded to a "staging" repository on the ASF Maven
  Nexus. Staging repositories are separate spaces meant for checking releases
  before really distributing them. To be able to access this staging
- repository, it first needs to be closed, so
+ repository, it first needs to be '''closed''', so
   * go to https://repository.apache.org and log in with your Apache ID
   * select "Staging Repositories" on the left, it should display the Marmotta 
Staging Repository
   * check the Marmotta repository (checkbox) and click on "Close" in the menu 
above; provide a sensible commit message!
  
- Closing the repository will carry out some simple consistency and error 
checks, specifically it will check GPG signatures.
+ Closing the repository will carry out some simple consistency and error 
checks, specifically it will check GPG signatures. You will receive an email 
once all checks have passed.
  
  While in Nexus, remember the URL of the staging repository by clicking on its 
name. You will need it later (in my current case this is 
https://repository.apache.org/content/repositories/orgapachemarmotta-013/)
  
- = 6. Push Local GIT to Upstream =
+ = Push Local GIT to Upstream =
  
  Changes have been performed in your local GIT repository, but since we
  disabled this feature for security reasons, they are not automatically
@@ -171, +168 @@

  }}}
  
  
- = 7. Send VOTE E-Mail =
+ = Send VOTE E-Mail =
  
  The final step in the release process is to send out the VOTE E-Mail to the
  Marmotta Developer mailinglist. A template for this mail has been prepared
@@ -190, +187 @@

  on the incubator general mailinglist, so the whole process will be 144
  hours (or 6 days).
  
- = 8a. Revert the release (if vote fails) =
+ = After the VOTE =
+ == VOTE failed: Try again ==
  
- In case the vote fails, the release would need to be reverted:
+ In case the vote fails, clean up, fix the errors and create a new release 
candidate (RC)
  
-  * Revert to the previous version:
- 
- {{{
- mvn --batch-mode release:update-versions 
-DdevelopmentVersion=3.0.0-incubating-SNAPSHOT -DautoVersionSubmodules=true
- }}}
- 
-  * Remove the tag
- 
- {{{
+  * Clean up:
+    * '''Drop''' staging repository
+    * Clean dist-server
+      {{{
+ svn rm https://dist.apache.org/repos/dist/dev/marmotta/3.0.0-incubating
+      }}}
+  * Fix the errors:
+    * create a branch starting from the {{{3.0.0-incubating}}} tag
+      {{{
+ git checkout -b release-3.0.0-incubating 3.0.0-incubating
+      }}}
+    * do whatever fixes you need to do and commit them
+      {{{
+ edit ...
+ git add ...
+ git commit -m 'fixing foo for the 3.0.0-incubating release'
+      }}}
+  * update the release tag
+      {{{
- git tag -d 3.0.0-incubating
+ git tag -f 3.0.0-incubating
- git push origin :refs/tags/3.0.0-incubating
- }}}
+      }}}
+  * restart the next iteration with [[#APerform_the_Release|Perform the 
Release]]
  
- = 8b. Announce the release (if vote passes) =
+ == VOTE passes: Announce the release ==
  
  If the vote passes, the first thing is to prepare the 
[[http://www.apache.org/dev/release-publishing.html#distribution|distribution]]:
  
   * Move the distribution files to the the release subversion; this will 
mirror the files to the different locations around the world
+    {{{
+ svn move https://dist.apache.org/repos/dist/dev/marmotta/3.0.0-incubating 
https://dist.apache.org/repos/release/dev/marmotta/
+    }}}
-  * Release the staging repository in Nexus; that moves the artifacts to the 
releases repository, which is synchronized with maven central 
+  * '''Release''' the staging repository in Nexus; that moves the artifacts to 
the releases repository, which is synchronized with maven central 
  
  This process usually takes 24 hours. After that the release can be announced 
:-)
  

Reply via email to