[ 
https://issues.apache.org/jira/browse/HBASE-4593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14089273#comment-14089273
 ] 

Sean Busbey commented on HBASE-4593:
------------------------------------

There are a few places in the rendered PDF where it looks like spacing is 
missing between plain text and formatted (e.g. links, monospace). It looks like 
there are spaces in the source patch though, so probably a rendering artifact?

What's the difference between section 18.1 and 18.10? they seem to be aimed at 
the same thing. If they're not, 18.1 should have a pointer to 18.10.

{quote}
+        <para> If you are looking to contribute to Apache HBase, look for 
issues in JIRA tagged with
+            the label 'beginner': <link
+                
xlink:href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20HBASE%20AND%20labels%20in%20(beginner)"
+                >project = HBASE AND labels in (beginner)</link>. These are 
issues HBase

{quote}

personally, I think using "issues in JIRA tagged with the label 'beginner'" as 
teh link text (instead of the jira query text) makes the section read clearer.

{quote}
+                <link xlink:href="http://git.apache.org/";>Apache Git</link> 
page. </para>
{quote}

nit: trailing whitespace between '.' and end of paragraph.


{quote}
+        <section>
+            <title>Other IDEs</title>
+            <para>TODO - Please contribute</para>
         </section>
{quote}

Can we make this more specific or leave it out? Ideally a follow-on umbrella 
jira that we can reference here. for subtasks of that umbrella, I know IntelliJ 
is popular with the IDE users I talk to.

{quote}
+                    <code>compile-protobuf</code> to do this.</para>
+            <programlisting language="bourne">mvn compile 
-Dcompile-protobuf</programlisting>
+            <programlisting language="bourne">mvn compile 
-Pcompile-protobuf</programlisting>
{quote}

This looks like I need to run both of these commands to rebuild the protobufs. 
I believe I only need to run one of them. We should pick which one is preferred 
and only suggest that one.

The protoc.path example looks like we prefer the "-Dcompile-protobuf" version. 
I'm pretty sure the idiomatic way for maven is the profile, so perhaps we 
should make both use that?

{quote}
+        <section xml:id="build.snappy">
+            <title>Building in snappy compression support</title>
+            <para>Pass <code>-Dsnappy</code> to trigger the 
<code>snappy</code> maven profile for
+                building Google Snappy native libraries into HBase. See also 
<xref
+                    linkend="snappy.compression"/></para>
{quote}

Similar to the protobuf bit, can we change this to use the profile directly?

{quote}
+            <para>HBase 0.96.x will run on Hadoop 1.x or Hadoop 2.x. HBase 
0.98 still runs on both,
+                but HBase 0.98 deprecates use of Hadoop 1. HBase 1.x will 
<emphasis>not</emphasis>
+                run on Hadoop 1. In the following procedures, we make a 
distinction between HBase
+                1.x builds and the awkward process involved building HBase 
0.96/0.98 for either
+                Hadoop 1 or Hadoop 2 targets. </para>
{quote}

Maybe end with a link to the java ref for more info?


{quote}
+            <formalpara>
+                <title>Maven Version</title>
+                <para>You must use maven 3.0.x (Check by running <command>mvn 
-version</command>).
                 </para>
+            </formalpara>
{quote}

Is this generally true? Should we add it to the section on basic compilation? 
Seems more likely to trip up a new person trying to build than someone creating 
a release candidate.

{quote}
+                <title>Before You Begin</title>
+                <para>Before you make a release candidate, do a practise run 
by deploying a
{quote}

Do we have a documentation style guide that covers British v American english 
usage?

{quote}
+                    intervention is needed here), the checking of the produced 
artifacts to ensure
+                    they are 'good' -- e.g. undoing the produced tarballs, 
eyeballing them to make
+                    sure they look right then starting and checking all is 
running properly -- and
{quote}

"unpacking" would be clearer than "undoing"

{quote}
+                    <title>If you used the <filename>make_rc.sh</filename> 
script instead of doing
+                        the above manually,, do your sanity checks now.</title>
{quote}

nit: extraneous comma.

