hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From st...@apache.org
Subject svn commit: r1399109 - /hbase/trunk/src/docbkx/developer.xml
Date Wed, 17 Oct 2012 06:34:33 GMT
Author: stack
Date: Wed Oct 17 06:34:33 2012
New Revision: 1399109

URL: http://svn.apache.org/viewvc?rev=1399109&view=rev
Log:
Some more detail on publishing artifacts to maven repo (for Lars)

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=1399109&r1=1399108&r2=1399109&view=diff
==============================================================================
--- hbase/trunk/src/docbkx/developer.xml (original)
+++ hbase/trunk/src/docbkx/developer.xml Wed Oct 17 06:34:33 2012
@@ -36,18 +36,18 @@
       <section xml:id="svn">
         <title>SVN</title>
         <programlisting>
-svn co http://svn.apache.org/repos/asf/hbase/trunk hbase-core-trunk 
+svn co http://svn.apache.org/repos/asf/hbase/trunk hbase-core-trunk
         </programlisting>
-      </section>         
+      </section>
       <section xml:id="git">
         <title>Git</title>
         <programlisting>
 git clone git://git.apache.org/hbase.git
         </programlisting>
-      </section>         
-    </section>    
-             
-    <section xml:id="ides"> 
+      </section>
+    </section>
+
+    <section xml:id="ides">
         <title>IDEs</title>
         <section xml:id="eclipse">
           <title>Eclipse</title>
@@ -73,12 +73,12 @@ git clone git://git.apache.org/hbase.git
 </para>
             <para>In addition to the automatic formatting, make sure you follow the
style guidelines explained in <xref linkend="common.patch.feedback"/></para>
             <para>Also, no @author tags - that's a rule.  Quality Javadoc comments
are appreciated.  And include the Apache license.</para>
-            </section>         
+            </section>
             <section xml:id="eclipse.svn">
             <title>Subversive Plugin</title>
             <para>Download and install the Subversive plugin.</para>
             <para>Set up an SVN Repository target from <xref linkend="svn"/>,
then check out the code.</para>
-            </section>         
+            </section>
             <section xml:id="eclipse.git.plugin">
             <title>Git Plugin</title>
             <para>If you cloned the project via git, download and install the Git plugin
(EGit). Attach to your local git repo (via the Git Repositories window) and you'll be able
to see file revision history, generate patches, etc.</para>
@@ -91,54 +91,54 @@ git clone git://git.apache.org/hbase.git
             Remove <filename>target</filename> folder, add <filename>target/generated-jamon</filename>
             and <filename>target/generated-sources/java</filename> folders. You
may also remove from your Build Path
             the exclusions on the <filename>src/main/resources</filename> and
<filename>src/test/resources</filename>
-            to avoid error message in the console 'Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run
(default) on project hbase: 
+            to avoid error message in the console 'Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run
(default) on project hbase:
             'An Ant BuildException has occured: Replace: source file .../target/classes/hbase-default.xml
doesn't exist'. This will also
             reduce the eclipse build cycles and make your life easier when developing.</para>
             </section>
             <section xml:id="eclipse.commandline">
             <title>Import into eclipse with the command line</title>
-            <para>For those not inclined to use m2eclipse, you can generate the Eclipse
files from the command line. First, run (you should only have to do this once): 
+            <para>For those not inclined to use m2eclipse, you can generate the Eclipse
files from the command line. First, run (you should only have to do this once):
             <programlisting>mvn clean install -DskipTests</programlisting>
             and then close Eclipse and execute...
             <programlisting>mvn eclipse:eclipse</programlisting>
-            ... from your local HBase project directory in your workspace to generate some
new <filename>.project</filename> 
+            ... from your local HBase project directory in your workspace to generate some
new <filename>.project</filename>
             and <filename>.classpath</filename>files.  Then reopen Eclipse, or
refresh your eclipse project (F5), and import
             the .project file in the HBase directory to a workspace.
             </para>
             </section>
             <section xml:id="eclipse.maven.class">
             <title>Maven Classpath Variable</title>
-            <para>The <varname>M2_REPO</varname> classpath variable needs
to be set up for the project.  This needs to be set to 
+            <para>The <varname>M2_REPO</varname> classpath variable needs
to be set up for the project.  This needs to be set to
             your local Maven repository, which is usually <filename>~/.m2/repository</filename></para>
             If this classpath variable is not configured, you will see compile errors in
