@@ -4,9 +4,18 @@ This repository describes the people and processes we use to govern GHC.
It is a description of how things currently work, but should be seen as a starting point rather than holy writ. Going forward, it will live and evolve in `https://gitlab.haskell.org/ghc/ghc-hq`. We will continue to adopt new practices, subject to their feasibility and the value they bring to Haskell, GHC, and the team themselves. Your feedback and suggestions are quite welcome.
## 1. The GHC Team
## 1. Contributing to GHC
GHC is developed and maintained by the **GHC Team**. Anyone can join the team!
GHC is an open source project, and anyone can contribute to it. For example
* You can file a bug report.
* You can offer a patch that fixes a bug, or improves documentation
[This page describes how to get started as a contributor](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing).
## 2. The GHC Team
If you want to become part of the core group that develops and maintains GHC, you can
join the **GHC Team**. Anyone can join the team!
Being a member of the GHC Team carries power and responsibility:
...
...
@@ -19,13 +28,13 @@ Being a member of the GHC Team carries power and responsibility:
* Monitor, and when appropriate contribute to, the [`ghc-devs` mailing list](https://mail.haskell.org/mailman/listinfo/ghc-devs).
* Willingness to undertake some specific obligations, to take responsibility for some specific part of GHC
### 1.1 Membership
### 2.1 Membership
* We keep the GHC Team membership on a page at $REPOSITORY.
* People add themselves, via a pull request, along with the responsibilities they want to undertake. The only precondition is having authored a recent merge request that has landed. Joining the team in this way confers the ability to merge other patches.
* They can remove themselves; or (in the case of an inactive member) we can just move them to an Archive section at the end.
### 1.2 The GHC team weekly meeting
### 2.2 The GHC team weekly meeting
The GHC team weekly meeting lasts an hour, and offers each member of the team an opportunity to
...
...
@@ -35,7 +44,7 @@ The GHC team weekly meeting lasts an hour, and offers each member of the team an
Being a member of the GHC team gives you a standing invitation to attend the weekly meeting. We might have to review this if the meeting became too large, but given people's busy-ness that seems unlikely.
## 2. GHC HQ group
## 3. GHC HQ group
People sometimes ask questions like "who ultimately makes decisions about GHC?" or "how can I get the GHC team to do X?".
...
...
@@ -47,22 +56,22 @@ As an open-source project, *decisions about GHC are primarily taken by consensus
* to delegate (and un-delegate) authority for taking decisions in a particular area, or running a particular process (e.g. release management)
Note that this only applies to the GHC project and its implementation:
* Decisions about the *language* that GHC compiles fall in the remit of the GHC Steering Committee.
* Decisions about the language that GHC compiles fall in the remit of the GHC Steering Committee.
* Decisions about GHC’s core library design are the territory of the Core Libraries Committee.
### 2.1 What sort of decisions does the GHC HQ group take?
### 3.1 What sort of decisions does the GHC HQ group take?
Examples:
* Decide on a strategy for platform support
* Decide where to host the GHC code repository and CI
* Delegate authority to GHC team members for specific purposes (e.g. code review of particular subsystems, CI maintenance and improvements, etc)
* Decide not to decide about something. For example, a proposal might be good in principle but we judge that we do not have the resources to evaluate it in depth. These proposals don't deserve a flat-out "no".
* Decide not to decide about something. For example, a proposal might be good in principle but we judge that we do not have the resources to evaluate it in depth.
* Resolve a technical disagreement between GHC Team members, e.g. about whether a particular merge request should be merged.
* Approve code review guidelines or coding style guidelines
* Adding new members to the GHC HQ group
### 2.2. Who is in the GHC HQ group and how does it operate?
### 3.2. Who is in the GHC HQ group and how does it operate?
The GHC HQ group is a small team currently consisting of
...
...
@@ -73,7 +82,7 @@ The GHC HQ group is a small team currently consisting of
The group's charter (i.e. this document) and its decisions are held
in its repository, via its [issue tracker](https://gitlab.haskell.org/ghc/ghc-hq/-/issues).
### 2.3 How can you bring something to the attention of GHC HQ?
### 3.3 How can you bring something to the attention of GHC HQ?
Anyone can ask GHC HQ to make a decision about something:
* Open an issue on the [GHC HQ repo](https://gitlab.haskell.org/ghc/ghc-hq/-/issues)