You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by Apache Wiki <wi...@apache.org> on 2015/04/22 17:23:32 UTC

[Lucene-java Wiki] Update of "ReleaseTodo" by TimothyPotterLucidworks

Dear Wiki user,

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

The "ReleaseTodo" page has been changed by TimothyPotterLucidworks:
https://wiki.apache.org/lucene-java/ReleaseTodo?action=diff&rev1=183&rev2=184

Comment:
Added some clarifications in a few places found while doing the 5.1 release.

  
  = Prerequisites =
   1. (Optional) Edit your gnupg/gpg.conf file and add a default-key value with your Code Signing Key (as a HEX value) otherwise you may need to specify {{{-Dgpg.key=XXXXXX}}} later for signing.  Make sure it is your 4K-bit key and not a 1K-bit key (esp. for ASF old timers).  See http://www.apache.org/dev/release-signing.html for more information.
+  1. Make sure you put your GPGP key's fingerprint in the '''OpenPGP Public Key Primary Fingerprint''' field in your profile on https://id.apache.org
   1. You may need to setup people.apache.org as a known host for ssh if you haven't already.  This happens when you log in manually and follow the prompts.
  
  = Planning =
@@ -27, +28 @@

   1. Run {{{ant precommit}}} to run a bunch of sanity & quality checks, then fix any problems that are found.
   1. For the first release in a minor release series - i.e. X.Y.0 - create a minor release branch off the current major version branch, e.g. for minor release 4.2:
   {{{
- svn copy https://svn.apache.org/repos/asf/lucene/dev/branches/branch_4x \
+ svn copy https://svn.apache.org/repos/asf/lucene/dev/branches/branch_5x \
- https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_2 -m "Starting Lucene/Solr 4.2 branch."
+ https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_5_1 -m "Starting Lucene/Solr 5.1 branch."
  }}}
   1. Add a new version for the next release using the {{{addVersion.py}}} script. If it is a bugfix release, we will be adding the bugfix version, otherwise we will add the version to come after the release we are producing.
      * If a bugfix release, start on the release branch:
@@ -57, +58 @@

  = Release Workflow =
   1. Go to the JIRA "Manage Versions" Administration pages (https://issues.apache.org/jira/plugins/servlet/project-config/LUCENE/versions and https://issues.apache.org/jira/plugins/servlet/project-config/SOLR/versions) and add a new (unreleased) version for the next release on the trunk (for a major release) or branch (for a minor release).
   1. Check out the branch with: {{{svn co https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_X_Y}}}
-  1. Build the code and javadocs, and run the unit tests: ant clean javadocs test. Make sure that you are actually using the minimum compiler version supported for the release. For example, 4.x releases are on Java6 so make sure that you use Java6 for the release workflow.
+  1. Build the code and javadocs, and run the unit tests: ant clean javadocs test. Make sure that you are actually using the minimum compiler version supported for the release. For example, 5.x releases are on Java7 so make sure that you use Java7 for the release workflow.
   1. Examine the results. Did it build without errors? Were there Javadoc warnings? Did the tests succeed? Does the demo application work correctly? Does Test2BTerms pass?
   1. Remove {{{lucene/benchmark/{work,temp}/}}} if present
   1. Build as defined below in the "Building the Release Artifacts" section.
@@ -69, +70 @@

  If after the last day of the feature freeze phase no blocking issues are in JIRA with "Fix Version" X.Y then it's time to build the release artifacts.
  
   1. It is recommended to clean your Ivy cache by executing {{{rm -rf ~/.ivy2/cache}}} before building the artifacts. This ensures that all Ivy dependencies are freshly downloaded, so we emulate a user that never used the Lucene build system before (this step ensures downloadability of all artifacts).
-  1. Option 1: use {{{dev-tools/scripts/buildAndPushRelease.py}}} to build a release candidate, and optionally push the results to {{{people.apache.org}}}, and optionally run {{{dev-tools/scripts/smokeTestRelease.py}}} on it.  Run {{{buildAndPushRelease.py}}} with {{{ --help }}} to learn the available options.
+  1. Option 1 (recommended): use {{{dev-tools/scripts/buildAndPushRelease.py}}} to build a release candidate and stage the results locally. Run {{{buildAndPushRelease.py}}} with {{{ --help }}} to learn the available options. Here's an example of what was done for the 5.1 release:
+     a. Build the release candidate: {{{python3 -u dev-tools/scripts/buildAndPushRelease.py --push-local /tmp/releases/5.1 --rc-num 2 .}}}
+     a. Optionally, run the smoke test script against the local release candidate: {{{python3 -u dev-tools/scripts/smokeTestRelease.py /tmp/releases/5.1/lucene-solr-5.1.0-RC2-rev1672403}}}
+     a. Import the artifacts into SVN: {{{svn -m "Lucene/Solr 5.1.0 RC2" import /tmp/releases/5.1/lucene-solr-5.1.0-RC2-rev1672403 https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-5.1.0-RC2-rev1672403}}}
+     a. Don't delete these artifacts from your local workstation as you'll need to publish the maven subdirectories once the RC passes (see below).
   1. Option 2: manually build a release candidate:
      a. Verify that {{{svnversion}}} reports a single revision with no modified changes
      a. Remove {{{lucene/benchmark/{work,temp}/}}} if present
@@ -89, +94 @@

  
   1. There is a script in SVN to do automated checks on a release candidate, e.g.
  {{{
- python3.2 -u dev-tools/scripts/smokeTestRelease.py http://people.apache.org/~whoever/4.4.0rc8-rev5551212
+ python3 -u dev-tools/scripts/smokeTestRelease.py https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-5.1.0-RC2-rev1672403
+ }}}
+  1. If the smoke test passes against the staged artifacts, send an email to the dev mailing list announcing the release candidate. Here is a template you can use:
+ {{{
+ Please vote for the # release candidate for Lucene/Solr 5.1.0
+ 
+ The artifacts can be downloaded from:
+ https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-5.1.0-RC2-rev1672403/
+ 
+ You can run the smoke tester directly with this command:
+ python3 -u dev-tools/scripts/smokeTestRelease.py
+ https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-5.1.0-RC2-rev1672403/
+ 
+ Here's my +1 
+ SUCCESS! [0:43:35.208102]
+ }}}
+  1. If the key you used to sign the release candidate artifacts has not been signed by other Apache committers, then testers may see the following warning:
+ {{{
+  verify trust
+       GPG: gpg: WARNING: This key is not certified with a trusted signature!
  }}}
  
  = Publishing =
- Once [[http://www.apache.org/foundation/voting.html#ReleaseVotes|three PMC members have voted for a release]], it may be published.
+ Once [[http://www.apache.org/foundation/voting.html#ReleaseVotes|three PMC members have voted for a release]], it may be published. You should wait at least 72 hours, not including weekend days. For instance, if you announce the RC on Friday, give until end of day Tuesday or Wednesday morning for the vote.
  
+  1. Announce that the vote has passed on the dev mailing list
   1. Tag the release from the same revision from which the passing release candidate's was built:
   {{{
  svn copy -r1492800 https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_X_Y \
@@ -102, +127 @@

  }}}
  
   1. If this is a point release, copy the CHANGES.txt entry for this point release back to the trunk's CHANGES.txt. Remove any duplicate entries from trunk's CHANGES.txt (ie, each issue should appear only once, in the earliest point-release that contains the fix, on the assumption that all future releases also contain the fix).
+  1. Delete the maven artifacts from the staging repo (assuming you still have them locally); if you don't have the maven directories locally, you'll need to download them from subversion before deleting.
+  1. Move the new release artifacts to the releases repo:
+ {{{
+ svn move -m "Move Lucene RC2 to release repo." https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-5.1.0-RC2-rev1672403/lucene https://dist.apache.org/repos/dist/release/lucene/java/5.1.0
+ svn move -m "Move Solr RC2 to release repo." https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-5.1.0-RC2-rev1672403/solr https://dist.apache.org/repos/dist/release/lucene/solr/5.1.0
-  1. Add the new releases to svnpubsub:
-     a. Check out the Lucene PMC svnpubsub release area:
-     {{{
-        svn co --depth=immediates https://dist.apache.org/repos/dist/release/lucene/ lucene-dist
-        cd lucene-dist
-        svn update --depth=immediates java solr
  }}}
-     a. Make directories for the new release:
-     {{{
-        mkdir java/X.Y.Z
-        mkdir solr/X.Y.Z
- }}}
-     a. Copy the successfully voted RC to {{{java/X.Y.Z}}} and {{{solr/X.Y.Z}}}, excluding the {{{maven/}}} directories.
      a. Commit the release candidate. # this might take some time: ~ 2 beers
   1. [[PublishMavenArtifacts|Publish Maven Artifacts]]
   1. Maven central should show the release after a short while, but you need to wait 24 hours to give the Apache mirrors a chance to copy the new release.  There is a script that will continually check the number and percentage of mirrors (and Maven Central) that have the release: {{{dev-tools/scripts/poll-mirrors.pl}}}.
@@ -177, +195 @@

   1. Once mirrors are ready, use the bookmarklet or whatever to do the minor changes and news blurbs and stuff.
      * The safest way is to svn checkout https://svn.apache.org/repos/asf/lucene/cms/trunk/ and use find/grep for the previous release, add entries, and then svn commit
        and look at the staging website (http://lucene.staging.apache.org). Javadocs wont work because they go directly to production (see above) but you can check everything else this way.
+     * Be sure to update the version in {{{content/latestversion.mdtext}}}
   1. Update the core & solr doap.rdf files to reflect the new versions using the Apache CMS
      * https://cms.apache.org/redirect?uri=http://lucene.apache.org/core/doap.rdf
      * https://cms.apache.org/redirect?uri=http://lucene.apache.org/solr/doap.rdf
@@ -186, +205 @@

  == Announce the release ==
  
  Release announcements can be shared/edited on the wiki at http://wiki.apache.org/lucene-java/ReleaseNoteXY(Z) and http://wiki.apache.org/solr/ReleaseNoteXY(Z)
+ 
+ For feature releases, your announcement should describe the main features included in the release; typically this is pulled from the wiki.
  
  Mails to the announce@apache.org list must be sent from an @apache.org email address and should contain a signature.