Eclipse like this...
             <programlisting>
 Description	Resource	Path	Location	Type
-The project cannot be built until build path errors are resolved	hbase		Unknown	Java Problem

+The project cannot be built until build path errors are resolved	hbase		Unknown	Java Problem
 Unbound classpath variable: 'M2_REPO/asm/asm/3.1/asm-3.1.jar' in project 'hbase'	hbase		Build
path	Build Path Problem
-Unbound classpath variable: 'M2_REPO/com/github/stephenc/high-scale-lib/high-scale-lib/1.1.1/high-scale-lib-1.1.1.jar'
in project 'hbase'	hbase		Build path	Build Path Problem 
+Unbound classpath variable: 'M2_REPO/com/github/stephenc/high-scale-lib/high-scale-lib/1.1.1/high-scale-lib-1.1.1.jar'
in project 'hbase'	hbase		Build path	Build Path Problem
 Unbound classpath variable: 'M2_REPO/com/google/guava/guava/r09/guava-r09.jar' in project
'hbase'	hbase		Build path	Build Path Problem
 Unbound classpath variable: 'M2_REPO/com/google/protobuf/protobuf-java/2.3.0/protobuf-java-2.3.0.jar'
in project 'hbase'	hbase		Build path	Build Path Problem Unbound classpath variable:
-            </programlisting>            
+            </programlisting>
             </section>
             <section xml:id="eclipse.issues">
             <title>Eclipse Known Issues</title>
             <para>Eclipse will currently complain about <filename>Bytes.java</filename>.
 It is not possible to turn these errors off.</para>
-            <programlisting>            
+            <programlisting>
 Description	Resource	Path	Location	Type
 Access restriction: The method arrayBaseOffset(Class) from the type Unsafe is not accessible
due to restriction on required library /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar
Bytes.java	/hbase/src/main/java/org/apache/hadoop/hbase/util	line 1061	Java Problem
 Access restriction: The method arrayIndexScale(Class) from the type Unsafe is not accessible
due to restriction on required library /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar
Bytes.java	/hbase/src/main/java/org/apache/hadoop/hbase/util	line 1064	Java Problem
 Access restriction: The method getLong(Object, long) from the type Unsafe is not accessible
due to restriction on required library /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar
Bytes.java	/hbase/src/main/java/org/apache/hadoop/hbase/util	line 1111	Java Problem
-             </programlisting>   
+             </programlisting>
              </section>
              <section xml:id="eclipse.more">
              <title>Eclipse - More Information</title>
-             <para>For additional information on setting up Eclipse for HBase development
on Windows, see 
+             <para>For additional information on setting up Eclipse for HBase development
on Windows, see
              <link xlink:href="http://michaelmorello.blogspot.com/2011/09/hbase-subversion-eclipse-windows.html">Michael
Morello's blog</link> on the topic.
              </para>
              </section>
         </section>
-    </section> 
-    
+    </section>
+
         <section xml:id="build">
        <title>Building HBase</title>
       <section xml:id="build.basic">
@@ -151,7 +151,7 @@ mvn package -DskipTests
        <programlisting>
 mvn clean package -DskipTests
        </programlisting>
-       With Eclipse set up as explained above in <xref linkend="eclipse"/>, you can
also simply use the build command in Eclipse. To create the full installable HBase package
takes a little bit more work, so read on. 
+       With Eclipse set up as explained above in <xref linkend="eclipse"/>, you can
also simply use the build command in Eclipse. To create the full installable HBase package
takes a little bit more work, so read on.
        </para>
       </section>
       <section xml:id="build.snappy">
@@ -170,7 +170,7 @@ mvn clean package -DskipTests
 
 
       <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.  
+			<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>
@@ -179,28 +179,32 @@ mvn clean package -DskipTests
         <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> after
-        reading the below.
+        reading the below miscellaney.
         </para>
-        <para>You must use maven 3.0.x.
+        <para>You must use maven 3.0.x (Check by running <command>mvn -version</command>).
         </para>
         <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>
+  # First make a copy of the tag we want to release; presumes the release has been tagged
already
+  # We do this because we need to make some commits for the mvn release plugin to work.
   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 