{quote}
+                docbkx:generate-html</command> (TODO: It looks like you have 
to run <command>mvn
+                site</command> first because docbkx wants to include a 
transformed
+                <filename>hbase-default.xml</filename>. Fix). When you run mvn 
site, we do the
{quote}

Can we make a jira for this and then reference it here?

{quote}
+        <section xml:id="hbase.rc.voting">
+            <title>Voting on Release Candidates</title>
+            <para> Everyone is encouraged to try and vote on HBase release 
candidates. Only the
+                votes of PMC members are binding. PMC members, please read 
this WIP doc on policy
+                voting for a release candidate, <link
+                    
xlink:href="https://github.com/rectang/asfrelease/blob/master/release.md";
+                    >Release Policy</link>. <quote>Before casting +1 binding 
votes, individuals are
+                    required to download the signed source code package onto 
their own hardware,
+                    compile it as provided, and test the resulting executable 
on their own platform,
+                    along with also validating cryptographic signatures and 
verifying that the
+                    package meets the requirements of the ASF policy on 
releases.</quote> Regards
+                the latter, run <command>mvn apache-rat:check</command> to 
verify all files are
+                suitably licensed. See <link 
xlink:href="http://search-hadoop.com/m/DHED4dhFaU";
+                    >HBase, mail # dev - On recent discussion clarifying ASF 
release policy</link>.
+                for how we arrived at this process. </para>
+        </section>
{quote}

I don't think this should be in section 18.7. Maybe it's meant to be it's own 
subsection under 18? Or maybe under 18.5?

{quote}
+                <para> Since HBase version 1.0.0 (<link
+                        
xlink:href="https://issues.apache.org/jira/browse/HBASE-11348";>HBASE-11348
+                        Make frequency and sleep times of chaos monkeys 
configurable</link>), the
{quote}

Do we have a documentation style guide for referencing jiras? This instance 
uses "JIRA-NUM title of jira" and elsewhere we use "JIRA-NUM". Either is fine, 
but we should be consistent.

{quote}
+            <title>Jira</title>
+            <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>
{quote}

Add a link to beginner jiras, similar to the one in section 18.1. 

{quote}
             <para>The following information is from <link
-                    
xlink:href="http://blog.cloudera.com/blog/2013/09/how-to-test-hbase-applications-using-popular-tools/";>http://blog.cloudera.com/blog/2013/09/how-to-test-hbase-applications-using-popular-tools/</link>.
-                The following sections discuss JUnit, Mockito, MRUnit, and 
HBaseTestingUtility. </para>
+                    
xlink:href="http://blog.cloudera.com/blog/2013/09/how-to-test-hbase-applications-using-popular-tools/";
+                    
>http://blog.cloudera.com/blog/2013/09/how-to-test-hbase-applications-using-popular-tools/</link>.
+                The following sections discuss JUnit, Mockito, MRUnit, and 
HBaseTestingUtility.
{quote}

