From b7ff5f9dffe9505f341deefa8021d991d5dd12f8 Mon Sep 17 00:00:00 2001 From: Robert Young Date: Fri, 30 Jan 2026 15:28:13 +1300 Subject: [PATCH 1/5] Add Governance Improvement Process Signed-off-by: Robert Young --- CONTRIBUTING.md | 14 ++++++ GOVERNANCE.md | 45 ++++++++++++++++--- ...00-adopt-governance-improvement-process.md | 39 ++++++++++++++++ decision-records/TEMPLATE.md | 18 ++++++++ 4 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 decision-records/GIP-000-adopt-governance-improvement-process.md create mode 100644 decision-records/TEMPLATE.md 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..e0f3ff2 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,31 @@ 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. + +1. **Eligibility:** Any Contributor 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`. + * **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. **Template:** New GDR files must use the template located + at [decision-records/TEMPLATE.md](decision-records/TEMPLATE.md). +7. **Review:** We follow the [Decision-Making](#decision-making) policy. + * Discussion, objections, and voting occur 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 inactive for two months, the PR will be closed. \ 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..100d91c --- /dev/null +++ b/decision-records/GIP-000-adopt-governance-improvement-process.md @@ -0,0 +1,39 @@ +# [GIP-000] Adopt Governance Improvement Process + +**Status:** Proposed +**Acceptance Date:** YYYY-MM-DD +**Deciders:** 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..ee8c2c5 --- /dev/null +++ b/decision-records/TEMPLATE.md @@ -0,0 +1,18 @@ +# [GIP-XXX] Proposal Title + +**Status:** Proposed +**Acceptance Date:** YYYY-MM-DD +**Deciders:** record votes here + +--- + +## 1. Context + + +## 2. Proposed Changes + + +## 3. Rationale + + +## 4. Rejected Alternatives From dfb8aa1ab4650a6f1ba6020cbce7dda12391a364 Mon Sep 17 00:00:00 2001 From: Robert Young Date: Mon, 2 Feb 2026 08:56:00 +1300 Subject: [PATCH 2/5] Incorporate review feedback Co-authored-by: Sam Barker Signed-off-by: Robert Young --- GOVERNANCE.md | 4 ++-- .../GIP-000-adopt-governance-improvement-process.md | 4 ++-- decision-records/TEMPLATE.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index e0f3ff2..e5008a8 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -77,8 +77,8 @@ To ensure that all potential Code Owners are judged fairly and consistently the We define the following process for improving the Governance of Kroxylicious. -1. **Eligibility:** Any Contributor may submit a proposal to improve our governance. The author is referred to as the * - *Proposer**. +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. diff --git a/decision-records/GIP-000-adopt-governance-improvement-process.md b/decision-records/GIP-000-adopt-governance-improvement-process.md index 100d91c..ac39826 100644 --- a/decision-records/GIP-000-adopt-governance-improvement-process.md +++ b/decision-records/GIP-000-adopt-governance-improvement-process.md @@ -1,8 +1,8 @@ # [GIP-000] Adopt Governance Improvement Process **Status:** Proposed -**Acceptance Date:** YYYY-MM-DD -**Deciders:** record votes here +**Decision Date:** YYYY-MM-DD +**Vote Results:** record votes here --- diff --git a/decision-records/TEMPLATE.md b/decision-records/TEMPLATE.md index ee8c2c5..5a0665c 100644 --- a/decision-records/TEMPLATE.md +++ b/decision-records/TEMPLATE.md @@ -1,8 +1,8 @@ # [GIP-XXX] Proposal Title **Status:** Proposed -**Acceptance Date:** YYYY-MM-DD -**Deciders:** record votes here +**Decision Date:** YYYY-MM-DD +**Vote Results:** record votes here --- From a02eb129db9d3da6417f1345fce97eb30ff66c86 Mon Sep 17 00:00:00 2001 From: Robert Young Date: Mon, 2 Feb 2026 09:05:15 +1300 Subject: [PATCH 3/5] Add note about approaching the team beforehand Signed-off-by: Robert Young --- GOVERNANCE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index e5008a8..57fffa9 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -77,6 +77,9 @@ To ensure that all potential Code Owners are judged fairly and consistently the 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. From d1afb179ccacecbddeeff2f50f24d7a96052ea0b Mon Sep 17 00:00:00 2001 From: Robert Young Date: Mon, 2 Feb 2026 09:46:18 +1300 Subject: [PATCH 4/5] Amend process so that a Code Owner must announce decision making time This means that there must be buy-in from someone who has a role within Kroxylicious. Seems like a reasonable requirement for a governance change! Signed-off-by: Robert Young --- GOVERNANCE.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 57fffa9..b6d2b78 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -91,15 +91,17 @@ We define the following process for improving the Governance of Kroxylicious. 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`. + `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. **Template:** New GDR files must use the template located - at [decision-records/TEMPLATE.md](decision-records/TEMPLATE.md). -7. **Review:** We follow the [Decision-Making](#decision-making) policy. - * Discussion, objections, and voting occur in the PR comments. + 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 inactive for two months, the PR will be closed. \ No newline at end of file + * **If Rejected/Stale:** If a proposal is rejected or remains stale (no decision making period declared) for two months, the PR will be closed. \ No newline at end of file From 2c3c54aa98d633ff8af1524b4f42b7e398927290 Mon Sep 17 00:00:00 2001 From: Robert Young Date: Tue, 3 Feb 2026 10:15:23 +1300 Subject: [PATCH 5/5] Update process on Proposal rejection We want to record the Rejection of proposals so that we can refer to them in future. Signed-off-by: Robert Young --- GOVERNANCE.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index b6d2b78..5675545 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -104,4 +104,5 @@ We define the following process for improving the Governance of Kroxylicious. 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. \ No newline at end of file + * **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