Kristina Chodorow | 974b208 | 2015-03-31 14:49:30 +0000 | [diff] [blame] | 1 | --- |
Damien Martin-Guillerez | 95a54b9 | 2016-07-28 12:47:11 +0000 | [diff] [blame] | 2 | layout: contribute |
| 3 | title: Governance |
Kristina Chodorow | 974b208 | 2015-03-31 14:49:30 +0000 | [diff] [blame] | 4 | --- |
Damien Martin-Guillerez | 95a54b9 | 2016-07-28 12:47:11 +0000 | [diff] [blame] | 5 | |
| 6 | # Governance |
| 7 | |
| 8 | The Bazel project is led by a core group of contributors, initially Googlers, and managed by the |
| 9 | community. The group of core contributors is self-managing - core contributors are added by two |
| 10 | supporting votes from core contributors on the mailing list and no veto within four business days. |
| 11 | We expect that new contributors will submit a number of patches before they become core |
| 12 | contributors. |
| 13 | |
| 14 | ## Accepting Contributions |
| 15 | |
| 16 | Please also see our [contribution guidelines](contributing.html). |
| 17 | |
| 18 | ### Policy |
| 19 | |
| 20 | We use the following rules for accepting code contributions. This is written from the perspective |
| 21 | that there is a group of people who cooperatively support the project (the *core contributors*). In |
| 22 | contrast, external contributors are not actively supporting the project, but just contributing |
| 23 | individual changes. At this time, all core contributors work for Google (see below for the full |
| 24 | list), but this will hopefully change over time. |
| 25 | |
| 26 | 1. We require all contributors to sign [Google's Contributor License |
| 27 | Agreement](https://cla.developers.google.com/). |
| 28 | |
| 29 | 2. We accept well-written, well-tested contributions of rules written in |
| 30 | [Skylark](docs/skylark/concepts.html), in a `contrib/` directory or similar with clearly documented |
| 31 | support policies. |
| 32 | |
| 33 | 3. We accept well-written, well-tested bug fixes to built-in rules. |
| 34 | |
| 35 | 4. We accept well-written, well-tested feature contributions if a core contributor assumes support |
| 36 | responsibilities, i.e., readily answers support questions and works on bugs. This includes |
| 37 | feature contributions from external contributors. If there is no core contributor to support a |
| 38 | feature, then we will deprecate and subsequently delete the feature - we will give three months' |
| 39 | notice in such cases. |
| 40 | |
| 41 | 5. We will not accept untested changes, except in very rare cases. |
| 42 | |
| 43 | 6. We require a pre-commit code review from a core contributor for all changes. For the time being, |
| 44 | we will have to continue making changes across the internal and external code bases, which will |
| 45 | be reviewed internal to Google. |
| 46 | |
| 47 | 7. We will roll back changes if they break the internal development processes of any of the core |
| 48 | contributors. |
| 49 | |
| 50 | 8. We will move towards an open governance model where multiple parties have commit access, |
| 51 | roll-back rights, and can provide explicit support for features or rules. |
| 52 | |
| 53 | 9. We will work with interested parties to improve existing extension points and to establish new |
| 54 | extension points if they do not run counter to the internal requirements of any of the core |
| 55 | contributors. |
| 56 | |
| 57 | ## Are you done open sourcing Bazel? |
| 58 | |
| 59 | Open sourcing Bazel is a work-in-progress. In particular, we're still working on open sourcing: |
| 60 | |
| 61 | * Many of our unit and integration tests (which should make contributing patches easier). |
| 62 | * Full IDE integration. |
| 63 | |
| 64 | Beyond code, we'd like to eventually have all code reviews, bug tracking, and design decisions |
| 65 | happen publicly, with the Bazel community involved. We are not there yet, so some changes will |
| 66 | simply appear in the Bazel repository without clear explanation. Despite this lack of |
| 67 | transparency, we want to support external developers and collaborate. Thus, we are opening up the |
| 68 | code, even though some of the development is still happening internal to Google. Please let us know |
| 69 | if anything seems unclear or unjustified as we transition to an open model. |
| 70 | |
| 71 | ## Are there parts of Bazel that will never be open sourced? |
| 72 | |
| 73 | Yes, some of the code base either integrates with Google-specific technology or we have been looking |
| 74 | for an excuse to get rid of (or is some combination of the two). These parts of the code base are |
| 75 | not available on GitHub and probably never will be. |
| 76 | |
| 77 | ### Core Contributors |
| 78 | |
| 79 | <p class="lead"> |
Damien Martin-Guillerez | e2e61a3 | 2016-11-22 16:21:45 +0000 | [diff] [blame] | 80 | Contact the core team at <a href="mailto:bazel-core@googlegroups.com"> |
| 81 | bazel-core@googlegroups.com</a>. |
Damien Martin-Guillerez | 95a54b9 | 2016-07-28 12:47:11 +0000 | [diff] [blame] | 82 | </p> |