First I want to say that I hope the community will continue to vote on
this issue while discussion is underway about whether or not Rick will
veto. I am sure the next person to take a shot at this will appreciate
knowing where everyone stands even if it doesn't pass this round. See
http://db.apache.org/decisions.html for responsibilities and
definitions of voting. I think this is a consensus vote.
Rick Hillegas wrote:
Just want to make sure we have realistic expectations for this vote:
Since we are not bulk-reformatting the code, even after this vote
Derby won't conform to the db project guidelines.
Yes, my hope is that incrementally we can reach a point where we conform
to the db project guidelines. The question is how much closer we can
get to that now. I tend to think, the lack of such a convention for
Derby was just a serious oversight in allowing Derby to graduate
incubation.
The guidelines don't specify how extensive the hard-and-fast rules
have to be. To date, here are the only ones I think we have discussed
extensively:
1) No tabs.
2) Indentation stops set at 4 spaces.
3) Line length not to exceed 80 characters.
To this, with the community's approval, I would add
0) Write clearly.
A good enough coding standard would be these 4 hard-and-fast rules
plus a pointer to a non-binding style primer. Let's keep it simple and
focus on the issues which actually bothered us.
If incremental consensus has to start there, I suppose it could, but I
don't think it would qualify as a "well-defined convention" and I do
think we would need to adopt a well-defined convention in the future in
our work to comply with the db project guidelines. I am curious for
matters of db project guidelines, who could answer what level of
specificity is required.
I disagree that this would solve all the issues. I think still there
would be issues with IDE's reformatting code, various religious
discussions around particular changes and the core problem would
remain (even after removal of the note) that a new developer can't rely
upon setting their IDE to some documented convention and be sure they
won't get into trouble with it. I think we need to be setup so it is
easy to join the project and make a fix. Those making changes for
style need to make sure that their style decisions are not going to
interfere with anyone using the documented convention and that is it.
That is not possible with the 4 rules and primer pointer wording.
It is different from closed source where we might expect some small
group of core developers to learn how to work around and integrate each
other's styles. ( I actually have a .emacs file that seems to have the
beginning of this conversation years ago, I am not even sure who wrote
it or who "I" is in this context, but it has various commented out
sections and says .." Nat's favorite is ... Ame's said .... I like it
like ... We still haven't decided about switch statements" etc.) This
kind of thing does not scale well to an open source project with
potentially hundreds of contributors all showing up to build great
extensions and and make fixes just want to know some format to use that
won't get them into trouble. They don't really care what color the shed
is, just give them something that works and if we are not militant about
it and allow variations that make sense and don't interfere, then we are
covered.
I think we should publish the convention as proposed and our ultimate
goal should be that anyone formatting their code in this way is not
going have to ever redo their patch based on formatting issues.
Thanks
Kathey