Hi Kevin,

Woo! Glad to read this mail this morning, it is a very good start :)
BTW seems to be related to SHINDIG-261.

Let's comment it and adding some reasoning, similar to the javastyle

2008/5/10, Kevin Brown <[EMAIL PROTECTED]>:
> Hi everyone,
>
>  I'm trying to gather some additions to the contributors page of the shindig
>  site. I'd like to address a few issues that have come up with patches from
>  non-committers. Here's what I have so far:
>
>  - Patches should be attached to the JIRA issue tracker. Patches sent via
>  email will likely just be forgotten.

Definitely!
Reasoning: traceability, issue tracking in one place

>  - Patch must conform to style guides as specified by
>  http://cwiki.apache.org/confluence/display/SHINDIGxSITE/Java+Style,
>  http://cwiki.apache.org/confluence/display/SHINDIGxSITE/Javascript+Style,
>  http://cwiki.apache.org/confluence/display/SHINDIGxSITE/PHP+Style, etc.
>  Minor deviations are acceptable, at the discretion of the committer (who
>  must resolve the deviations herself). If a commiter judges that a patch is
>  too far off of the style guide, she may reject it.

The main point here is "the discretion of the committer". That should
not be a restriction on patch acceptance: any committer could easily
run ctrl+shift+F in their favorit IDE to format patch code...
Reasoning: easy integration, patch readingness

>  - Any new code paths should include corresponding unit tests. New classes
>  with any non-trivial public methods (i.e. anything that actually does work)
>  must provide a matching test case. No patch will be accepted without
>  corresponding test coverage. There is currently an exception to this for
>  javascript, pending a solid solution for running jsunit or similar tests.

As above, the committer has the responsibility to accept or reject a
patch. Any rejects should be explain.
Reasoning: easy integration, quality, testing

>  - All existing tests must pass after the patch is applied. If any tests
>  fail, you must also patch the code that is now failing (either by updating
>  the test, or modifying the code path as appropriate). If you need to make
>  any major changes to other code that is not directly related to your change,
>  please include notes to that effect in the JIRA ticket. If you're unsure of
>  what to do, email shindig-dev@, or the component lead for the code you're
>  patching.

As above, the committer has the responsibility to verify that no
regression was done with a given patch. Also, users should create more
tickets for other code and link them.
Reasoning: quality, regression, decrease side effects

>  - Patches should be as small and focused as possible. The smaller they are,
>  the easier it is to avoid conflicts and for committers to review them.

IMHO this is an important point: patches should be focused, ie no
include any part of code like formatting/cleaning/whatever on the non
related issue (like said, users could always create other issues for
that)
Reasoning: traceability, decrease side effects

>  - Patch should be against a relatively recent version of Shindig so as to
>  avoid merge conflicts; ideally, the patch should be against HEAD at the time
>  of creation. Committers will do our best to resolve any minor merge issues
>  that occur between patch submission and commit time, though we may not be
>  able to do this in the event of major conflicts.

In fact, only if committers can't integrate patch
Reasoning: easy integration

>  - Any changes in javascript with implications for server side functionality
>  must be approved by all server-side language implementors. Committers are
>  responsible for ensuring that appropriate language components are assigned
>  to the issue so that they are properly tracked.

Reasoning: quality, api

>  - Committers must reference the issue when committing the patch. The ideal
>  format is something like "Applying SHINDIG-XXX, submitted by <name of user
>  that submitted it". This will allow automatic status updates for the
>  associated JIRA tickets.

IMHO it is important to have this to create an open and diverse
community. Standard commit message helps to recruit
users/dev/committers/pmc
Moreover, it improves the svn integration in jira
Reasoning: quality, integration, tracking informations (specially
potential committers)

I will add other tips:
- as they can, committers should commit patches "as is" and commit
after any changes like formatting, improvements...
Reasoning: traceability, quality, legal

- committers should commit issue after issue to make small commits:
forbid all in one patch (ie 652498) BTW small commits are always
better.
Reasoning: traceability, patch readingness

- users/committers should use Jira to track all comments: no mail
replies on a Jira issue on [EMAIL PROTECTED] Comments are only in one
place. If an issue needs a discussion on dev@ or on wiki space,
users/committers have the responsibility to add a link to jira.
Reasoning: traceability

Cheers,

Vincent

Reply via email to