You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vcl.apache.org by Josh Thompson <jo...@ncsu.edu> on 2009/01/06 18:31:44 UTC

code contributing process

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Here are my initial thoughts on a process for code contributions (I use "code 
contributions" to distinguish from testing/bug report/feature request type 
feedback).

Everything but very minor bugs should have a Jira issue created for them.  
Before starting on an issue, email the dev list stating that you starting on 
the issue and either state your plan for working (or just ask if anyone 
already has a plan).  Also, make sure to ask for feedback on your plans.  I'm 
not sure how to handle strong disagreements on how an issue should be 
handled.

Issues probably shouldn't be worked on unless they are assigned to a version - 
either as a bug fix for an already released version or as development on a 
new version.  So, if you want to work on an issue not assigned to a version, 
ask about what version it should be added to.  If you run across a very minor  
bug, I think it is ok to fix it without having a Jira issue created for it.

To start with, we'll add all the issue's we have on our (NCSU) roadmap to Jira 
and assign them to versions we've determined (at least as much as we've 
assigned - there are many features we haven't assigned to versions yet).  
After all of that is entered, we'll start a discussion about how the issues 
have been assigned to see if people agree with how they've been split up and 
adjust things accordingly.

After that initial step, as new issues get created and versions get released, 
anyone on the list can suggest (via an email to the list) some issues that 
could make up a new version.  That list of issues can be vetted on the dev 
list to come up with a new version.  As development progresses, the set of 
issues in the version can change accordingly.



So, share your thoughts on how you think this process should go.  If you are 
subscribed to this list with any intention of ever contributing, you should 
at least say something - even if its just stating you agree with what someone 
else said (just make it clear what you are agreeing with).

Once we have this process vetted, we need to create a wiki page containing the 
process for reference to us and future members.

Also, please bear with us in trying to migrate our existing development 
processes to ASF.  There are three of us that have been developing this full 
time (well, between meetings and administering our installation of it).  Some 
of that process is going to be along the lines of "this is what we had 
planned - what do you think?".  Unfortunately, we can't completely stop 
development until all of the community driven processes are created.  We'll 
try to switch to them as fast as possible, but we do have a production 
environment to keep moving along (and the beginning of a semester demanding 
some features/fixes to happen ASAP).

Josh
- -- 
- -------------------------------
Josh Thompson
Systems Programmer
Virtual Computing Lab (VCL)
North Carolina State University

Josh_Thompson@ncsu.edu
919-515-5323

my GPG/PGP key can be found at pgp.mit.edu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD4DBQFJY5WBV/LQcNdtPQMRApKlAJdUb9hydeYVRWlWYmqoklquPiEaAJ443orJ
xo8iBAJ67HMpe2N3tiTRtA==
=0x3q
-----END PGP SIGNATURE-----

Re: code contributing process

Posted by Andy Kurth <an...@ncsu.edu>.
Thanks Josh, this is a good start.  Some simple guidelines to direct the 
community's efforts will be very helpful.  Imposing and adhering to guidelines 
can be tedious, but in some ways makes it easier by relieving developers from 
having to make judgment calls.

I made some comments inline with Josh's message below and also would like to 
pose the following questions:

What should the relationship between Jira issues and commits be?  I think we 
agree that every commit should be tied to an issue but can a single commit be 
tied to multiple issues if they are related or if it's most efficient to tackle 
2 problems at the same time?

When committing, should there be a standard format for the commit message?  Alan 
mentioned placing the Jira issue number in the comment so Fisheye can interact. 
    For those experienced with these products, is there a format that works best 
or does it not matter?

Other thoughts are inline...

Josh Thompson wrote:

> Everything but very minor bugs should have a Jira issue created for them.  
> Before starting on an issue, email the dev list stating that you starting on 
> the issue and either state your plan for working (or just ask if anyone 
> already has a plan).  Also, make sure to ask for feedback on your plans.  

I agree with the points about posting to the dev list.

I would go a bit farther in defining what should have a Jira issue tied to it 
and would propose anything that changes how the software functions.  There would 
be very few examples of changes which wouldn't require an associated Jira issue, 
examples being adding/modifying comments or correcting typos.


> I'm not sure how to handle strong disagreements on how an issue should be 
> handled.
> 

Strong disagreements are probably inevitable.  As long as the community 
guidelines and development practices are clearly communicated and every 
participant shows respect for each other, I'm hoping disagreements shouldn't be 
too difficult to resolve.


> Issues probably shouldn't be worked on unless they are assigned to a version - 
> either as a bug fix for an already released version or as development on a 
> new version.  So, if you want to work on an issue not assigned to a version, 
> ask about what version it should be added to.  If you run across a very minor  
> bug, I think it is ok to fix it without having a Jira issue created for it.

I think every bug you find should be documented somewhere in Jira, whether it be 
in its own Jira issue or noted in another related issue.

This raises the question: how granular should Jira issues should be?  If I’m 
working on an issue and notice an unrelated trivial improvement that can be made 
or find a minor bug, should I create a separate issue?  Would it be acceptable 
to note the minor bug or improvement in the issue I was working on?


> To start with, we'll add all the issue's we have on our (NCSU) roadmap to Jira 
> and assign them to versions we've determined (at least as much as we've 
> assigned - there are many features we haven't assigned to versions yet).  
> After all of that is entered, we'll start a discussion about how the issues 
> have been assigned to see if people agree with how they've been split up and 
> adjust things accordingly.
> 
> After that initial step, as new issues get created and versions get released, 
> anyone on the list can suggest (via an email to the list) some issues that 
> could make up a new version.  That list of issues can be vetted on the dev 
> list to come up with a new version.  As development progresses, the set of 
> issues in the version can change accordingly.
> 

Sounds like a good plan to me.  I think there needs to be a pretty organized way 
of assigning Jira issues to versions.  Until now, the NC State team decided what 
features to focus on for each version by considering the needs of the campus and 
our partners.  There will hopefully be many more stakeholders in the future so 
version assignment of new features should certainly be discussed and decided on 
the dev list.


> So, share your thoughts on how you think this process should go.  If you are 
> subscribed to this list with any intention of ever contributing, you should 
> at least say something - even if its just stating you agree with what someone 
> else said (just make it clear what you are agreeing with).
> 
> Once we have this process vetted, we need to create a wiki page containing the 
> process for reference to us and future members.

I have started a page on Confluence site entitled "Developer Guidelines".  It's 
currently just a placeholder and can be renamed if necessary as things are 
discussed.  I'll try to add to it as things get decided.  Please do the same.


> Also, please bear with us in trying to migrate our existing development 
> processes to ASF.  There are three of us that have been developing this full 
> time (well, between meetings and administering our installation of it).  Some 
> of that process is going to be along the lines of "this is what we had 
> planned - what do you think?".  Unfortunately, we can't completely stop 
> development until all of the community driven processes are created.  We'll 
> try to switch to them as fast as possible, but we do have a production 
> environment to keep moving along (and the beginning of a semester demanding 
> some features/fixes to happen ASAP).

I completely agree.  I also agree with the points made by Alan and Kevan in 
other messages about the importance of communication and a community mindset. 
I'm very eager to help build a community with the help of the ASF.  Everyone 
needs to understand that a transition period is required.  If anyone disagrees 
with the way something is being done or knows of a better method, please bring 
it up on the list in a constructive way.  Any wisdom the community can provide 
which will help this project is greatly appreciated.

Regards,
Andy