diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3a8f946..7bfcb3c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,15 @@ # Contributing + +* [Contributing](#contributing) + * [Code of Conduct](#code-of-conduct) + * [How can I contribute](#how-can-i-contribute) + * [Governance](#governance) + * [DCO Signoff](#dco-signoff) + * [Code Review](#code-review) + * [I just have a question](#i-just-have-a-question) + + ## Code of Conduct This project and everyone participating in it is governed by the [Code of Conduct](CODE_OF_CONDUCT.md). @@ -19,6 +29,10 @@ You can contribute by: All bugs, tasks or enhancements are tracked as GitHub issues. Issues which might be a good start for new contributors are marked with the “good-start” label. +## Governance + +Anyone can help improve the Governance of Kroxylicious! See our [Governance Improvement Process](GOVERNANCE.md#governance-improvement-process) for details. + ## DCO Signoff The project requires that all commits are signed-off, indicating that _you_ certify the changes with the [Developer diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 16fd618..5675545 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -11,11 +11,18 @@ This governance model is designed to uphold the principles of transparency, open ## Table of Contents -- [Roles and Responsibilities](#roles-and-responsibilities) -- [Decision Making](#decision-making) -- [Code of Conduct](#code-of-conduct) -- [Trademark Policy](#trademark-policy) -- [Contributing](#contributing) + +* [Kroxylicious Governance](#kroxylicious-governance) + * [Table of Contents](#table-of-contents) + * [Roles and Responsibilities](#roles-and-responsibilities) + * [Decision Making](#decision-making) + * [Code of Conduct](#code-of-conduct) + * [Trademark Policy](#trademark-policy) + * [Contributing](#contributing) + * [Becoming a Code Owner](#becoming-a-code-owner) + * [Code Owner Criteria](#code-owner-criteria) + * [Governance Improvement Process](#governance-improvement-process) + ## Roles and Responsibilities @@ -65,3 +72,37 @@ To ensure that all potential Code Owners are judged fairly and consistently the * Promotion of Kroxylicious, for example by blogging, speaking at conferences, and so on. * Knowing when to ask for help or seek consensus. * An indication of being committed to the long term success of the project. + +## Governance Improvement Process + +We define the following process for improving the Governance of Kroxylicious. + +> **_NOTE:_** This is the formal process for changing project Governance, but in most cases we would appreciate a conversation +> beforehand. You can reach out to us on Slack, or create an Issue in this repository to get the ball rolling. + +1. **Eligibility:** Any member of our community may submit a proposal to improve our governance. + The author is referred to as the **Proposer**. +2. **Identification:** Every proposal requires a unique ID following the pattern `GIP-000`, `GIP-001`, etc. + * The Proposer selects the next available number based on existing files in the `decision-records` directory and the + ids used by open PRs. + * *Note:* If a numbering collision occurs with another open PR, the newer PR must update its ID to the next + available number. +3. **Submission:** A Proposal is created by opening a Pull Request (PR) in this repository. +4. **Requirements:** Each PR must represent a single proposal and include: + * **The Policy Change:** Edits to the actual governance files (e.g., `Governance.md`). + * **The Record:** A new Governance Decision Record (GDR) file in `decision-records/`, named like + `GIP-000-brief-description.md`. This file must follow the template located + at [decision-records/TEMPLATE.md](decision-records/TEMPLATE.md). + * **The Title:** A PR title containing the ID, e.g., `[GIP-000] Adopt Governance Improvement Process`. +5. **Visibility:** The Proposer must announce the PR in the `#general` channel of the Kroxylicious Slack to invite + community review. +6. **Review:** We discuss and amend the Proposal until it's in a good shape. +7. **Open Decision Making Period:** We follow the [Decision-Making](#decision-making) policy. + * A **Code Owner** must announce that the Decision Making Period has started, or restarted due to significant modifications. + This should be announced in the `#general` channel of our Community Slack. + * Discussion, objections, and voting should be done in the PR comments. +8. **Finalization:** + * **If Accepted:** The Proposer must update the GDR file status to "Accepted" and record the ratification date. A + Code Owner will then merge the PR. + * **If Rejected/Stale:** If a proposal is rejected or remains stale (no decision making period declared) for two months, the PR will be closed. + A Code Owner will extract the GDR file from the PR, set its status to "Rejected" and commit it to this repository. \ No newline at end of file diff --git a/decision-records/GIP-000-adopt-governance-improvement-process.md b/decision-records/GIP-000-adopt-governance-improvement-process.md new file mode 100644 index 0000000..ac39826 --- /dev/null +++ b/decision-records/GIP-000-adopt-governance-improvement-process.md @@ -0,0 +1,39 @@ +# [GIP-000] Adopt Governance Improvement Process + +**Status:** Proposed +**Decision Date:** YYYY-MM-DD +**Vote Results:** record votes here + +--- + +## 1. Context + +There are deficiencies in our current process to change our internal Governance model (within our remit as part of the Commonhaus Foundation). + +1. There is no defined way for Contributors to propose governance changes. It would be informal, maybe captured in a Pull Request into this repository, maybe on slack. +2. There is no defined way to record the reasons for changes. It might be captured in a PR, or a commit message, but it will be scattered. + +These issues add up to an intransparent process that is not friendly to new Contributors. They don't know how their rights and responsibilities might change under their feet or how to join in. + +While a relatively informal approach may suit our needs in the technical areas of the Project, the Governance aspects feel like they should be more rigourous as they touch on responsibilities to our +Foundation, sharing of powerful credentials which represent a security risk to the world, and making our neutrality transparent. So I feel some light process is justified. + +## 2. Proposed Changes + +All changes to Kroxylicious Governance must be made through a **Government Improvement Process** (GIP). Using this process any Contributor can create a Proposal for an improvement to our Governance. + +A Proposal will have an identifier, like `GIP-000`. A proposal will be created by making a Pull Request (PR) into this repository. The PR will contain changes to the relevant Governance files and +a Governance Decision Record (GDR) file which provides context and an administrative record of the decision if the Proposal is accepted. + +We will use our existing decision making process, recording objections and approvals using comments on the PR. If it is accepted, a Code Owner will update the administrative details in the GDR +file, approve and merge the PR. At that point it will become part of our Governance model. + +## 3. Rationale + +1. The community can learn how to participate in Governance +2. There will be clarity for organization members on how their rights/responsibilities are determined +3. We will leave a useful history, providing details of what changed and evidence that we followed our process + +## 4. Rejected Alternatives + +- N/A diff --git a/decision-records/TEMPLATE.md b/decision-records/TEMPLATE.md new file mode 100644 index 0000000..5a0665c --- /dev/null +++ b/decision-records/TEMPLATE.md @@ -0,0 +1,18 @@ +# [GIP-XXX] Proposal Title + +**Status:** Proposed +**Decision Date:** YYYY-MM-DD +**Vote Results:** record votes here + +--- + +## 1. Context + + +## 2. Proposed Changes + + +## 3. Rationale + + +## 4. Rejected Alternatives