leventov opened a new pull request #7991: Add development principles
URL: https://github.com/apache/incubator-druid/pull/7991
 
 
   The goal of this PR is to create a document with principles that Druid 
developers should follow if they want to
   
    - Sustain long-term maintainability of the project.
    - Improve the project effectively.
    - Improve their own and fellow developers' skill. This will have positive 
second-order effects in the perspective of the previous two goals.
    - Minimize overhead associated with distributed, cross-organizational 
development.
    - Foster the atmosphere of trust and respect in the project development. 
This will have positive second-order effects in the perspective of all previous 
goals.
   
   The currently proposed version of the document is synthesized mainly from 
the [Code 
review](https://lists.apache.org/thread.html/a9801245e50dc9459af5972354089a427effcfbd720ab2ec2c3f9ee6@%3Cdev.druid.apache.org%3E)
 discussion in the mailing list and the [Druid PR review 
checklist](https://docs.google.com/document/d/17EEKT6fih9Dd5NfXjBoECcKbVp1eOB2vb3jKqTF9pPc/edit)
 document (see the [discussion of this document in the mailing 
list](https://lists.apache.org/thread.html/74ec4a52b8cef87129a12d7ee834deef39d8bdef7f049473d4c56058@%3Cdev.druid.apache.org%3E);
 note that this document is already partially moved into the repository as 
[committer's 
instructions](https://github.com/apache/incubator-druid/blob/master/dev/committer-instructions.md)).
   
   The document has seven sections:
   
    1. Diligence
    2. Proactivity
    3. Responsibility and leadership
    4. Operational principles
    5. Openness
    6. Learning
    7. Respect
   
   Many principles could potentially go into multiple sections, and I didn't 
pay too much attention to determining "the best" section for each principle. 
There is also considerable repetition between principles: most information is 
repeated 2-3 times in various forms in different principles, which is 
unavoidable and, I think, not bad.
   
   Follow [this 
link](https://github.com/metamx/druid/blob/b8caf639c42477d37384801157560c3b20e1d75b/dev/principles.md)
 to read the document in a formatted form rather than in raw markdown.
   
   One of the basic ideas which I've put into the principles is extreme 
overcompensation: if either a PR author or a reviewer follows the principles 
then the effect will be mostly the same as if both of them follow the 
principles. See principle "3.7. Always follow these principles no matter if 
other people do that".
   
   One thing that I haven't embed from the "Code review" thread linked above is 
@gianm's suggestion to create a list of PR blocker things. One reason is that I 
think that different PRs should have different blockers, which I discussed in 
principle "1.9. Check that the work follows these principles and use 
checklists". On the other hand, the document suggests PR authors treat all 
comments as obligatory (see principles "2.7. Do everything "optional" that 
reviewers ask you to do" and "7.5. Respect reviewer's requests") and reviewers 
consider most of their own comments as optional (see "7.6. Treat your own 
review comments as optional when PR authors disagree with them"), in the 
overcompensation manner. 
   
   I've also included the principle about the minimum "poking period" of one 
week (see "7.2. Don't "ping" people in PRs too often") despite in the 
[discussion in the mailing list 
earlier](https://lists.apache.org/thread.html/c3e3cabe13851a3bd20e40a80a6b1eed80861a4fdb5c371d55d72d67@%3Cdev.druid.apache.org%3E)
 people pushed back and suggested much shorter periods. This is because I 
continue to genuinely believe that periods of less than one week are not 
sustainable. I think we need more diverse opinions on this topic (only I and 
employees of Imply have participated in the discussion of this particular topic 
so far).
   
   Note: this document is *not* a checklist for code reviews. The principles 
can be seen as a "meta checklist" for the development process and communication.
   
   As I noted in the "Code review" discussion, the target audience of these 
principles are "regular" Druid contributors.
   
   @gianm @drcrallen @himanshug @b-slim @asdf2014 @julianhyde @egor-ryashin 
@pjain1 @fjy @jon-wei @jihoonson @nishantmonu51
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to