suggest changing to something like "The following sections discuss JUnit, 
Mockito, MRUnit, and HBaseTestingUtility. The information comes from [a 
community blog post about testing HBase 
applications|http://blog.cloudera.com/blog/2013/09/how-to-test-hbase-applications-using-popular-tools/]";

----

18.11.2 appears to be about writing tests for applications written on top of 
HBase. The rest of 18.11 is about developing the HBase codebase. Probably they 
need to be broken apart?

----
{quote}
+            <para>See the aforementioned Apache Commons link for how to make 
patches against a
+                checked out subversion repository.</para>
{quote}

This seems wrong. Should it say "a checked out git repository" ?

{quote}
+                <listitem>
+                    <para>Submit one single patch for a fix. If necessary, use 
<code>git
+                            squash</code> to merge local commits into a single 
one first.</para>
+                </listitem>
{quote}

I don't think git squash is what we want here. Instead say "If necessary, 
squash local commits into a single one first" with a link to a guide on 
squashing

* [interactive 
rebase|http://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits]
* [squash merge from feature 
branch|http://365git.tumblr.com/post/4364212086/git-merge-squash] (or maybe [a 
SO question that gives less 
detail|http://stackoverflow.com/questions/5308816/how-to-use-git-merge-squash])

({{git squash}} isn't part of the normal git distro. the closest I could find 
from a third party automated the {{git merge --squash && git commit}} workflow)

{quote}
+                <listitem xml:id="submitting.patches.naming">
+                    <para>The patch should have the JIRA ID in the name. If 
you generating from a
+                        branch, include the target branch in the filename. A 
common naming scheme
+                        for patches is:</para>
+                    
<screen>HBASE-<replaceable>XXXX</replaceable>.patch</screen>
+                    
<screen>HBASE-<replaceable>XXXX</replaceable>-1.patch</screen>
+                    
<screen>HBASE-<replaceable>XXXX</replaceable>-0.90.patch</screen>
+                </listitem>
{quote}

The previous guidance was to use an "_" instead of "-" between the Jira project 
and the Jira number (i.e. HBASE_XXXX rather than HBASE-XXXX). I actually prefer 
the dash, but want to make sure we're making a conscientious change.

If these examples are just meant to show branch changes, then the middle one 
should be HBASE-XXXX-branch-1.patch because the branch name is "branch-1".


{quote}
+                        patch for the whole fix), using the <menuchoice>
+                            <guimenu>More</guimenu>
+                            <guimenuitem>Attach Patch</guimenuitem>
+                        </menuchoice> dialog. Next, click the <guibutton>Patch 
Available</guibutton>
{quote}

The menu item is "Attach Files" not "Attach Patch".


{quote}

+                <listitem>
+                    <para>If you need to revise your patch, leave the previous 
patch file(s)
+                        attached to the JIRA, and upload the new one with a 
revision ID. Cancel the
+                        Patch Available flag and then re-trigger it, by 
toggling the
+                            <guibutton>Patch Available</guibutton> button in 
JIRA.</para>
+                </listitem>
{quote}

Since the "submitting a patch again" section is gone, we don't have any info on 
what "with a revision ID" means. Can we add an example? Preferably one that is 
for a patch against master and one that's against a branch.

{quote}
+                patches from new submitters.</para>
+            <para> 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>
{quote}

I don't know if we want to keep referencing the Java coding standards (it 
hasn't been updated since 1999). If we do, the correct link is now 
http://www.oracle.com/technetwork/java/index-135089.html and the formal name is 
actually the Code Conventions for the Java Programming Language.


-----

We still have a section on "Submitting incremental patches." Can we remove 
this? I believe we want to encourage contributors to attach just a single patch 
for a given jira, and to incorporate feedback into another single patch. If 
something is really big enough to need breaking into multiple patches, probably 
it should be against multiple sub-task jiras.

> Design and document the official procedure for posting patches, commits, 
> commit messages, etc. to smooth process and make integration with tools easier
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-4593
>                 URL: https://issues.apache.org/jira/browse/HBASE-4593
>             Project: HBase
>          Issue Type: Task
>          Components: documentation
>            Reporter: Jonathan Gray
>            Assignee: Misty Stanley-Jones
>         Attachments: HBASE-4593.patch, HBASE-4593.pdf
>
>
> I have been building a tool (currently called reposync) to help me keep the 
> internal FB hbase-92-based branch up-to-date with the public branches.
> Various inconsistencies in our process has made it difficult to automate a 
> lot of this stuff.
> I'd like to work with everyone to come up with the official best practices 
> and stick to it.
> I welcome all suggestions.  Among some of the things I'd like to nail down:
> - Commit message format
> - Best practice and commit message format for multiple commits
> - Multiple commits per jira vs. jira per commit, what are the exceptions and 
> when
> - Affects vs. Fix versions
> - Potential usage of [tags] in commit messages for things like book, scripts, 
> shell... maybe even whatever is in the components field?
> - Increased usage of JIRA tags or labels to mark exactly which repos a JIRA 
> has been committed to (potentially even internal repos?  ways for a tool to 
> keep track in JIRA?)
> We also need to be more strict about some things if we want to follow Apache 
> guidelines.  For example, all final versions of a patch must be attached to 
> JIRA so that the author properly assigns it to Apache.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to