Skip to content

Commit 3af7f30

Browse files
mikealchrisdickinson
authored andcommitted
Initial documentation for working groups.
1 parent 513724e commit 3af7f30

File tree

1 file changed

+296
-0
lines changed

1 file changed

+296
-0
lines changed

WORKING_GROUPS.md

+296
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
# io.js Working Groups
2+
3+
io.js Working Groups are autonomous projects created by the TC.
4+
5+
Working Groups can be formed at any time but must be ratified by the TC.
6+
Once formed the work defined in the Working Group charter is the
7+
responsibility of the WG rather than the TC.
8+
9+
It is important that Working Groups are not formed pre-maturely. Working
10+
Groups are not formed to *begin* a set of tasks but instead are formed
11+
once that work is already underway and the contributors
12+
think it would benefit from being done as an autonomous project.
13+
14+
If the work defined in a Working Group charter is completed the Working
15+
Group should be dissolved and the responsibility for governance absorbed
16+
back in to the TC.
17+
18+
## Current Working Groups
19+
20+
### Website
21+
22+
The website working group's purpose is to build and maintain a public
23+
website for the `io.js` project.
24+
25+
Its responsibilities are:
26+
* Develop and maintain a build and automation system for `iojs.org`.
27+
* Ensure the site is regularly updated with changes made to `io.js` like
28+
releases and features.
29+
* Foster and enable a community of translators.
30+
31+
The current members can be found in their
32+
[README](https://github.com/iojs/website#current-project-team-members).
33+
34+
### Streams
35+
36+
The streams working group's purpose is to improve the existing Stream
37+
implementation, in accordance with the communities needs and feedback.
38+
39+
Its responsibilities are:
40+
* Produce a living `Stream` standard.
41+
* Create a reference implementation as `readable-stream`.
42+
* Recommend versions of `readable-stream` to be included in `io.js`
43+
* Collaborate with the WHATWG Stream standard to ensure an optimal level
44+
of compatibility between the two standards.
45+
46+
Initial members are:
47+
* @chrisdickinson
48+
* @isaacs
49+
* @rvagg
50+
* @TooTallNate
51+
* @Raynos
52+
* @calvinmetcalf
53+
* @substack
54+
* @sonewman
55+
* @mafintosh
56+
* @timgestson
57+
* @deoxxa
58+
* @maxogden
59+
* @feross
60+
* @mafintosh
61+
* @calvinmetcalf
62+
* @sonewman
63+
* @domenic
64+
* @timgestson
65+
66+
67+
### Build
68+
69+
The build working group's purpose is to create and maintain a
70+
distributed automation infrastructure.
71+
72+
Its responsibilities are:
73+
* Produce Packages for all target platforms.
74+
* Run tests.
75+
* Run performance testing and comparisons.
76+
77+
The current members can be found in their
78+
[README](https://github.com/iojs/build#people).
79+
80+
## Starting a WG
81+
82+
A Working Group is established by first defining a charter that can be
83+
ratified by the TC. A charter is a *statement of purpose*, a
84+
*list of responsibilities* and a *list of initial membership*.
85+
86+
A working group needs 5 initial members. These should be individuals
87+
already undertaking the work described in the charter.
88+
89+
The list of responsibilities should be specific. Once established these
90+
responsibilities are no longer governed by the TC and therefor should
91+
not be broad or subjective.
92+
93+
If the responsibilities described in the charter are currently
94+
undertaken by another WG then the charter will additionally have to be
95+
ratified by that WG.
96+
97+
You can submit the WG charter for ratification by sending
98+
a Pull Request to this document which adds the it to the
99+
list of current Working Groups. Once ratified the list of
100+
members should be maintained in the Working Group's
101+
README.
102+
103+
## Bootstrap Governance
104+
105+
Once the TC ratifies a charter the WG inherits the following
106+
documentation for governance, contribution, conduct and an MIT
107+
LICENSE. The WG is free to change these documents through their own
108+
governance process, hence the term "bootstrap."
109+
110+
### *[insert WG name]* Working Group
111+
112+
The io.js *[insert WG name]* is jointly governed by a Working Group (WG)
113+
which is responsible for high-level guidance of the project.
114+
115+
The WG has final authority over this project including:
116+
117+
* Technical direction
118+
* Project governance and process (including this policy)
119+
* Contribution policy
120+
* GitHub repository hosting
121+
* Conduct guidelines
122+
* Maintaining the list of additional Collaborators
123+
124+
For the current list of WG members, see the project
125+
[README.md](./README.md#current-project-team-members).
126+
127+
### Collaborators
128+
129+
The [iojs/website](https://github.com/iojs/website) GitHub repository is
130+
maintained by the WG and additional Collaborators who are added by the
131+
WG on an ongoing basis.
132+
133+
Individuals making significant and valuable contributions are made
134+
Collaborators and given commit-access to the project. These
135+
individuals are identified by the WG and their addition as
136+
Collaborators is discussed during the weekly WG meeting.
137+
138+
_Note:_ If you make a significant contribution and are not considered
139+
for commit-access log an issue or contact a WG member directly and it
140+
will be brought up in the next WG meeting.
141+
142+
Modifications of the contents of the iojs/website repository are made on
143+
a collaborative basis. Anybody with a GitHub account may propose a
144+
modification via pull request and it will be considered by the project
145+
Collaborators. All pull requests must be reviewed and accepted by a
146+
Collaborator with sufficient expertise who is able to take full
147+
responsibility for the change. In the case of pull requests proposed
148+
by an existing Collaborator, an additional Collaborator is required
149+
for sign-off. Consensus should be sought if additional Collaborators
150+
participate and there is disagreement around a particular
151+
modification. See _Consensus Seeking Process_ below for further detail
152+
on the consensus model used for governance.
153+
154+
Collaborators may opt to elevate significant or controversial
155+
modifications, or modifications that have not found consensus to the
156+
WG for discussion by assigning the ***WG-agenda*** tag to a pull
157+
request or issue. The WG should serve as the final arbiter where
158+
required.
159+
160+
For the current list of Collaborators, see the project
161+
[README.md](./README.md#current-project-team-members).
162+
163+
### WG Membership
164+
165+
WG seats are not time-limited. There is no fixed size of the WG.
166+
However, the expected target is between 6 and 12, to ensure adequate
167+
coverage of important areas of expertise, balanced with the ability to
168+
make decisions efficiently.
169+
170+
There is no specific set of requirements or qualifications for WG
171+
membership beyond these rules.
172+
173+
The WG may add additional members to the WG by unanimous consensus.
174+
175+
A WG member may be removed from the WG by voluntary resignation, or by
176+
unanimous consensus of all other WG members.
177+
178+
Changes to WG membership should be posted in the agenda, and may be
179+
suggested as any other agenda item (see "WG Meetings" below).
180+
181+
If an addition or removal is proposed during a meeting, and the full
182+
WG is not in attendance to participate, then the addition or removal
183+
is added to the agenda for the subsequent meeting. This is to ensure
184+
that all members are given the opportunity to participate in all
185+
membership decisions. If a WG member is unable to attend a meeting
186+
where a planned membership decision is being made, then their consent
187+
is assumed.
188+
189+
No more than 1/3 of the WG members may be affiliated with the same
190+
employer. If removal or resignation of a WG member, or a change of
191+
employment by a WG member, creates a situation where more than 1/3 of
192+
the WG membership shares an employer, then the situation must be
193+
immediately remedied by the resignation or removal of one or more WG
194+
members affiliated with the over-represented employer(s).
195+
196+
### WG Meetings
197+
198+
The WG meets weekly on a Google Hangout On Air. The meeting is run by
199+
a designated moderator approved by the WG. Each meeting should be
200+
published to YouTube.
201+
202+
Items are added to the WG agenda which are considered contentious or
203+
are modifications of governance, contribution policy, WG membership,
204+
or release process.
205+
206+
The intention of the agenda is not to approve or review all patches,
207+
that should happen continuously on GitHub and be handled by the larger
208+
group of Collaborators.
209+
210+
Any community member or contributor can ask that something be added to
211+
the next meeting's agenda by logging a GitHub Issue. Any Collaborator,
212+
WG member or the moderator can add the item to the agenda by adding
213+
the ***WG-agenda*** tag to the issue.
214+
215+
Prior to each WG meeting the moderator will share the Agenda with
216+
members of the WG. WG members can add any items they like to the
217+
agenda at the beginning of each meeting. The moderator and the WG
218+
cannot veto or remove items.
219+
220+
The WG may invite persons or representatives from certain projects to
221+
participate in a non-voting capacity.
222+
223+
The moderator is responsible for summarizing the discussion of each
224+
agenda item and send it as a pull request after the meeting.
225+
226+
### Consensus Seeking Process
227+
228+
The WG follows a
229+
[Consensus Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making)
230+
decision making model.
231+
232+
When an agenda item has appeared to reach a consensus the moderator
233+
will ask "Does anyone object?" as a final call for dissent from the
234+
consensus.
235+
236+
If an agenda item cannot reach a consensus a WG member can call for
237+
either a closing vote or a vote to table the issue to the next
238+
meeting. The call for a vote must be seconded by a majority of the WG
239+
or else the discussion will continue. Simple majority wins.
240+
241+
Note that changes to WG membership require unanimous consensus. See
242+
"WG Membership" above.
243+
244+
### Developer's Certificate of Origin 1.0
245+
246+
By making a contribution to this project, I certify that:
247+
248+
* (a) The contribution was created in whole or in part by me and I
249+
have the right to submit it under the open source license indicated
250+
in the file; or
251+
* (b) The contribution is based upon previous work that, to the best
252+
of my knowledge, is covered under an appropriate open source license
253+
and I have the right under that license to submit that work with
254+
modifications, whether created in whole or in part by me, under the
255+
same open source license (unless I am permitted to submit under a
256+
different license), as indicated in the file; or
257+
* (c) The contribution was provided directly to me by some other
258+
person who certified (a), (b) or (c) and I have not modified it.
259+
260+
261+
### Code of Conduct
262+
263+
This Code of Conduct is adapted from [Rust's wonderful
264+
CoC](https://github.com/rust-lang/rust/wiki/Note-development-policy#conduct).
265+
266+
* We are committed to providing a friendly, safe and welcoming
267+
environment for all, regardless of gender, sexual orientation,
268+
disability, ethnicity, religion, or similar personal characteristic.
269+
* Please avoid using overtly sexual nicknames or other nicknames that
270+
might detract from a friendly, safe and welcoming environment for
271+
all.
272+
* Please be kind and courteous. There's no need to be mean or rude.
273+
* Respect that people have differences of opinion and that every
274+
design or implementation choice carries a trade-off and numerous
275+
costs. There is seldom a right answer.
276+
* Please keep unstructured critique to a minimum. If you have solid
277+
ideas you want to experiment with, make a fork and see how it works.
278+
* We will exclude you from interaction if you insult, demean or harass
279+
anyone. That is not welcome behaviour. We interpret the term
280+
"harassment" as including the definition in the [Citizen Code of
281+
Conduct](http://citizencodeofconduct.org/); if you have any lack of
282+
clarity about what might be included in that concept, please read
283+
their definition. In particular, we don't tolerate behavior that
284+
excludes people in socially marginalized groups.
285+
* Private harassment is also unacceptable. No matter who you are, if
286+
you feel you have been or are being harassed or made uncomfortable
287+
by a community member, please contact one of the channel ops or any
288+
of the TC members immediately with a capture (log, photo, email) of
289+
the harassment if possible. Whether you're a regular contributor or
290+
a newcomer, we care about making this community a safe place for you
291+
and we've got your back.
292+
* Likewise any spamming, trolling, flaming, baiting or other
293+
attention-stealing behaviour is not welcome.
294+
* Avoid the use of personal pronouns in code comments or
295+
documentation. There is no need to address persons when explaining
296+
code (e.g. "When the developer")

0 commit comments

Comments
 (0)