Docs: C4 revisions as discussed in #2174
This commit is contained in:
parent
84d25d25d4
commit
87f5897499
|
@ -44,6 +44,7 @@ the previous paragraph is here.
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Copyright (c) 2009-2015 Pieter Hintjens.
|
Copyright (c) 2009-2015 Pieter Hintjens.
|
||||||
|
Copyright (c) 2017 The Monero Project.
|
||||||
|
|
||||||
This Specification is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
|
This Specification is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
@ -55,6 +56,11 @@ You should have received a copy of the GNU General Public License along with thi
|
||||||
|
|
||||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
|
||||||
|
|
||||||
|
The "Monero Maintainer Team" is defined in this document as the following users:
|
||||||
|
- fluffypony
|
||||||
|
- moneromooo
|
||||||
|
- hyc
|
||||||
|
|
||||||
## Goals
|
## Goals
|
||||||
|
|
||||||
C4 is meant to provide a reusable optimal collaboration model for open source software projects. It has these specific goals:
|
C4 is meant to provide a reusable optimal collaboration model for open source software projects. It has these specific goals:
|
||||||
|
@ -73,6 +79,9 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
|
||||||
- The project SHALL use the git distributed revision control system.
|
- The project SHALL use the git distributed revision control system.
|
||||||
- The project SHALL be hosted on github.com or equivalent, herein called the "Platform".
|
- The project SHALL be hosted on github.com or equivalent, herein called the "Platform".
|
||||||
- The project SHALL use the Platform issue tracker.
|
- The project SHALL use the Platform issue tracker.
|
||||||
|
- Non-GitHub example:
|
||||||
|
- "Platform" could be a vanilla git repo and Trac hosted on the same machine/network.
|
||||||
|
- The Platform issue tracker would be Trac.
|
||||||
- The project SHOULD have clearly documented guidelines for code style.
|
- The project SHOULD have clearly documented guidelines for code style.
|
||||||
- A "Contributor" is a person who wishes to provide a patch, being a set of commits that solve some clearly identified problem.
|
- A "Contributor" is a person who wishes to provide a patch, being a set of commits that solve some clearly identified problem.
|
||||||
- A "Maintainer" is a person who merges patches to the project. Maintainers are not developers; their job is to enforce process.
|
- A "Maintainer" is a person who merges patches to the project. Maintainers are not developers; their job is to enforce process.
|
||||||
|
@ -82,7 +91,7 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
|
||||||
|
|
||||||
### Licensing and Ownership
|
### Licensing and Ownership
|
||||||
|
|
||||||
- The project SHALL use a share-alike license, such as the GPLv3 or a variant thereof (LGPL, AGPL), or the MPLv2.
|
- The project SHALL use a share-alike license, such as BSD-3, the GPLv3 or a variant thereof (LGPL, AGPL), or the MPLv2.
|
||||||
- All contributions to the project source code ("patches") SHALL use the same license as the project.
|
- All contributions to the project source code ("patches") SHALL use the same license as the project.
|
||||||
- All patches are owned by their authors. There SHALL NOT be any copyright assignment process.
|
- All patches are owned by their authors. There SHALL NOT be any copyright assignment process.
|
||||||
- The copyrights in the project SHALL be owned collectively by all its Contributors.
|
- The copyrights in the project SHALL be owned collectively by all its Contributors.
|
||||||
|
@ -90,7 +99,8 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
|
||||||
|
|
||||||
### Patch Requirements
|
### Patch Requirements
|
||||||
|
|
||||||
- Maintainers and Contributors MUST have a Platform account and SHOULD use their real names or a well-known alias.
|
- Maintainers MUST have a Platform account and SHOULD use their real names or a well-known alias.
|
||||||
|
- Contributors SHOULD have a Platform account and MAY use their real names or a well-known alias.
|
||||||
- A patch SHOULD be a minimal and accurate answer to exactly one identified and agreed problem.
|
- A patch SHOULD be a minimal and accurate answer to exactly one identified and agreed problem.
|
||||||
- A patch MUST adhere to the code style guidelines of the project if these are defined.
|
- A patch MUST adhere to the code style guidelines of the project if these are defined.
|
||||||
- A patch MUST adhere to the "Evolution of Public Contracts" guidelines defined below.
|
- A patch MUST adhere to the "Evolution of Public Contracts" guidelines defined below.
|
||||||
|
@ -105,17 +115,17 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
|
||||||
- To request changes, a user SHOULD log an issue on the project Platform issue tracker.
|
- To request changes, a user SHOULD log an issue on the project Platform issue tracker.
|
||||||
- The user or Contributor SHOULD write the issue by describing the problem they face or observe.
|
- The user or Contributor SHOULD write the issue by describing the problem they face or observe.
|
||||||
- The user or Contributor SHOULD seek consensus on the accuracy of their observation, and the value of solving the problem.
|
- The user or Contributor SHOULD seek consensus on the accuracy of their observation, and the value of solving the problem.
|
||||||
- Users SHALL NOT log feature requests, ideas, suggestions, or any solutions to problems that are not explicitly documented and provable.
|
- Users SHALL NOT log feature requests, ideas, or suggestions unrelated to Monero code or Monero's dependency code or Monero's potential/future dependency code or research which successfully implements Monero.
|
||||||
|
- Users SHALL NOT log any solutions to problems (verifiable or hypothetical) of which are not explicitly documented and/or not provable and/or cannot be reasonably proven.
|
||||||
- Thus, the release history of the project SHALL be a list of meaningful issues logged and solved.
|
- Thus, the release history of the project SHALL be a list of meaningful issues logged and solved.
|
||||||
- To work on an issue, a Contributor SHALL fork the project repository and then work on their forked repository.
|
- To work on an issue, a Contributor SHALL fork the project repository and then work on their forked repository.
|
||||||
- To submit a patch, a Contributor SHALL create a Platform pull request back to the project.
|
- To submit a patch, a Contributor SHALL create a Platform pull request back to the project.
|
||||||
- A Contributor SHALL NOT commit changes directly to the project.
|
- A Contributor SHALL NOT commit changes directly to the project.
|
||||||
- If the Platform implements pull requests as issues, a Contributor MAY directly send a pull request without logging a separate issue.
|
|
||||||
- To discuss a patch, people MAY comment on the Platform pull request, on the commit, or elsewhere.
|
- To discuss a patch, people MAY comment on the Platform pull request, on the commit, or elsewhere.
|
||||||
- To accept or reject a patch, a Maintainer SHALL use the Platform interface.
|
- To accept or reject a patch, a Maintainer SHALL use the Platform interface.
|
||||||
- Maintainers SHOULD NOT merge their own patches except in exceptional cases, such as non-responsiveness from other Maintainers for an extended period (more than 1-2 days).
|
- Maintainers SHOULD NOT merge their own patches except in exceptional cases, such as non-responsiveness from other Maintainers for an extended period (more than 30 days) or unless urgent as defined by the Monero Maintainers Team.
|
||||||
- Maintainers SHALL NOT make value judgments on correct patches.
|
- Maintainers SHALL NOT make value judgments on correct patches unless the Maintainer (as may happen in rare circumstances) is a core code developer.
|
||||||
- Maintainers SHALL merge correct patches from other Contributors rapidly.
|
- Maintainers MUST NOT merge pull requests in less than 168 hours (1 week) unless deemed urgent by at least 2 people from the Monero Maintainer Team.
|
||||||
- The Contributor MAY tag an issue as "Ready" after making a pull request for the issue.
|
- The Contributor MAY tag an issue as "Ready" after making a pull request for the issue.
|
||||||
- The user who created an issue SHOULD close the issue after checking the patch is successful.
|
- The user who created an issue SHOULD close the issue after checking the patch is successful.
|
||||||
- Maintainers SHOULD ask for improvements to incorrect patches and SHOULD reject incorrect patches if the Contributor does not respond constructively.
|
- Maintainers SHOULD ask for improvements to incorrect patches and SHOULD reject incorrect patches if the Contributor does not respond constructively.
|
||||||
|
@ -128,7 +138,6 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
|
||||||
- The project SHALL NOT use topic branches for any reason. Personal forks MAY use topic branches.
|
- The project SHALL NOT use topic branches for any reason. Personal forks MAY use topic branches.
|
||||||
- To make a stable release someone SHALL fork the repository by copying it and thus become maintainer of this repository.
|
- To make a stable release someone SHALL fork the repository by copying it and thus become maintainer of this repository.
|
||||||
- Forking a project for stabilization MAY be done unilaterally and without agreement of project maintainers.
|
- Forking a project for stabilization MAY be done unilaterally and without agreement of project maintainers.
|
||||||
- A stabilization project SHOULD be maintained by the same process as the main project.
|
|
||||||
- A patch to a stabilization project declared "stable" SHALL be accompanied by a reproducible test case.
|
- A patch to a stabilization project declared "stable" SHALL be accompanied by a reproducible test case.
|
||||||
|
|
||||||
### Evolution of Public Contracts
|
### Evolution of Public Contracts
|
||||||
|
@ -149,20 +158,3 @@ C4 is meant to provide a reusable optimal collaboration model for open source so
|
||||||
- A new Contributor who makes a correct patch SHALL be invited to become a Maintainer.
|
- A new Contributor who makes a correct patch SHALL be invited to become a Maintainer.
|
||||||
- Administrators MAY remove Maintainers who are inactive for an extended period of time, or who repeatedly fail to apply this process accurately.
|
- Administrators MAY remove Maintainers who are inactive for an extended period of time, or who repeatedly fail to apply this process accurately.
|
||||||
- Administrators SHOULD block or ban "bad actors" who cause stress and pain to others in the project. This should be done after public discussion, with a chance for all parties to speak. A bad actor is someone who repeatedly ignores the rules and culture of the project, who is needlessly argumentative or hostile, or who is offensive, and who is unable to self-correct their behavior when asked to do so by others.
|
- Administrators SHOULD block or ban "bad actors" who cause stress and pain to others in the project. This should be done after public discussion, with a chance for all parties to speak. A bad actor is someone who repeatedly ignores the rules and culture of the project, who is needlessly argumentative or hostile, or who is offensive, and who is unable to self-correct their behavior when asked to do so by others.
|
||||||
|
|
||||||
# Addendum to [Code of Conduct (22/C4.1)](http://rfc.zeromq.org/spec:22)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Copyright (c) 2017 The Monero Project
|
|
||||||
|
|
||||||
## Language
|
|
||||||
|
|
||||||
The "Monero Maintainer Team" is defined in this document as the following users:
|
|
||||||
- fluffypony
|
|
||||||
- moneromooo
|
|
||||||
- hyc
|
|
||||||
|
|
||||||
### Development Process
|
|
||||||
|
|
||||||
- Maintainers MUST NOT merge pull requests in less than 168 hours (1 week) unless deemed urgent by at least 2 people from the Monero Maintainer Team
|
|
||||||
|
|
Loading…
Reference in New Issue