Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: charter the Release working group #223

Closed
wants to merge 17 commits into from
Closed
Show file tree
Hide file tree
Changes from 11 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
39 changes: 39 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<a id="developers-certificate-of-origin"></a>
## Developer's Certificate of Origin 1.1

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

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

* (b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

* (c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

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


### Moderation Policy

The [Node.js Moderation Policy] applies to this WG.

### Code of Conduct

The [Node.js Code of Conduct][] applies to this WG.

[Node.js Code of Conduct]: https://github.com/nodejs/TSC/blob/master/CODE_OF_CONDUCT.md
[Node.js Moderation Policy]: https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md

133 changes: 133 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Release Working Group

The Node.js Release Working Group (WG) maintains oversight
over the Node.js Release, Long Term Support (LTS) and
Canary in the Gold Mine (CITGM) teams. It manages the release
Copy link
Member

Choose a reason for hiding this comment

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

CITGM -> CitGM everywhere

Copy link
Member Author

Choose a reason for hiding this comment

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

done

and long term support schedule and policies for all Node.js releases.

The WG has final authority over Releases including:

* Release process and tools.
* Content for all releases.

Choose a reason for hiding this comment

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

Just to clarify, does this mean that even if the CTC were to vote on landing something in a release, this WG could override that?

Copy link
Member Author

Choose a reason for hiding this comment

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

I believe that using the standard delegation of responsibility from the CTC to the WG that is correct. As a final measure the CTC could dissolve the WG in order to take back responsibility if the WG is not acting in accordance with the CTC's vision.

Copy link
Member

Choose a reason for hiding this comment

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

Yep, generally we've always operated on the model that the person actually doing the release has the final say about what is included in the release. The CTC may decide to include something, but if the releaser finds an issue that would block the release, they should have the freedom to omit it until the issue is resolved.

Copy link
Member

Choose a reason for hiding this comment

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

This puts the Release Working Group above the CTC. If it is the Release WG that can decide what composes a release, they can decide (autonomously) to pull a semver-major commit they do not agree with from a semver-major release. In similar fashion, they can decide to put something in that is not present in nodejs/node.

All of this is very hypothetical, but hypothetical things happened before so I would like to avoid conflicts before they happen.

I do agree that the current model is the right model and they should be able to omit things, but this sentence is too broad.

How about:

Content for all releases, according to the contributions in nodejs/node and semver levels.

I hope it clarifies what I mean.

Copy link
Contributor

Choose a reason for hiding this comment

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

@mcollina that is the explicit intention, and true of all WGs (as I understand it). See @mhdawson 's comment at #223 (comment). The CTC delegates to the Release WG on the matter of what goes in releases. If its unhappy about what the WG does, it has power to dissolve the WG. If CTC members have strong feelings about what the Release WG should do... they should join the WG. In your example, if a commit is pulled because the WG doesn't agree with its content (as opposed to it not passing CI, not backporting clean, or some other reason involving the release process), the WG would be overstepping its bounds, and I assume the CTC would dissolve it.

Copy link
Member

Choose a reason for hiding this comment

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

Agreed on dissolving. However if we consider other WGs, this WG will have the responsibility to what is Node in the hand of our users, this is very different to most of the other WGs.

... the WG would be overstepping its bounds ...

Yes, exactly. I'm just pointing it out that those bounds are not written here. It might not be on this point, but a generic mention to them would be welcomed, maybe at the top.

Copy link
Contributor

Choose a reason for hiding this comment

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

Again, my understanding (but I can be wrong on this) is that it is the same as most WGs. Streams has final authority about what goes into readable_stream, for example. You've never done anything objectionable, so there has never been conflict, and no one expects there to be, but its the streams WG who decides on what happens with streams. Maybe the WG charters need to change to saying that anything they decide can be overruled by a vote of CTC without dissolving the WG?

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 that is already part of how things are set up if there is a conflict, now that I think about it. Good to know, thanks.

I am extra careful here, because this is the most critical activity of the Node.js process.

Copy link
Member Author

Choose a reason for hiding this comment

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

Agreed with the caution.

* Schedule for all releases.
Copy link
Member

Choose a reason for hiding this comment

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

As an example, a lot of people contributed to the discussion to delay Node 8 for a month. Would have it been the sole Release WG responsibility to decide so?

Copy link
Member

Choose a reason for hiding this comment

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

Perhaps changing the wording here to * Schedule for all releases (subject to CTC approval)

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 we should delegate it to the Release WG completely or not at all. "subject to CTC approval" creates more questions than it answers.

Copy link
Member

Choose a reason for hiding this comment

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

(Also: I read this as delegating it entirely to the Release WG and I am 👍 on that. If people want to have input on release schedules, then the Release WG is the place to be.)

* Contribution policy for the Release repository.
* Conduct guidelines for the Working group.
Copy link
Contributor

Choose a reason for hiding this comment

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

isn't CoC common across all WGs?

Copy link
Member Author

Choose a reason for hiding this comment

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

It is up to the WG to either adopt the standard or define their own.

Copy link
Member

Choose a reason for hiding this comment

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

I would include in this list:

* Administration of Long Term Support policy for all releases

Copy link
Contributor

Choose a reason for hiding this comment

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

+1 to @jasnell's comment

Copy link
Member Author

Choose a reason for hiding this comment

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

added

Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure this is worth it? Seems to be easier to have conduct just CTC guided?


For the current list of WG members, see the project README.md.

## Collaborators

The Release GitHub repository is maintained by the WG (all WG
members are Collaborators for the Release repository) and additional
Collaborators who are added by the WG on an ongoing basis.

Individuals making significant and valuable contributions are made
Collaborators and given commit-access to the project. These individuals
Copy link
Contributor

Choose a reason for hiding this comment

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

What is "the project" here?

Copy link
Member Author

Choose a reason for hiding this comment

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

It is the LTS repo to be remained to the Release repo. I'll change from project to Release repository.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

are identified by the WG and their addition as Collaborators is discussed
during the weekly WG meeting.
Copy link
Contributor

Choose a reason for hiding this comment

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

s/weekly/

No longer a weekly meeting

Copy link
Member Author

Choose a reason for hiding this comment

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

Done


**Note**: If you make a significant contribution and are not considered for
commit access, log an issue or contact a WG member directly and it will
Copy link
Contributor

Choose a reason for hiding this comment

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

I am not sure this is how the release group should work, was this copied verbatim from the core contribution policy?

Copy link
Member

Choose a reason for hiding this comment

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

Seems like a similar problem that other WGs have—how do you define contributions and how should that be measured to determine membership? Many of them are just "you join enough meetings, hang around and offer to lend a hand where needed and you can join" (Build is a bit like this), or simply just "want to join? sure!". Have we solved this wording anywhere else in our WGs that we can reapply here because the core rules don't seem to apply.

Copy link
Member Author

Choose a reason for hiding this comment

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

This related to the Release repo where issues/minutes/etc are captured not related to releases themselves so I think it still applies.

Copy link
Member Author

Choose a reason for hiding this comment

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

We have the same wording in the benchmarking WG, the post-mortem WG, Intl, the now inactive test WG used similar wording.

Not a WG but one which is different is the community committee, which uses the participation rules. Basically get involved and once you meet the participation rules you will be added. The rules are:

In the case where an individual CC member -- within any three month period -- attends fewer than 25% of the regularly scheduled meetings, does not participate in CC discussions, and does not participate in CC votes, the member shall be automatically removed from the CC. The member may be invited to continue attending CC meetings as an observer.

In my opinion the existing wording is pretty generic in that "significant" can be determined by the WG and I don't think there have been problems with people asking to be added/getting refused.

So I'm open to a better suggestion if someone has one but I'm also fine with what we have already.

be brought up in the next WG meeting.

Modifications of the contents of the Release repository are made
on a collaborative basis. Anybody with a GitHub account may propose a
modification via pull request and it will be considered by the project
Collaborators. All pull requests must be reviewed and accepted by a
Collaborator with sufficient expertise who is able to take full responsibility
for the change. In the case of pull requests proposed by an existing
Collaborator, an additional Collaborator is required for sign-off. Consensus
should be sought if additional Collaborators participate and there is
disagreement around a particular modification. See Consensus Seeking
Process below for further detail on the consensus model used for governance.

Collaborators may opt to elevate significant or controversial modifications,
or modifications that have not found consensus to the WG for discussion by
assigning the WG-agenda tag to a pull request or issue. The WG should serve
as the final arbiter where required.

## WG Membership

WG seats are not time-limited. There is no fixed size of the WG.

There is no specific set of requirements or qualifications
for WG membership beyond these rules.

The WG may add additional members to the WG by unanimous consensus.

A WG member may be removed from the WG by voluntary resignation,
or by unanimous consensus of all other WG members. If a member is
Copy link
Member

Choose a reason for hiding this comment

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

Do we define unanimous consensus to mean "lots of people agreed, and no-one disagreed within a certain timeframe"? Because otherwise if (for example) two people in the WG have moved on, then we need Person 1 to agree to remove Person 2 (which might never happen). I feel this is what we do in practice, but IDK if it's defined anywhere.

Copy link
Member Author

Choose a reason for hiding this comment

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

Add words to capture its the consensus of the active participants in the discussion.

Copy link
Member

@Trott Trott Aug 3, 2017

Choose a reason for hiding this comment

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

Drop "unanimous". If you really want, you can define "consensus" somewhere as "no participants object" or "no participants disagree".

removed from the WG then they are also removed from all WG teams
(including the Releasers team).

Changes to WG membership should be posted in the agenda, and may be
suggested as any other agenda item (see "WG Meetings" below).

If an addition or removal is proposed during a meeting, and the full WG
is not in attendance to participate, then the addition or removal is
added to the agenda for the subsequent meeting. This is to ensure
that all members are given the opportunity to participate in all
membership decisions. If a WG member is unable to attend a meeting
where a planned membership decision is being made,
then their consent is assumed.

No more than 1/3 of the voting WG members may be affiliated with the same
employer. If removal or resignation of a WG member, or a change of
employment by a WG member, creates a situation where more than 1/3
of the WG membership shares an employer, then the situation must be
immediately remedied by the resignation or removal of one or more
WG members affiliated with the over-represented employer(s).
Copy link
Contributor

Choose a reason for hiding this comment

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

We should do a quick parse of the members list to make sure this isn't the case prior to ratification

Copy link
Member Author

Choose a reason for hiding this comment

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

agreed


## WG Meetings

The WG meets every 3 weeks on a Google Hangout On Air. One of the
Copy link
Member

Choose a reason for hiding this comment

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

might be best to leave the specifics of the schedule out of the governance docs and make it "regularly" or "as the WG determines appropriate" so it doesn't have to be updated when the WG decides to make it less or more frequent.

Copy link
Member Author

Choose a reason for hiding this comment

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

Makes sense to me, updated.

WG members will volunteer to act as the moderator for each meeting
subject to agreement from the rest of the members. Each meeting should be
published to YouTube.

Members of the `releasers` sub-team are not required to attend
Copy link
Member

Choose a reason for hiding this comment

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

Are citgm sub-team members required to attend the WG meetings?

Copy link
Member Author

Choose a reason for hiding this comment

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

ok added text to say they don't have to attend either, we'll see what people think.

Copy link
Member

Choose a reason for hiding this comment

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

I wouldn't actually make this explicit. We've never had attendance rules for the various working groups... participation rules yes, but not attendance.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok I'll remove again

Copy link
Member Author

Choose a reason for hiding this comment

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

I'll remove both.

the WG meetings and maintain their WG membership simply by
participating in the release process at least once a year.

Members of the `CITGM` sub-team are not required to attend
the WG meetings and maintain their WG membership simply by
participating in the CITGM repository at least once a year.

Items are added to the WG agenda that are considered contentious or are
modifications of governance, contribution policy,
WG membership, or release process.

The intention of the agenda is not to approve or review all patches;
that should happen continuously on GitHub and be handled
by the larger group of Collaborators.

Any community member or contributor can ask that something be
added to the next meeting's agenda by logging a GitHub Issue.
Any Collaborator, WG member or the moderator can add the item
to the agenda by adding the WG-agenda tag to the issue.

Prior to each WG meeting the moderator will share the Agenda with
members of the WG. WG members can add any items they like to the
agenda at the beginning of each meeting. The moderator and the WG
cannot veto or remove items.
Copy link
Contributor

Choose a reason for hiding this comment

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

This can be done via consensus though right?

Copy link
Member Author

Choose a reason for hiding this comment

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

I'd like to just remove that line which I'll do.


The WG may invite persons or representatives from certain
projects to participate in a non-voting capacity.
Copy link
Contributor

Choose a reason for hiding this comment

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

Are people able to ask for an invite?

Copy link
Member Author

Choose a reason for hiding this comment

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

I think people can always ask. In terms of not being too specific I think I'd leave that out from here.


The moderator is responsible for summarizing the discussion of
each agenda item and sends it as a pull request after the meeting.

## Consensus Seeking Process

The WG 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 WG 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 WG or else the
discussion will continue. Simple majority wins.

Note that changes to WG membership require unanimous consensus.
Copy link
Member

Choose a reason for hiding this comment

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

Ditto.

See "WG Membership" above.
78 changes: 65 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Node.js Long-term Support Working Group
# Node.js Release Working Group

# LTS schedule<sup>1</sup>
## Release schedule<sup>1</sup>

| Release | LTS Status | Codename | Active LTS Start | Maintenance Start | Maintenance End |
| :--: | :---: | :---: | :---: | :---: | :---: |
Expand All @@ -23,10 +23,44 @@

<p><img src="schedule.png" alt="LTS Schedule"/></p>

The LTS Schedule is available also as a [JSON][] file or [ICal][]. There is
Copy link
Member

Choose a reason for hiding this comment

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

LTS working group is referred to above, I assume that should be either the Release working group or the LTS team.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

The Release schedule is available also as a [JSON][] file or [ICal][]. There is

Choose a reason for hiding this comment

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

Does this mean that Current releases will have to follow a schedule as well?

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't think we intended to enforce a schedule for Current releases, although there was some discussion in the LTS meeting that something like a 2 week interval might make sense.

also a live [Google Calendar][] that may be subscribed to.
Copy link
Member

Choose a reason for hiding this comment

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

This section doesn't really seem necessary here


# LTS Plan
## Mandate

The Release working group's purpose is:

* Management/execution of the release process for all releases.
Copy link
Member

Choose a reason for hiding this comment

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

Management/execution of the release and support process for all Node.js releases.

Copy link
Contributor

Choose a reason for hiding this comment

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

+1

Copy link
Member Author

Choose a reason for hiding this comment

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

Done


Its responsibilities are:

* Define the release process.
* Define the content of releases.
* Generate and create releases.
Copy link
Contributor

Choose a reason for hiding this comment

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

  • Test Releases

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

* Manage the LTS and Current branches including backporting changes to
these branches.
* Define the policy for what gets backported to release streams.
Copy link
Contributor

Choose a reason for hiding this comment

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

The above set of points does not specify that some of these duties are specific to certain teams. While this may get expanded on below it is a bit confusing

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't have a good suggestion here. We introduce the generic responsibilities, then the teams, and then the specific things the teams are entrusted with. I'm not sure ordering differently would help.


Copy link
Contributor

Choose a reason for hiding this comment

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

Does define support policy fall into this WG's responsibilities?

Copy link
Member Author

Choose a reason for hiding this comment

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

Added a line.

The Release working group is structured into teams and membership in
the working group does not automatically result in membership in these
teams. These teams are:

* Releasers team
* LTS team
* CITGM team

The `releasers` team is entrusted with the secrets and CI access to be able
build and sign releases. **Additions to the releasers team must be approved
by the CTC.**

The Long Term Support (LTS) team manages the process/content of LTS releases
and the required backporting for these releases.
Copy link
Contributor

Choose a reason for hiding this comment

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

Additions to the LTS team needs sign off from the rest of the LTS team

Copy link
Member Author

Choose a reason for hiding this comment

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

Done


The Canary in the Gold Mine (CITGM) team maintains CITGM as one of
the key sanity checks for releases. This team maintains the CITGM
implementation and works to keep CITGM builds running and passing regularly.
Copy link
Member

Choose a reason for hiding this comment

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

Maybe change implementation -> repository to make it clear that nodejs/citgm isn't managed by the Release WG.

Copy link
Member Author

Choose a reason for hiding this comment

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

ok


## LTS Plan
Copy link
Member

Choose a reason for hiding this comment

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

The LTS plan should be a separate document that is not part of the charter. That way the WG can change it when it needs without having to modify the charter.

Copy link
Member Author

Choose a reason for hiding this comment

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

this is the README.md for the repo. The charter the smaller section that defines its purpose and scope. Once that's agreed it will go into the doc in the CTC defining the WG's scope. We can chose to move the LTS plan out of the README.md for the repo but I don't think thats tied to chartering the WG.

Copy link
Member

Choose a reason for hiding this comment

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

The text below mentions odd releases, so maybe just call this Release plan

Copy link
Member Author

Choose a reason for hiding this comment

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

changed

Copy link
Member Author

Choose a reason for hiding this comment

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

Pushed changes to address comments.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm going to propose that I leave 1 more week for comments/objections here. Unless there are objections before the end of next week I'll add the ctc-review tag and request that the CTC review/approve


New semver-major releases of Node.js are cut from `master` every six months.
New even-numbered versions (e.g. v6, v8, v10, etc) are cut in April. New
Expand All @@ -48,7 +82,7 @@ Given this schedule, there will be no more than two active LTS releases at any
given time, overlapping for a maximum period of six months.

Once a major version enters LTS coverage, new features (semver-minor) may only
be landed with consent of the CTC and the LTS Working Group. No semver-major
be landed with consent of the the Release working group. No semver-major
Copy link
Member

Choose a reason for hiding this comment

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

Duplicated "the"

Copy link
Member Author

Choose a reason for hiding this comment

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

Pushed commit to fix.

changes other than those required for critical security fixes may be landed.

Changes in an LTS-covered major version are limited to:
Expand All @@ -66,7 +100,7 @@ Changes in an LTS-covered major version are limited to:

Generally changes are expected to live in a *Current* release for at least 2
weeks before being backported. It is possible for a commit to land earlier at
the discretion of the LTS Working Group and the maintainers of the LTS branches.
the discretion of the Release working group and the maintainers of the LTS branches.

Once a release moves into Maintenance mode, only ***critical*** bugs,
***critical*** security fixes, and documentation updates will be permitted.
Expand All @@ -76,14 +110,14 @@ Note that while it is possible that critical security and bug fixes may lead to
rare and will land as *semver-minor* bumps in the LTS covered version.

All LTS releases will be assigned a "codename" drawn from the names of elements
on the Periodic Table of Elements. For each upcoming LTS release, the LTS
Working Group will select a handful of candidate names and submit those for a
on the Periodic Table of Elements. For each upcoming LTS release, the Release
working group will select a handful of candidate names and submit those for a
collaborator vote.

An odd-numbered major release will cease to be actively updated when the
subsequent even-numbered major release is cut.

## LTS Staging Branches
### LTS Staging Branches

Every LTS major version has two branches in the GitHub repository: a release
branch and a staging branch. The release branch is used to cut new releases.
Expand All @@ -98,7 +132,7 @@ commits are backported for a future Node.js v4 release, those must come in the
form of pull requests opened against the `v4.x-staging` branch. **Commits are
only landed in the `v4.x` branch when a new `v4.x` release is being prepared.**

## Node abstraction layer
### Node abstraction layer

It should be stated that the abstraction layer (currently [`NAN`][]) should
support all *current* LTS releases. Given that Active LTS will overlap
Expand All @@ -114,14 +148,32 @@ any given point in time, fully support a maximum of 2 LTS releases.
[ICal]: schedule.ical
[`NAN`]: https://github.com/nodejs/nan

## LTS Team members
The working group members are the union of the LTS, Releasers
and CITGM team members listed below.

## LTS Team members
* Gibson Fahnestock [@gibfahn](https://github.com/gibfahn)
* James M Snell [@jasnell](https://github.com/jasnell)
* Jeremiah Senkpiel [@Fishrock123](https://github.com/Fishrock123)
* Michael Dawson [@mhdawson](https://github.com/mhdawson)
* Myles Borins [@MylesBorins](https://github.com/MylesBorins)
* Rod Vagg [@rvagg](https://github.com/rvagg)
* Sam Roberts [@sam-github](https://github.com/sam-github)

Github team for LTS: https://github.com/orgs/nodejs/teams/lts
### Releasers team

Choose a reason for hiding this comment

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

This seems to be missing Colin and myself? Not sure if that is intended or not?

Copy link
Member Author

Choose a reason for hiding this comment

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

Nope. My apologies, will fix up in next pass through. I messed that up willing splitting up the teams.

* Colin Ihrig [@cjhrig](https://github.com/cjihrig)
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo: @cjhrig -> @cjihrig

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed

* Evan Lucas [@evanlucas](https://github.com/evanlucas)
* Italo A. Casas [@italoacasas](https://github.com/italoacasas)
* James M Snell [@jasnell](https://github.com/jasnell)
* Jeremiah Senkpiel [@Fishrock123](https://github.com/Fishrock123)
* Myles Borins [@MylesBorins](https://github.com/MylesBorins)
* Rod Vagg [@rvagg](https://github.com/rvagg)

### CITGM team
* James M Snell [@jasnell](https://github.com/jasnell)
Copy link
Contributor

Choose a reason for hiding this comment

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

this above team is in alphabetical order, while this team is sorted by commit dates... should we change to be consistent?

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

* Myles Borins [@MylesBorins](https://github.com/MylesBorins)
Copy link
Member

Choose a reason for hiding this comment

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

Not a comment on this PR, but @nodejs/citgm we'll need to make sure we remember to keep this up to date. We probably need to document in nodejs/citgm that new CitGM collaborators are now part of the "LTS team", and what that means in practice.

* Gibson Fahnestock [@gibfahn](https://github.com/gibfahn)
* George Adams [@gdams](https://github.com/gdams)
* Bartosz Sosnowski [@bzoz](https://github.com/bzoz)
* Richard Lau [@richardlau](https://github.com/richardlau)
* Michaël Zasso [@targos](https://github.com/targos)
* Bryan English [@bengl](https://github.com/bengl)