[ 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)