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: update TSC charter #698

Merged
merged 8 commits into from
Jul 10, 2019
Merged
Changes from 2 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
114 changes: 43 additions & 71 deletions TSC-Charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,31 @@

## Section 1. Guiding Principle.

The Node.js Foundation will operate transparently, openly,
collaboratively, and ethically. Project proposals, timelines, and status
must not merely be open, but also easily visible to outsiders.
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 Node.js Foundation Governance.
## Section 2. Evolution of OpenJS Foundation Governance.

Most large, complex open source communities have both a business and a
technical governance model. Node.js Foundation’s technical leadership
is the Technical Steering Committee (“TSC”). Node.js Foundation’s business
technical governance model. Technical leadership for the projects
within the OpenJS Foundation are delegated to the projects through
mhdawson marked this conversation as resolved.
Show resolved Hide resolved
their project charter by the OpenJS Cross Project Council (CPC).
mhdawson marked this conversation as resolved.
Show resolved Hide resolved
In the case of the Node.js project it is delegated to the Node.js
mhdawson marked this conversation as resolved.
Show resolved Hide resolved
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 Board in the governance of
Node.js Foundation. The charter amendment process is for the TSC to
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 Board. The Board may
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
Board will not interfere with day-to-day discussions, votes or meetings
CPC will not interfere with day-to-day discussions, votes or meetings
of the TSC.

## Section 3. Board’s Role in Setting Node.js Foundation’s Strategic Direction.

The Board will set the overall TSC Policy. The policy will describe the
overarching scope of the Node.js Foundation initiative, Node.js
Foundation’s technical vision and direction and project release
expectations in the form of expected cadence and intent. The Board will
use the TSC as a delegate body for governing technical implementation,
individual project scope and direction while they remain within the scope
and direction of the policies as described in the TSC Policy document and
approved by the Board.

## Section 4. Establishment 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
Expand Down Expand Up @@ -75,10 +68,10 @@ participate in TSC discussions, *and* does not participate in TSC votes, the
member shall be automatically removed from the TSC. The member may be invited
to continue attending TSC meetings as an observer.

## Section 5. Responsibilities of the TSC.
## Section 4. Responsibilities of the TSC.

Subject to such policies as may be set by the Board, the TSC is
responsible for all technical development within the Node.js Foundation,
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.
Expand All @@ -92,45 +85,24 @@ including:
* Mediating technical conflicts between Collaborators or Foundation
projects.

The TSC will define Node.js Foundation’s release vehicles and serve as
Node.js Foundation’s primary technical liaison body with external open
source projects, consortiums and groups.
The TSC will define Node.js projects’s release vehicles.
mhdawson marked this conversation as resolved.
Show resolved Hide resolved

## Section 6. Node.js Foundation Operations.
## Section 5. Node.js Project Operations.

The TSC will establish and maintain a development process for Node.js
Foundation Projects. The development process will establish guidelines
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).

There will be multiple Projects under the Node.js Foundation organized by
modules or subsystems. The TSC is responsible for organizing the Project
structure, including possibly the creation and alignment of sub-Projects.
Each Project must be within such policies as may be set by the Board,
have a well-defined scope and must work within that scope. The
development process will provide for Projects to follow the lifecycle
process as described in the Project Lifecycle document. The development
process will include a process for the TSC to oversee and approve changes
in the lifecycle of a Project, which will include consideration of the
following criteria:

* Cleanliness of code base
* Ample and diverse Contributors and Collaborators to assure vitality of
the project.
* Stability (e.g. presence of test suites, stable APIs and use of an
appropriate source-code control system).
* Predictability of releases
* Alignment with Node.js Foundation’s goals and priorities.

The TSC and entire technical community will follow any processes as may
be specified by the Board relating to the intake and license compliance
review of contributions, including the Node.js Foundation IP Policy.
be specified by the OpenJS Board relating to the intake and license compliance

Choose a reason for hiding this comment

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

nit - OpenJS Foundation Board

review of contributions, including the OpenJS Foundation IP Policy.
Copy link

Choose a reason for hiding this comment

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

Is there an OpenJS Foundation IP Policy currently defined? If so, can this link to it?

Copy link
Member Author

Choose a reason for hiding this comment

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

@brianwarner is there a link for that?

Choose a reason for hiding this comment

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

@mhdawson and @Jonahss - I'm working on getting these various documents updated. I think it's best to leave it blank for now, and I'll be back with a link once we have something final which we can link.

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, this should land once we get the governance update landed (7 days from now) and then we can open a PR once the links are ready.


## Section 7. Elections
## Section 6. Elections

Leadership roles in Node.js Foundation will be peer elected
Leadership roles in Node.js project will be peer elected

Choose a reason for hiding this comment

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

nit - roles in the Node.js project

representatives of the community.

For election of persons (such as the TSC Chairperson), a multiple-candidate
Expand All @@ -142,18 +114,19 @@ method should be used, such as:
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 candidates election. Elections shall be done within the Projects by
the Collaborators active in the Project.
the candidates election. Elections shall be done within the projects by

Choose a reason for hiding this comment

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

candidate's

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 TSC Director to represent
the TSC to the Board for a term of one year according to the Node.js Foundation’s
By-laws. The Chair and Director may be (but are not required to be)
the same person. The TSC shall hold annual elections to select a TSC
Chairperson and Director; there are no limits on the number of terms a
TSC Chairperson or Director may serve.
work on building an agenda for TSC meetings and a voting OpenJS

Choose a reason for hiding this comment

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

I believe this section may need a bit of clarification or what may be better is to maybe just reference the appropriate section in the CPC charter.

As an Impact Project, Node.js is allowed up to 2 voting representatives in the CPC. The way I am reading this section as currently written is that the Node.js project will elect:

a TSC Chairperson to work on building an agenda for TSC meetings

This person is not mentioned as being a voting member of the CPC

and a voting OpenJS Cross Project Council (CPC) voting member to represent the TSC in the OpenJS Foundation for a term of one year.

This would make 1 CPC voting member for Node.js. If the Chairperson and the voting representative are the same person, that would still only make 1 representative when Node.js is allowed 2 if the project wants them.

Copy link
Contributor

Choose a reason for hiding this comment

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

I believe the second voting member comes from the community committee

Choose a reason for hiding this comment

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

Ah! Yes, you are correct. Ignore me :)

mhdawson marked this conversation as resolved.
Show resolved Hide resolved
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 8. Voting
## Section 7. Voting

For internal project decisions, Collaborators shall operate under Lazy
Consensus. The TSC shall establish appropriate guidelines for
Expand All @@ -173,12 +146,11 @@ 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.

Note that, in addition to requiring a simple majority vote of the TSC, all
changes to this charter are also subject to approval from the Node.js
Foundation board.
changes to this charter are also subject to approval from the CPC.

## Section 9. Project Roles
## Section 8. Project Roles

The Node.js Foundation git repository is maintained by the TSC and
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,
Expand All @@ -192,17 +164,17 @@ 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 by Project, as
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 10. Definitions
## 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
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 Board.
rarely be encumbered by the TSC and never by the CPC or OpenJS Board.

Choose a reason for hiding this comment

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

nit - OpenJS Foundation Board


* **Project**: a technical collaboration effort, e.g. a subsystem, that
is organized through the project creation process and approved by the
Expand Down