+  # Edit the version making it release version with a '-SNAPSHOT' suffix (See below for more
on this)
+  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
+  866  # Answer questions and then ^C to kill the build after the last question. See below
for more on this.
+  867  vi release.properties
+       # Change the references to trunk svn to be 0.92.2mvn; the release plugin presumes
trunk
        # Then restart the release:prepare -- it won't ask questions
        # because the properties file exists.
   868  ~/bin/mvn/bin/mvn release:prepare
+  # The apache-release profile comes from the apache parent pom and does signing of artifacts
published
   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
@@ -208,10 +212,11 @@ mvn clean package -DskipTests
        # "Publishing Maven Artifacts.
         </programlisting>
         </para>
+        <para>Below is more detail on the commmands listed above.</para>
         <para>At the <command>mvn release:perform</command> step, before
starting, if you are for example
         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 that is a copy of the release rather than into the
actual release tag.
+        checkin into a copy of the release tag rather than into the actual release tag itself
(presumes the release has been properly tagged in svn).
         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.
@@ -219,16 +224,17 @@ mvn clean package -DskipTests
         <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.
+            then immediately control-C'ing the build after the last question asked as the
build release step starts to run.
+            After control-C'ing it, 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.
+            <command>release:perform</command>.
         </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.2: : 
+        <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:
: 
+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>
@@ -239,6 +245,10 @@ What is the new development version for 
         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>
 
         <para xml:id="mvn.settings.file">Here is my <filename>~/.m2/settings.xml</filename>.
+        This is read by the release plugin.  The apache-release profile will pick up your
+        gpg key setup from here if you've specified it into the file.  The password
+        can be maven encrypted as suggested in the "Publishing Maven Artifacts" but plain
+        text password works too (just don't let anyone see your local settings.xml).
         <programlisting>&lt;settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
@@ -324,7 +334,7 @@ What is the new development version for 
     <title>Tests</title>
 
 <para> Developers, at a minimum, should familiarize themselves with the unit test detail;
unit tests in
-HBase have a character not usually seen in other projects.</para> 
+HBase have a character not usually seen in other projects.</para>
 
 <section xml:id="hbase.moduletests">
 <title>HBase Modules</title>
@@ -349,7 +359,7 @@ given the dependency tree).</para>
   can specify to skip tests in multiple modules as well as just for a single module. For
example, to skip
   the tests in <classname>hbase-server</classname> and <classname>hbase-common</classname>,
you would run:
   <programlisting>mvn clean test -Dskip-server-tests -Dskip-common-tests</programlisting>
-  <para>Also, keep in mind that if you are running tests in the <classname>hbase-server</classname>
module you will need to 
+  <para>Also, keep in mind that if you are running tests in the <classname>hbase-server</classname>
module you will need to
   apply the maven profiles discussed in <xref linkend="hbase.unittests.cmds"/> to get
the tests to run properly.</para>
   </section>
 </section>
@@ -425,7 +435,7 @@ its unit test characterizations.
 (no fork) and then medium tests in a separate JVM for each test instance.
 Medium tests are NOT executed if there is an error in a small test.
 Large tests are NOT executed.  There is one report for small tests, and one report for
-medium tests if they are executed. 
+medium tests if they are executed.
 </para>
 </section>
 
@@ -510,14 +520,14 @@ second time, in a separate jvm and witho
 A custom Maven SureFire plugin listener checks a  number of resources before
 and after each HBase unit test runs and logs its findings at the end of the test
 output files which can be found in <filename>target/surefire-reports</filename>
