Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Contributing

<!-- TOC -->
* [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)
<!-- TOC -->

## Code of Conduct

This project and everyone participating in it is governed by the [Code of Conduct](CODE_OF_CONDUCT.md).
Expand All @@ -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
Expand Down
51 changes: 46 additions & 5 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
<!-- TOC -->
* [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)
<!-- TOC -->

## Roles and Responsibilities

Expand Down Expand Up @@ -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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a title it works, but I'm not really liking GIP, I know it echos KIP but we can't really re-use KIP either.

Copy link
Member Author

@robobario robobario Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some options:

  • KRoxylicious IMprovement Process KRIMP.
  • Kroxylicious Governance IMprovement Process KGIMP


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.
Comment on lines +86 to +89
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think collision detection needs to be eager rather than on merge. We don't want people discussing GIP-012 and that potentially referring to two different things.

Also if we think about how this works in Kafka the number is allocated eagerly regardless of outcome.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep the ids are definitely a pain, not sure what would be a cheap fix, create an issue first and use the issue number? Have an action workflow that checks your id is unique across PRs? Create PR with placeholder than edit in the PR number.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

decided in call to leave id selection as a Proposer responsibility, we don't anticipate a flood of these.

I think the process as described is eager, you pick a unique id at Proposal creation time. The note tells you what to do if you mess it up, update the id in the newer PR.

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.
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions decision-records/TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -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