You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2012/09/14 23:43:27 UTC

svn commit: r1384932 - /hbase/trunk/src/docbkx/developer.xml

Author: stack
Date: Fri Sep 14 21:43:26 2012
New Revision: 1384932

URL: http://svn.apache.org/viewvc?rev=1384932&view=rev
Log:
More edits to the publishing to maven repo section

Modified:
    hbase/trunk/src/docbkx/developer.xml

Modified: hbase/trunk/src/docbkx/developer.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/src/docbkx/developer.xml?rev=1384932&r1=1384931&r2=1384932&view=diff
==============================================================================
--- hbase/trunk/src/docbkx/developer.xml (original)
+++ hbase/trunk/src/docbkx/developer.xml Fri Sep 14 21:43:26 2012
@@ -153,35 +153,72 @@ mvn clean compile
 </para>
       </section>
 
+
+      <section xml:id="build.gotchas"><title>Build Gotchas</title>
+			<para>If you see <code>Unable to find resource 'VM_global_library.vm'</code>, ignore it.  
+			Its not an error.  It is <link xlink:href="http://jira.codehaus.org/browse/MSITE-286">officially ugly</link> though.
+           </para>
+      </section>
+    </section> <!--  build -->
       <section xml:id="mvn_repo">
         <title>Adding an HBase release to Apache's Maven Repository</title>
         <para>Follow the instructions at
-        <link xlink:href="http://www.apache.org/dev/publishing-maven-artifacts.html">Publishing Maven Artifacts</link>.
-            The 'trick' to making it all work is answering the questions put to you by the mvn release plugin properly,
-            making sure it is using the actual branch AND before doing the <command>mvn release:perform</command> step,
-            VERY IMPORTANT, check and if necessary hand edit the release.properties file that was put under <varname>${HBASE_HOME}</varname>
-            by the previous step, <command>release:perform</command>. You need to edit it to make it point at
-            right locations in SVN.
+        <link xlink:href="http://www.apache.org/dev/publishing-maven-artifacts.html">Publishing Maven Artifacts</link> after
+        reading the below.
+        </para>
+        <para>You must use maven 3.0.x.
         </para>
-        <para>Use maven 3.0.x.
+        <para>Let me list out the commands I used first.  The sections that follow dig in more
+        on what is going on.  In this example, we are releasing the 0.92.2 jar to the apache
+        maven repository.
+        <programlisting>
+  853  svn copy -m "Publishing 0.92.2 to mvn"  https://svn.apache.org/repos/asf/hbase/tags/0.92.2 https://svn.apache.org/repos/asf/hbase/tags/0.92.2mvn
+  857  svn checkout https://svn.apache.org/repos/asf/hbase/tags/0.92.2mvn
+  858  cd 0.92.2mvn/
+  860  vi pom.xml 
+  861  svn commit -m "Add SNAPSHOT to the version" pom.xml 
+  862  ~/bin/mvn/bin/mvn release:clean
+  863  ~/bin/mvn/bin/mvn release:perform
+  865  ~/bin/mvn/bin/mvn release:prepare
+  866  # Answer questions and then ^C to kill the build
+  867  vi release.properties 
+       # Change the references to trunk svn to be 0.92.2mvn
+       # Then restart the release:prepare -- it won't ask questions
+       # because the properties file exists.
+  868  ~/bin/mvn/bin/mvn release:prepare
+  869  ~/bin/mvn/bin/mvn release:perform  -Papache-release
+       # When done copying up to apache staging repository,
+       # browse to repository.apache.org, login and finish
+       # the release as according to the above
+       # "Publishing Maven Artifacts.
+        </programlisting>
         </para>
         <para>At the <command>mvn release:perform</command> step, before starting, if you are for example
-        releasing hbase 0.92.0, you need to make sure the pom.xml version is 0.92.0-SNAPSHOT.  This needs
+        releasing hbase 0.92.2, you need to make sure the pom.xml version is 0.92.2-SNAPSHOT.  This needs
         to be checked in.  Since we do the maven release after actual release, I've been doing this
