Skip to content

Commit a6b8ea0

Browse files
authored
Merge pull request #2383 from nodejs/docs/open-governance-and-agent-guidance
docs: adopt open maintainer governance model
2 parents 5679d53 + da3ae41 commit a6b8ea0

File tree

3 files changed

+119
-131
lines changed

3 files changed

+119
-131
lines changed

CONTRIBUTING.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
Thank you for your contribution. Here are a set of guidelines for contributing to the docker-node project.
44

5+
## Governance and decision making
6+
7+
Project governance uses consensus seeking. See [GOVERNANCE.md](./GOVERNANCE.md) for
8+
roles and the decision process.
9+
10+
For governance-sensitive or potentially contentious changes, open a PR (or issue)
11+
with rationale and allow time for async feedback.
12+
13+
If a final decision cannot be reached via consensus seeking, escalation goes to
14+
the Node.js TSC as final arbiter.
15+
516
## Version Updates
617

718
New **Node.js** releases are released as soon as possible.

GOVERNANCE.md

Lines changed: 93 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,120 @@
1-
# Docker Working Group
2-
3-
The Node.js Docker project is jointly governed by a Working Group (WG)
4-
that is responsible for high-level guidance of the project.
5-
6-
The WG has final authority over this project including:
7-
8-
* Technical direction
9-
* Project governance and process (including this policy)
10-
* Contribution policy
11-
* GitHub repository hosting
12-
* Conduct guidelines
13-
* Maintaining the list of additional Collaborators
14-
15-
For the current list of WG members, see the project
16-
[README.md](./README.md#people).
17-
18-
## Collaborators
19-
20-
The [nodejs/docker-node](https://github.com/nodejs/docker-node) GitHub
21-
repository is maintained by the WG and additional Collaborators who
22-
are added by the WG on an ongoing basis.
23-
24-
Individuals making significant and valuable contributions are made
25-
Collaborators and given commit-access to the project. These
26-
individuals are identified by the WG and their addition as
27-
Collaborators is discussed as a pull request to this project's
28-
[README.md](./README.md#people).
29-
30-
_Note:_ If you make a significant contribution and are not considered
31-
for commit-access log an issue or contact a WG member directly.
32-
33-
Modifications of the contents of the
34-
[nodejs/docker-node](https://github.com/nodejs/docker-node) repository
35-
are made on a collaborative basis. Anybody with a GitHub account may
36-
propose a modification via pull request and it will be considered by
37-
the project Collaborators. All pull requests must be reviewed and
38-
accepted by a Collaborator with sufficient expertise who is able to
39-
take full responsibility for the change. In the case of pull requests
40-
proposed by an existing Collaborator, an additional Collaborator is
41-
required for sign-off. Consensus should be sought if additional
42-
Collaborators participate and there is disagreement around a
43-
particular modification. See _Consensus Seeking Process_ below for
44-
further detail on the consensus model used for governance.
45-
46-
Collaborators may opt to elevate significant or controversial
47-
modifications, or modifications that have not found consensus to the
48-
WG for discussion by assigning the ***WG-agenda*** label to a pull
49-
request or issue. The WG should serve as the final arbiter where
50-
required.
51-
52-
For the current list of Collaborators, see the project
53-
[README.md](./README.md#people).
54-
55-
## WG Membership
56-
57-
WG seats are not time-limited. There is no fixed size of the WG.
58-
However, the expected target is between 6 and 12, to ensure adequate
59-
coverage of important areas of expertise, balanced with the ability to
60-
make decisions efficiently.
61-
62-
There is no specific set of requirements or qualifications for WG
63-
membership beyond these rules.
64-
65-
The WG may add, or remove, members to and from the WG. A WG member may
66-
choose to be removed from the WG by voluntary resignation.
67-
68-
Changes to WG membership should be posted in the
69-
[nodejs/docker-node](https://github.com/nodejs/docker-node) repository
70-
as an issue or pull request with the ***WG-agenda*** label followed by
71-
the consensus seeking process described below.
72-
73-
No more than 1/3 of the WG members may be affiliated with the same
74-
employer. If removal or resignation of a WG member, or a change of
75-
employment by a WG member, creates a situation where more than 1/3 of
76-
the WG membership shares an employer, then the situation must be
77-
immediately remedied by the resignation or removal of one or more WG
78-
members affiliated with the over-represented employer(s).
79-
80-
## WG Meetings
81-
82-
This working group does not meet. All discussions and decisions
83-
happen in the
84-
[nodejs/docker-node](https://github.com/nodejs/docker-node) repository
85-
in issues and pull requests. Items that requires a decision by the
86-
WG can be flagged with the ***WG-agenda*** label.
87-
88-
When an issue is tagged with ***WG-agenda***, the WG may invite
89-
persons or representatives from certain projects to participate in the
90-
discussion in a non-voting capacity.
91-
92-
## Consensus Seeking Process
93-
94-
The WG follows a [Consensus
95-
Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making)
96-
decision-making model.
97-
98-
All proposed changes to the project must be made in the form of a pull
99-
request to the repository (directly committing to a production branch
100-
of the repository is not permitted). The consensus seeking process
101-
will then follow via discussion by the WG members on that pull
102-
request. Changes deemed trivial by WG members may be merged instantly
103-
by any WG member, without waiting for consensus, so long as they leave
104-
a note explaining the reason for the merge.
105-
106-
When an agenda item has appeared to reach a consensus any WG member
107-
may ask "Does anyone object?" as a final call for dissent from the
1+
# Governance
2+
3+
The Node.js Docker image project is governed using an **open maintainer model**.
4+
5+
This repository is no longer operated as a Node.js TSC-chartered working group.
6+
Instead, project decisions are made by maintainers in public, in this repository.
7+
8+
## Guiding principles
9+
10+
- Default to public discussion in issues and pull requests.
11+
- Use [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus_decision-making) for decision making.
12+
- Keep decision records in-repo so contributors can follow context.
13+
- Keep a clear path from contributor → collaborator → maintainer.
14+
15+
## Roles
16+
17+
### Contributors
18+
19+
Anyone who proposes changes, reports issues, reviews code, or helps users.
20+
21+
### Collaborators
22+
23+
Collaborators have write access and help with day-to-day maintenance:
24+
25+
- review and merge pull requests
26+
- triage issues
27+
- help drive technical direction
28+
29+
Collaborators are nominated by maintainers via pull request and added after
10830
consensus.
10931

110-
If an agenda item cannot reach a consensus a WG member can call for a
111-
closing vote. The call for a vote must be seconded by a majority of
112-
the WG or else the discussion will continue. Simple majority wins.
32+
### Maintainers
33+
34+
Maintainers are responsible for long-term stewardship of the project:
35+
36+
- facilitate consensus and escalate unresolved final decisions to the Node.js TSC
37+
- governance and membership updates
38+
- release/publishing policy and automation oversight
39+
- security and incident handling for this repository
40+
41+
Current maintainers:
42+
43+
- Laurent Goderre ([LaurentGoderre](https://github.com/LaurentGoderre))
44+
- Simen Bekkhus ([SimenB](https://github.com/SimenB))
45+
- Peter Dave Hello ([PeterDaveHello](https://github.com/PeterDaveHello))
46+
- Rafael Gonzaga ([rafaelgss](https://github.com/rafaelgss))
47+
- Matteo Collina ([mcollina](https://github.com/mcollina))
48+
49+
## Decision making
50+
51+
### Standard changes (code/docs/automation)
52+
53+
- Pull requests are discussed in public.
54+
- A PR from a non-collaborator can be merged by one collaborator.
55+
- A PR from a collaborator should be approved by another collaborator before
56+
merge.
57+
58+
### Maintainer-level decisions
59+
60+
For governance, membership, major policy, or contentious technical changes:
61+
62+
1. Open an issue or PR describing the decision and proposed outcome.
63+
2. Allow time for async feedback (normally at least 5 days).
64+
3. If no unresolved objections remain, a maintainer may merge/close with a
65+
summary.
66+
67+
If a final decision cannot be made using Consensus Seeking, the issue should be
68+
escalated to the Node.js TSC (for example by requesting `tsc-agenda`).
69+
70+
In that case, the Node.js TSC is the final arbiter, consistent with the
71+
[TSC Charter](https://github.com/nodejs/TSC/blob/main/TSC-Charter.md).
72+
73+
## Meetings
74+
75+
The project primarily operates asynchronously in GitHub issues and pull
76+
requests. If maintainers hold synchronous meetings, outcomes should be posted
77+
publicly in this repository.
78+
79+
## Membership changes
80+
81+
Collaborator and maintainer changes are proposed via pull request to `README.md`
82+
and/or this file, with rationale included in the PR description.
83+
84+
Project access should be managed via the
85+
[@nodejs/docker team](https://github.com/orgs/nodejs/teams/docker) and kept in
86+
sync with Node.js collaborator tooling.
11387

114-
<a id="developers-certificate-of-origin"></a>
88+
Maintainers can also move inactive members to emeritus status through the same
89+
public process.
11590

11691
## Developer's Certificate of Origin 1.1
11792

11893
By making a contribution to this project, I certify that:
11994

120-
* (a) The contribution was created in whole or in part by me and I
95+
- (a) The contribution was created in whole or in part by me and I
12196
have the right to submit it under the open source license
12297
indicated in the file; or
12398

124-
* (b) The contribution is based upon previous work that, to the best
99+
- (b) The contribution is based upon previous work that, to the best
125100
of my knowledge, is covered under an appropriate open source
126101
license and I have the right under that license to submit that
127-
work with modifications, whether created in whole or in part
102+
work with modifications, whether created wholly or in part
128103
by me, under the same open source license (unless I am
129104
permitted to submit under a different license), as indicated
130105
in the file; or
131106

132-
* (c) The contribution was provided directly to me by some other
133-
person who certified (a), (b) or (c) and I have not modified
107+
- (c) The contribution was provided directly to me by some other
108+
person who certified (a), (b), or (c) and I have not modified
134109
it.
135110

136-
* (d) I understand and agree that this project and the contribution
111+
- (d) I understand and agree that this project and the contribution
137112
are public and that a record of the contribution (including all
138113
personal information I submit with it, including my sign-off) is
139114
maintained indefinitely and may be redistributed consistent with
140115
this project or the open source license(s) involved.
141116

142117
## Code of Conduct
143118

144-
The Node.js Code of Conduct, which applies to this project, can be found at
119+
The Node.js Code of Conduct applies to this project:
145120
<https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md>.

README.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ The official Node.js docker image, made with love by the node community.
3131
- [Supported Docker versions](#supported-docker-versions)
3232
- [Supported Node.js versions](#supported-nodejs-versions)
3333
- [Governance and Current Members](#governance-and-current-members)
34-
- [Docker Working Group Members](#docker-working-group-members)
35-
- [Docker Working Group Collaborators](#docker-working-group-collaborators)
34+
- [Docker Maintainers](#docker-maintainers)
35+
- [Collaborators](#collaborators)
3636
- [Emeritus](#emeritus)
37-
- [Docker Working Group Members](#docker-working-group-members-1)
37+
- [Former Maintainers](#former-maintainers)
3838

3939
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
4040

@@ -248,25 +248,27 @@ This project will support Node.js versions as still under active support as per
248248

249249
## Governance and Current Members
250250

251-
The Node.js Docker Image is governed by the Docker Working Group. See
251+
The Node.js Docker Image is governed by an open maintainer model. See
252252
[GOVERNANCE.md](GOVERNANCE.md)
253-
to learn more about the group's structure and [CONTRIBUTING.md](CONTRIBUTING.md) for guidance
254-
about the expectations for all contributors to this project.
253+
for project roles and decision-making, and [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidance. If a final decision cannot be reached using consensus seeking, the Node.js TSC is the final arbiter.
255254

256-
### Docker Working Group Members
257-
258-
- Hans Kristian Flaatten ([starefossen](https://github.com/starefossen))
259-
- Hugues Malphettes ([hmalphettes](https://github.com/hmalphettes))
260-
261-
### Docker Working Group Collaborators
255+
### Docker Maintainers
262256

263257
- Laurent Goderre ([LaurentGoderre](https://github.com/LaurentGoderre))
264258
- Simen Bekkhus ([SimenB](https://github.com/SimenB))
265259
- Peter Dave Hello ([PeterDaveHello](https://github.com/PeterDaveHello))
260+
- Rafael Gonzaga ([rafaelgss](https://github.com/rafaelgss))
261+
- Matteo Collina ([mcollina](https://github.com/mcollina))
262+
263+
### Collaborators
264+
265+
Additional collaborators are managed via the
266+
[@nodejs/docker team](https://github.com/orgs/nodejs/teams/docker).
267+
266268

267269
### Emeritus
268270

269-
#### Docker Working Group Members
271+
#### Former Maintainers
270272

271273
- Mikeal Rogers ([mikeal](https://github.com/mikeal))
272274
- Christopher Horrell ([chorrell](https://github.com/chorrell))

0 commit comments

Comments
 (0)