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]