-        checkin into a particular tag rather than into the actual release tag.  So, say we released
-        hbase 0.92.0 and now we want to do the release to the maven repository, in svn, the 0.92.0
-        release will be tagged 0.92.0.  Making the maven release, copy the 0.92.0 tag to 0.92.0mvn.
+        checkin into a particular tag that is a copy of the release rather than into the actual release tag.
+        So, say we released hbase 0.92.2 and now we want to do the release to the maven repository, in svn, the 0.92.2
+        release will be tagged 0.92.2.  Making the maven release, copy the 0.92.2 tag to 0.92.2mvn.
         Check out this tag and change the version therein and commit.
         </para>
-        <para>When you run <command>release:perform</command>, pass <command>-Papache-release</command>
-        else it will not 'sign' the artifacts it uploads.
+        <para>
+            Currently, the mvn release wants to go against trunk.  I haven't figured how to tell it to do otherwise
+            so I do the below hack.  The hack comprises answering the questions put to you by the mvn release plugin properly,
+            then immediately control-C'ing the build.  You'll notice a release.properties in your build dir.  Review it.
+            Make sure it is using the proper branch -- it tends to use trunk rather than the 0.92.2mvn or whatever
+            that you want it to use -- so hand edit the release.properties file that was put under <varname>${HBASE_HOME}</varname>
+            by the <command>release:perform</command> invocation.  When done, resstart the
+            <command>release:perform</command> invocation.
         </para>
         <para>Here is how I'd answer the questions at <command>release:prepare</command> time:
-        <programlisting>What is the release version for "HBase"? (org.apache.hbase:hbase) 0.92.0: : 
-What is SCM release tag or label for "HBase"? (org.apache.hbase:hbase) hbase-0.92.0: : 0.92.0mvn
-What is the new development version for "HBase"? (org.apache.hbase:hbase) 0.92.1-SNAPSHOT: : 
+        <programlisting>What is the release version for "HBase"? (org.apache.hbase:hbase) 0.92.2: : 
+What is SCM release tag or label for "HBase"? (org.apache.hbase:hbase) hbase-0.92.2: : 0.92.2mvn
+What is the new development version for "HBase"? (org.apache.hbase:hbase) 0.92.3-SNAPSHOT: : 
 [INFO] Transforming 'HBase'...</programlisting>
         </para>
+        <para>When you run <command>release:perform</command>, pass <command>-Papache-release</command>
+        else it will not 'sign' the artifacts it uploads.
+        </para>
         <para>A strange issue I ran into was the one where the upload into the apache
         repository was being sprayed across multiple apache machines making it so I could
         not release.  See <link xlink:href="https://issues.apache.org/jira/browse/INFRA-4482">INFRA-4482 Why is my upload to mvn spread across multiple repositories?</link>.</para>
@@ -225,7 +262,6 @@ What is the new development version for 
         </programlisting>
         </para>
 
-
         <para>If you see run into the below, its because you need to edit version in the pom.xml and add
         <code>-SNAPSHOT</code> to the version (and commit).
         <programlisting>[INFO] Scanning for projects...
@@ -248,13 +284,6 @@ What is the new development version for 
 [INFO] -----------------------------------------------------------------------</programlisting>
         </para>
       </section>
-
-      <section xml:id="build.gotchas"><title>Build Gotchas</title>
-			<para>If you see <code>Unable to find resource 'VM_global_library.vm'</code>, ignore it.  
-			Its not an error.  It is <link xlink:href="http://jira.codehaus.org/browse/MSITE-286">officially ugly</link> though.
-           </para>
-      </section>
-    </section> <!--  build -->
     <section xml:id="hbase.org">
     <title>Updating hbase.apache.org</title>
       <section xml:id="hbase.org.site.contributing">