Author: elserj
Date: Thu Jun 6 01:47:21 2013
New Revision: 1490109
URL: http://svn.apache.org/r1490109
Log:
ACCUMULO-1498 First draft at infrastructure and implementation (sans release
management) taken primarily from suggestions on the mailaing list.
Modified:
accumulo/site/branches/git/content/css/accumulo.css
accumulo/site/branches/git/content/git.mdtext
Modified: accumulo/site/branches/git/content/css/accumulo.css
URL:
http://svn.apache.org/viewvc/accumulo/site/branches/git/content/css/accumulo.css?rev=1490109&r1=1490108&r2=1490109&view=diff
==============================================================================
--- accumulo/site/branches/git/content/css/accumulo.css (original)
+++ accumulo/site/branches/git/content/css/accumulo.css Thu Jun 6 01:47:21 2013
@@ -61,7 +61,8 @@ h1, h2, h3, h4, h5, h6 {
}
#content h1 {
font-size: 1.4em;
- padding: 15px;
+ padding-top: 15px;
+ padding-bottom: 15px;
}
#content h2 {
border-bottom: 1px dashed #666666;
Modified: accumulo/site/branches/git/content/git.mdtext
URL:
http://svn.apache.org/viewvc/accumulo/site/branches/git/content/git.mdtext?rev=1490109&r1=1490108&r2=1490109&view=diff
==============================================================================
--- accumulo/site/branches/git/content/git.mdtext (original)
+++ accumulo/site/branches/git/content/git.mdtext Thu Jun 6 01:47:21 2013
@@ -16,14 +16,14 @@ Notice: Licensed to the Apache Softwa
specific language governing permissions and limitations
under the License.
-## Git
+# Git
[Git](http://git-scm.com) is an open source, distributed version control system
which has become very popular in large, complicated software projects due to
its
efficient handling of multiple, simultaneously and independently developed
brances
of source code.
-## The plan
+# The plan
There are multiple steps that are required of us to fully transition from
active
development against Subversion to Git. Each of these requires consensus (lazy
or
@@ -31,7 +31,7 @@ not) from the team along with documentat
current, can reference to understand how and what to do.
-### Workflow Background
+## Workflow Background
Likely the most contested subject matter regarding switching an active team
from
one SCM tool to another is a shift in the development paradigm.
@@ -74,7 +74,7 @@ The purpose of this extravagant example
the workflow decided upon for development is very important and has direct
impact on the efficacy of the advanced commands bundled with Git.
-### Proposed Workflow
+## Proposed Workflow
I'll try to summarize what has thus far been agreed upon by vocal
committers/PMC members on [email protected]. I will attempt to refer to
@@ -105,22 +105,80 @@ best-effort to be given to avoid duplica
created by the application of multiple revisions which have different
identifying attributes but the same contents (git-rebase and git-cherry-pick).
-## The implementation
+# The implementation
-### Contributors
+## Contributors
-### Developers
+Follow the [simple contributor
+workflow](https://cwiki.apache.org/confluence/display/KAFKA/Git+Workflow#GitWorkflow-Simplecontributorworkflow)
+from Apache Kafka's website.
-### Release Management
+In a nutshell, contributors should make their changes against the version in
+which the fix is intended, `git-rebase`'ing their changes against the upstream
+branch so as to keep their changes co-located and free of unnecessary merges.
-## The infrastructure
+The final contribution can be in the form of a git formatted patch (see the
+Kafka workflow linked above), a request to pull changes from a remote+ref, or a
+pull-request from [Apache Accumulo
+on Github](https://github.com/apache/accumulo). Pull-requests from Github
should
+automatically be sent to
[[email protected]](mailto:[email protected]).
+
+## Developers
+
+### Primary Development
+
+Primary development should take place in a single branch which contains the
most
+recent, un-released version of Apache Accumulo. The name of such branch is up
+for debate -- `master`, `development` or `unstable` are all reasonable names
for
+such a branch and developers must make a decision.
+
+For changes staged for the next minor release of Apache Accumulo, it has been
+suggested that a branch is created for the purpose of containing the bug-fixes,
+API-compatible improvements and backported-features. This provides the
following:
+
+1. Avoids many long-running 'SNAPSHOT' branches to force the developer to best
+ consider where his/her changes should be applied.
+2. Better ties a branch containing commits for a minor release to Jira issues
+ fixed in said minor release.
+3. Others that I'm not thinking of? I think more exist in gigantic 'GIT' thread
+ on [email protected].
+
+If said short-lived branch doesn't yet exist, the developer should create said
+branch off of the last minor release in the targeted major version.
+
+For example, if a developer finds a fix that needs to be made against the 1.4.3
+release of Apache Accumulo, the developer should create a new branch from the
+1.4.3 tag, apply the changes, and push the branch remotely with an appropriate
+name. It has been suggested to name the branch in the same manner in which
Maven
+releases are named. In other words, the branch just created would be named
+`1.4.4-snapshot` or similar.
+
+### Feature Branches
+
+Ease in creating and using feature branches is a desirable merit which Git
+provides with little work. Feature branches are a great way in which developers
+to work on multiple, long-running features concurrently, without worry of
mixing
+code ready for public-review and code needing more internal work. Additionally,
+this creates an easily consumable series of commits in which other developers
+can track changes, and see how the feature itself evolved.
+
+To prevent developers' feature branches from colliding with one another, it was
+suggested to impose a "hierarchy" in which shared feature branches are prefixed
+with `feature/${USERNAME}/${JIRA_ISSUE}-description`. This is another decision
+that requires input from all developers who care.
+
+## Release Management
+
+_TODO_
+
+# The infrastructure
This section deals with the changes that must be requested through INFRA. As
with any substantial INFRA request, the VOTE and result from the mailing should
be referenced so INFRA knows that the request has been acknowledged. Likely, a
PMC member should be the one to submit the request.
-### Repositories
+## Repositories
I believe that we will need multiple repositories to best align ourselves with
how we currently track "Accumulo" projects. The repositories follow:
@@ -140,7 +198,7 @@ tickets, multiple repositories for a sin
Having this list when making the initial ticket will likely reduce the amount
of
work necessary in opening multiple INFRA tickets.
-### Mirroring
+## Mirroring
It should be noted in the INFRA requst that each repository will also need to
be
configured to properly mirror to the [ASF Github](https://github.com/apache)
@@ -148,7 +206,7 @@ account to provide the same functionalit
mirror. This should be noted in the INFRA request. Same change needs to be
applied for the [Apache hosted](http://git.apache.org) mirror'ing.
-### Mailing lists
+## Mailing lists
It should be noted in the INFRA request that commit messages should be sent to
[[email protected]](mailto:[email protected]). The subject