-per Maven module (Tests write test reports named for the test class into this directory.
 
+per Maven module (Tests write test reports named for the test class into this directory.
 Check the <filename>*-out.txt</filename> files).  The resources counted are the
number
 of threads, the number of file descriptors, etc. If the number has increased, it adds
 a <emphasis>LEAK?</emphasis> comment in the logs. As you can have an HBase instance
 running in the background, some threads can be deleted/created without any specific
 action in the test. However, if the test does not work as expected, or if the test
 should not impact these resources, it's worth checking these log lines
-<computeroutput>...hbase.ResourceChecker(157): before...</computeroutput> and

+<computeroutput>...hbase.ResourceChecker(157): before...</computeroutput> and
 <computeroutput>...hbase.ResourceChecker(157): after...</computeroutput>. For
example:
 <computeroutput>
 2012-09-26 09:22:15,315 INFO  [pool-1-thread-1] hbase.ResourceChecker(157): after: regionserver.TestColumnSeeking#testReseeking
Thread=65 (was 65), OpenFileDescriptor=107 (was 107), MaxFileDescriptor=10240 (was 10240),
ConnectionCount=1 (was 1)
@@ -582,29 +592,29 @@ As most as possible, tests should use th
 </section>
 </section>
 </section> <!-- tests -->
-    
-    <section xml:id="maven.build.commands"> 
+
+    <section xml:id="maven.build.commands">
        <title>Maven Build Commands</title>
        <para>All commands executed from the local HBase project directory.
        </para>
        <para>Note: use Maven 3 (Maven 2 may work but we suggest you use Maven 3).
        </para>
-       <section xml:id="maven.build.commands.compile"> 
+       <section xml:id="maven.build.commands.compile">
           <title>Compile</title>
           <programlisting>
 mvn compile
           </programlisting>
-       </section>       
+       </section>
 
-       <section xml:id="maven.build.commands.unitall"> 
+       <section xml:id="maven.build.commands.unitall">
           <title>Running all or individual Unit Tests</title>
           <para>See the <xref linkend="hbase.unittests.cmds" /> section
           above in <xref linkend="hbase.unittests" /></para>
-       </section>       
+       </section>
 
-       <section xml:id="maven.build.hadoop"> 
+       <section xml:id="maven.build.hadoop">
           <title>Building against various hadoop versions.</title>
-          <para>As of 0.96, HBase supports building against hadoop versions: 1.0.3,
2.0.0-alpha and 3.0.0-SNAPSHOT. 
+          <para>As of 0.96, HBase supports building against hadoop versions: 1.0.3,
2.0.0-alpha and 3.0.0-SNAPSHOT.
           By default, we will build with Hadoop-1.0.3. To change the version to run with
Hadoop-2.0.0-alpha, you would run:</para>
          <programlisting>mvn -Dhadoop.profile=2.0 ...</programlisting>
          <para>
@@ -620,8 +630,8 @@ mvn compile
           <programlisting>mvn -Dhadoop.profile=22 ...</programlisting>
       </section>
     </section>
-  
-    <section xml:id="getting.involved"> 
+
+    <section xml:id="getting.involved">
         <title>Getting Involved</title>
         <para>HBase gets better only when people contribute!
         </para>
@@ -629,16 +639,16 @@ mvn compile
         </para>
         <section xml:id="mailing.list">
           <title>Mailing Lists</title>
-          <para>Sign up for the dev-list and the user-list.  See the 
+          <para>Sign up for the dev-list and the user-list.  See the
           <link xlink:href="http://hbase.apache.org/mail-lists.html">mailing lists</link>
page.
-          Posing questions - and helping to answer other people's questions - is encouraged!
 
-          There are varying levels of experience on both lists so patience and politeness
are encouraged (and please 
-          stay on topic.)  
+          Posing questions - and helping to answer other people's questions - is encouraged!
+          There are varying levels of experience on both lists so patience and politeness
are encouraged (and please
+          stay on topic.)
           </para>
         </section>
         <section xml:id="jira">
           <title>Jira</title>
-          <para>Check for existing issues in <link xlink:href="https://issues.apache.org/jira/browse/HBASE">Jira</link>.
 
+          <para>Check for existing issues in <link xlink:href="https://issues.apache.org/jira/browse/HBASE">Jira</link>.
           If it's either a new feature request, enhancement, or a bug, file a ticket.
           </para>
           <section xml:id="jira.priorities"><title>Jira Priorities</title>
@@ -648,10 +658,10 @@ mvn compile
                 <listitem>Critical: The issue described can cause data loss or cluster
instability in some cases.</listitem>
                 <listitem>Major: Important but not tragic issues, like updates to the
client API that will add a lot of much-needed functionality or significant
                 bugs that need to be fixed but that don't cause data loss.</listitem>
-                <listitem>Minor: Useful enhancements and annoying but not damaging
bugs.</listitem> 
-                <listitem>Trivial: Useful enhancements but generally cosmetic.</listitem>

-                </itemizedlist>  
-             </para> 
+                <listitem>Minor: Useful enhancements and annoying but not damaging
bugs.</listitem>
+                <listitem>Trivial: Useful enhancements but generally cosmetic.</listitem>
+                </itemizedlist>
+             </para>
         </section>
         <section xml:id="submitting.patches.jira.code">
           <title>Code Blocks in Jira Comments</title>
@@ -666,15 +676,15 @@ mvn compile
         </section>
        </section>  <!--  jira -->
       </section>  <!--  getting involved -->
-      
+
       <section xml:id="developing">
         <title>Developing</title>
         <section xml:id="codelines"><title>Codelines</title>
           <para>Most development is done on TRUNK.  However, there are branches for
minor releases (e.g., 0.90.1, 0.90.2, and 0.90.3 are on the 0.90 branch).</para>
           <para>If you have any questions on this just send an email to the dev dist-list.</para>
         </section>
-  
-        <section xml:id="unit.tests"> 
+
+        <section xml:id="unit.tests">
           <title>Unit Tests</title>
           <para>In HBase we use <link xlink:href="http://junit.org">JUnit</link>
4.
             If you need to run miniclusters of HDFS, ZooKeeper, HBase, or MapReduce testing,
@@ -697,7 +707,7 @@ mvn compile
               </programlisting>
            </para>
          </section>
-        </section>   <!--  unit tests  -->       
+        </section>   <!--  unit tests  -->
 
           <section xml:id="code.standards">
            <title>Code Standards</title>
@@ -711,7 +721,7 @@ mvn compile
            <para>If the <classname>InterfaceAudience</classname> is <varname>Private</varname>,
            we can change the class (and we do not need to include a <classname>InterfaceStability</classname>
mark).
            If a class is marked <varname>Public</varname> but its <classname>InterfaceStability</classname>
-           is marked <varname>Unstable</varname>, we can change it. If it's 
+           is marked <varname>Unstable</varname>, we can change it. If it's
            marked <varname>Public</varname>/<varname>Evolving</varname>,
we're allowed to change it
            but should try not to. If it's <varname>Public</varname> and <varname>Stable</varname>
            we can't change it without a deprecation path or with a really GREAT reason.</para>
@@ -765,7 +775,7 @@ mvn compile
           repository.  Patch files can also be easily generated from Eclipse, for example
by selecting "Team -&gt; Create Patch".
           Patches can also be created by git diff and svn diff.
           </para>
-          <para>Please submit one patch-file per Jira.  For example, if multiple files
are changed make sure the 
+          <para>Please submit one patch-file per Jira.  For example, if multiple files
are changed make sure the
           selected resource when generating the patch is a directory.  Patch files can reflect
changes in multiple files. </para>
           <para>Make sure you review <xref linkend="eclipse.code.formatting"/>
for code style. </para>
           </section>
@@ -784,7 +794,7 @@ mvn compile
             <para>Also, see <xref linkend="mockito"/>.</para>
             <para>If you are creating a new unit test class, notice how other unit
test classes have classification/sizing
             annotations at the top and a static method on the end.  Be sure to include these
in any new unit test files
-            you generate.  See <xref linkend="hbase.tests" /> for more on how the annotations
work. 
+            you generate.  See <xref linkend="hbase.tests" /> for more on how the annotations
work.
             </para>
           </section>
           <section xml:id="submitting.patches.jira">
@@ -792,20 +802,20 @@ mvn compile
             <para>The patch should be attached to the associated Jira ticket "More
Actions -&gt; Attach Files".  Make sure you click the
             ASF license inclusion, otherwise the patch can't be considered for inclusion.
             </para>
-            <para>Once attached to the ticket, click "Submit Patch" and 
+            <para>Once attached to the ticket, click "Submit Patch" and
             the status of the ticket will change.  Committers will review submitted patches
for inclusion into the codebase.  Please
             understand that not every patch may get committed, and that feedback will likely
be provided on the patch.  Fear not, though,
             because the HBase community is helpful!
             </para>
          </section>
-          
+
         <section xml:id="common.patch.feedback">
             <title>Common Patch Feedback</title>
           <para>The following items are representative of common patch feedback. Your
patch process will go faster if these are
           taken into account <emphasis>before</emphasis> submission.
           </para>
           <para>
-          See the <link xlink:href="http://www.oracle.com/technetwork/java/codeconv-138413.html">Java
coding standards</link> 
+          See the <link xlink:href="http://www.oracle.com/technetwork/java/codeconv-138413.html">Java
coding standards</link>
           for more information on coding conventions in Java.
           </para>
           <section xml:id="common.patch.feedback.space.invaders">
@@ -814,7 +824,7 @@ mvn compile
 <programlisting>
 if ( foo.equals( bar ) ) {     // don't do this
 </programlisting>
-			... do this instead...        
+			... do this instead...
 <programlisting>
 if (foo.equals(bar)) {
 </programlisting>
@@ -823,9 +833,9 @@ if (foo.equals(bar)) {
 <programlisting>
 foo = barArray[ i ];     // don't do this
 </programlisting>
-			... do this instead...        
+			... do this instead...
 <programlisting>
-foo = barArray[i];   
+foo = barArray[i];
 </programlisting>
           </para>
           </section>
@@ -836,7 +846,7 @@ foo = barArray[i];   
  public void readFields(DataInput arg0) throws IOException {    // don't do this
    foo = arg0.readUTF();                                       // don't do this
 </programlisting>
-			... do this instead ...        
+			... do this instead ...
 <programlisting>
  public void readFields(DataInput di) throws IOException {
    foo = di.readUTF();
@@ -851,10 +861,10 @@ foo = barArray[i];   
 <programlisting>
 Bar bar = foo.veryLongMethodWithManyArguments(argument1, argument2, argument3, argument4,
argument5, argument6, argument7, argument8, argument9);  // don't do this
 </programlisting>
-			... do something like this instead ...        
+			... do something like this instead ...
 <programlisting>
 Bar bar = foo.veryLongMethodWithManyArguments(
- argument1, argument2, argument3,argument4, argument5, argument6, argument7, argument8, argument9);

+ argument1, argument2, argument3,argument4, argument5, argument6, argument7, argument8, argument9);
 </programlisting>
            </para>
           </section>
@@ -866,9 +876,9 @@ Bar bar = foo.veryLongMethodWithManyArgu
 Bar bar = foo.getBar();     &lt;--- imagine there's an extra space(s) after the semicolon
instead of a line break.
 </programlisting>
             Make sure there's a line-break after the end of your code, and also avoid lines
that have nothing
-            but whitespace. 
+            but whitespace.
             </para>
-         </section> 
+         </section>
           <section xml:id="common.patch.feedback.writable">
             <title>Implementing Writable</title>
             <para>Every class returned by RegionServers must implement <code>Writable</code>.
 If you
@@ -885,32 +895,32 @@ Bar bar = foo.getBar();     &lt;--- imag
             <para>Don't just leave the @param arguments the way your IDE generated
them.  Don't do this...
 <programlisting>
   /**
-   * 
+   *
    * @param bar             &lt;---- don't do this!!!!
    * @return                &lt;---- or this!!!!
    */
   public Foo getFoo(Bar bar);
-</programlisting> 
-            ... either add something descriptive to the @param and @return lines, or just
remove them. 
-            But the preference is to add something descriptive and useful.          
+</programlisting>
+            ... either add something descriptive to the @param and @return lines, or just
remove them.
+            But the preference is to add something descriptive and useful.
             </para>
           </section>
           <section xml:id="common.patch.feedback.onething">
             <title>One Thing At A Time, Folks</title>
             <para>If you submit a patch for one thing, don't do auto-reformatting or
unrelated reformatting of code on a completely
-            different area of code. 
+            different area of code.
             </para>
-            <para>Likewise, don't add unrelated cleanup or refactorings outside the
scope of your Jira. 
+            <para>Likewise, don't add unrelated cleanup or refactorings outside the
scope of your Jira.
             </para>
           </section>
           <section xml:id="common.patch.feedback.tests">
             <title>Ambigious Unit Tests</title>
-            <para>Make sure that you're clear about what you are testing in your unit
tests and why. 
+            <para>Make sure that you're clear about what you are testing in your unit
tests and why.
             </para>
           </section>
 
         </section>   <!--  patch feedback -->
- 
+
          <section xml:id="reviewboard">
             <title>ReviewBoard</title>
           <para>Larger patches should go through <link xlink:href="http://reviews.apache.org">ReviewBoard</link>.
@@ -918,7 +928,7 @@ Bar bar = foo.getBar();     &lt;--- imag
           <para>For more information on how to use ReviewBoard, see
            <link xlink:href="http://www.reviewboard.org/docs/manual/1.5/">the ReviewBoard
documentation</link>.
           </para>
-        </section> 
+        </section>
         <section xml:id="committing.patches">
           <title>Committing Patches</title>
           <para>
@@ -929,6 +939,6 @@ Bar bar = foo.getBar();     &lt;--- imag
         </section>
 
        </section>   <!--  submitting patches -->
-       
-    
+
+
     </chapter>



Mime
View raw message