-
Notifications
You must be signed in to change notification settings - Fork 136
/
Copy pathTSC-Charter.md
executable file
·184 lines (142 loc) · 8.26 KB
/
TSC-Charter.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# Technical Steering Committee (TSC) Charter
## Section 1. Guiding Principle
The Node.js project is part of the OpenJS Foundation which
operates transparently, openly, collaboratively, and ethically.
Project proposals, timelines, and status must not merely be
open, but also easily visible to outsiders.
## Section 2. Evolution of OpenJS Foundation Governance
Most large, complex open source communities have both a business and a
technical governance model. Technical leadership for the projects
within the OpenJS Foundation is delegated to the projects through
their project charters by the OpenJS Cross Project Council (CPC).
In the case of the Node.js project, it is delegated to the Node.js
Technical Steering Committee (“TSC”). OpenJS Foundation’s business
leadership is the Board of Directors (the “Board”).
This Technical Steering Committee Charter reflects a carefully
constructed balanced role for the TSC and the CPC in the governance of
the OpenJS Foundation. The charter amendment process is for the TSC to
propose changes using simple majority of the full TSC, the proposed
changes being subject to review and approval by the CPC. The CPC may
additionally make amendments to the TSC charter at any time, though the
CPC will not interfere with day-to-day discussions, votes or meetings
of the TSC.
## Section 3. Establishment of the TSC
TSC memberships are not time-limited. There is no maximum size of the TSC.
The size is expected to vary in order to ensure adequate coverage of important
areas of expertise, balanced with the ability to make decisions efficiently.
The TSC must have at least four members.
There is no specific set of requirements or qualifications for TSC
membership beyond these rules. The TSC may add additional members to the
TSC by a standard TSC motion. A TSC member may be removed from the
TSC by voluntary resignation, by a standard TSC motion, or in accordance to the
participation rules described below.
Changes to TSC membership should be posted in the agenda, and may be suggested
as any other agenda item.
No more than one-fourth of the TSC members may be affiliated with the
same employer. If removal or resignation of a TSC member, or a change of
employment by a TSC member, creates a situation where more than
one-fourth of the TSC membership shares an employer, then the situation
must be immediately remedied by the resignation or removal of one or more
TSC members affiliated with the over-represented employer(s).
The TSC may, at its discretion, invite any number of non-voting observers to
participate in the public portion of TSC discussions and meetings.
The TSC shall meet regularly using tools that enable participation by the
community (e.g. weekly on a Google Hangout On Air, or through any other
appropriate means selected by the TSC). The meeting shall be directed by
the TSC Chairperson. Responsibility for directing individual meetings may be
delegated by the TSC Chairperson to any other TSC member. Minutes or an
appropriate recording shall be taken and made available to the community
through accessible public postings.
TSC members are expected to regularly participate in TSC activities.
A TSC member is automatically removed from the TSC if, during a 3-month period,
all of the following are true:
* They attend fewer than 25% of the regularly scheduled meetings.
* They do not participate in any TSC votes.
## Section 4. Responsibilities of the TSC
Subject to such policies as may be set by the CPC, the TSC is
responsible for all technical development within the Node.js project,
including:
* Setting release dates.
* Release quality standards.
* Technical direction.
* Project governance and process.
* GitHub repository hosting.
* Conduct guidelines.
* Maintaining the list of additional Collaborators.
* Development process and any coding standards.
* Mediating technical conflicts between Collaborators or Foundation
projects.
The TSC will define Node.js project’s release vehicles.
## Section 5. Node.js Project Operations
The TSC will establish and maintain a development process for the Node.js
project. The development process will establish guidelines
for how the developers and community will operate. It will, for example,
establish appropriate timelines for TSC review (e.g. agenda items must be
published at least a certain number of hours in advance of a TSC
meeting).
The TSC and entire technical community will follow any processes as may
be specified by the OpenJS Foundation Board relating to the intake and license compliance
review of contributions, including the OpenJS Foundation IP Policy.
## Section 6. Elections
Leadership roles in the Node.js project will be peer elected
representatives of the community.
For election of persons (such as the TSC Chairperson), a multiple-candidate
method should be used, such as:
* [Condorcet][] or
* [Single Transferable Vote][]
Multiple-candidate methods may be reduced to simple election by plurality
when there are only two candidates for one position to be filled. No
election is required if there is only one candidate and no objections to
the candidate's election. Elections shall be done within the projects by
the Collaborators active in the project.
The TSC will elect from amongst voting TSC members a TSC Chairperson to
work on building an agenda for TSC meetings and a OpenJS
Cross Project Council (CPC) voting member to represent the TSC in
the OpenJS Foundation for a term of one year. The Chair and voting CPC
member may be (but are not required to be) the same person.
The TSC shall hold annual elections to select a TSC Chairperson and
voting CPC member; there are no limits on the number
of terms a TSC Chairperson or voting CPC member may serve.
## Section 7. Voting
For internal project decisions, Collaborators shall operate under Lazy
Consensus. The TSC shall establish appropriate guidelines for
implementing Lazy Consensus (e.g. expected notification and review time
periods) within the development process.
The TSC follows a [Consensus Seeking][] decision making model. When an agenda
item has appeared to reach a consensus the moderator will ask "Does anyone
object?" as a final call for dissent from the consensus.
If an agenda item cannot reach a consensus a TSC member can call for
either a closing vote or a vote to table the issue to the next meeting.
The call for a vote must be seconded by a majority of the TSC or else the
discussion will continue.
For all votes, a simple majority of all TSC members for, or against, the issue
wins. A TSC member may choose to participate in any vote through abstention.
All changes to this charter must be approved by the CPC.
## Section 8. Project Roles
The Node.js git repository is maintained by the TSC and
additional Collaborators who are added by the TSC on an ongoing basis.
Individuals making significant and valuable contributions,
“Contributor(s)”, are made Collaborators and given commit-access to the
project. These individuals are identified by the TSC and their addition
as Collaborators is discussed during a TSC meeting. Modifications of the
contents of the git repository are made on a collaborative basis as defined in
the development process.
Collaborators may opt to elevate significant or controversial
modifications, or modifications that have not found consensus to the TSC
for discussion by assigning the `tsc-agenda` tag to a pull request or
issue. The TSC should serve as the final arbiter where required. The TSC
will maintain and publish a list of current Collaborators, as
well as a development process guide for Collaborators and Contributors
looking to participate in the development effort.
## Section 9. Definitions
* **Contributors**: contribute code or other artifacts, but do not have
the right to commit to the code base. Contributors work with the
project’s Collaborators to have code committed to the code base. A
Contributor may be promoted to a Collaborator by the TSC. Contributors should
rarely be encumbered by the TSC and never by the CPC or OpenJS Foundation Board.
* **Project**: a technical collaboration effort, e.g. a subsystem, that
is organized through the project creation process and approved by the
TSC.
[Condorcet]: https://en.wikipedia.org/wiki/Condorcet_method
[Consensus Seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making
[Single Transferable Vote]: https://en.wikipedia.org/wiki/Single_transferable_vote