From 0cbba157ee359e9ecb2d0b925268305e34455d89 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Tue, 4 Aug 2015 17:58:42 -0700 Subject: [PATCH 01/13] Initial work on structural requirements for multiple top level projects. --- Applications/Core TLP.md | 70 +++++++++++++++++++++++++ Applications/Evangelism WG.md | 19 +++++++ Applications/NodeConf Collective TLP.md | 28 ++++++++++ Applications/i18n WG.md | 19 +++++++ Project Lifecycle.md | 63 ++++++++++++++++++++++ README.md | 3 +- 6 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 Applications/Core TLP.md create mode 100644 Applications/Evangelism WG.md create mode 100644 Applications/NodeConf Collective TLP.md create mode 100644 Applications/i18n WG.md create mode 100644 Project Lifecycle.md diff --git a/Applications/Core TLP.md b/Applications/Core TLP.md new file mode 100644 index 00000000..17a0bbf8 --- /dev/null +++ b/Applications/Core TLP.md @@ -0,0 +1,70 @@ +## Introduction + +Currently the Node.js Foundation directly oversees the development of the core platform and associated working groups. The addition of Top Level Projects will predictably increase the workload on the TSC and so it makes sense to transfer these responsibilities to a Top Level Project concerned solely with the development of the platform. + +## History & Metrics + +Created by Ryan Dahl, now the largest programming ecosystem on the planet. + +## Scope + +The Core TLP will have sole responsibility and discretion over io.js and node.js in the following areas: + +* Setting release dates +* Release quality standards +* Technical direction +* Governance process and practices. +* Contribution process and practices. +* Maintaining the list of additional Collaborators. +* Development process and any coding standards. +* Mediating technical conflicts between Collaborators and Working Groups. + +## Governance + +https://github.com/nodejs/io.js/blob/master/GOVERNANCE.md + +## Contributions + +https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md + +## Tools + +* GitHub `nodejs` org. +* Uberconference & Soundcloud +* Google Hangouts & Youtube + +## IP + +All relevant IP is already managed by the Node.js Foundation. + +## TC Members + +* **Ben Noordhuis** <info@bnoordhuis.nl> ([@bnoordhuis](https://github.com/bnoordhuis)) +* **Bert Belder** <bertbelder@gmail.com> ([@piscisaureus](https://github.com/piscisaureus)) +* **Fedor Indutny** <fedor.indutny@gmail.com> ([@indutny](https://github.com/indutny)) +* **Trevor Norris** <trev.norris@gmail.com> ([@trevnorris](https://github.com/trevnorris)) +* **Chris Dickinson** <christopher.s.dickinson@gmail.com> ([@chrisdickinson](https://github.com/chrisdickinson)) +* **Rod Vagg** <rod@vagg.org> ([@rvagg](https://github.com/rvagg)) +* **Jeremiah Senkpiel** <fishrock123@rocketmail.com> ([@fishrock123](https://github.com/fishrock123)) +* **Colin Ihrig** <cjihrig@gmail.com> ([@cjihrig](https://github.com/cjihrig)) +* **Alexis Campailla** <orangemocha@nodejs.org> ([@orangemocha](https://github.com/orangemocha)) +* **Julien Gilli** <jgilli@nodejs.org> ([@misterdjules](https://github.com/misterdjules)) +* **James M Snell** <jasnell@gmail.com> ([@jasnell](https://github.com/jasnell)) +* **Steven R Loomis** <srloomis@us.ibm.com> ([@srl295](https://github.com/srl295)) +* **Michael Dawson** <michael_dawson@ca.ibm.com> ([@mhdawson](https://github.com/mhdawson)) +* **Shigeki Ohtsu** <ohtsu@iij.ad.jp> ([@shigeki](https://github.com/shigeki)) +* **Brian White** <mscdex@mscdex.net> ([@mscdex](https://github.com/mscdex)) + +## Working Groups + +* [Website](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#website) +* [Streams](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#streams) +* [Build](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#build) +* [Tracing](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#tracing) +* [Roadmap](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#roadmap) +* [Docker](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#docker) +* [Addon API](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#addon-api) + +## Provisional + +The membership is already well under the 1/4 representation limit and the project has been well established for quite a while. diff --git a/Applications/Evangelism WG.md b/Applications/Evangelism WG.md new file mode 100644 index 00000000..afb49a86 --- /dev/null +++ b/Applications/Evangelism WG.md @@ -0,0 +1,19 @@ +## Introduction + +## History & Metrics + +## Scope + +## Governance + +## Contributions + +## Tools + +## IP + +## TC Members + +## Working Groups + +## Provisional diff --git a/Applications/NodeConf Collective TLP.md b/Applications/NodeConf Collective TLP.md new file mode 100644 index 00000000..7b19d4ac --- /dev/null +++ b/Applications/NodeConf Collective TLP.md @@ -0,0 +1,28 @@ +## Introduction + +## History & Metrics + +## Scope + +## Governance + +## Contributions + +## Tools + +* GitHub `nodeconf` org. +* Uberconference & Soundcloud + +## IP + +* NodeConf Trademark, owned by TenConf LLC (@mikeal's LLC) + +## TC Members + +## Working Groups + +None at this time. + +## Provisional + +The membership is already well under the 1/4 representation limit and these conferences have been happening since 2011. diff --git a/Applications/i18n WG.md b/Applications/i18n WG.md new file mode 100644 index 00000000..afb49a86 --- /dev/null +++ b/Applications/i18n WG.md @@ -0,0 +1,19 @@ +## Introduction + +## History & Metrics + +## Scope + +## Governance + +## Contributions + +## Tools + +## IP + +## TC Members + +## Working Groups + +## Provisional diff --git a/Project Lifecycle.md b/Project Lifecycle.md new file mode 100644 index 00000000..f01a9052 --- /dev/null +++ b/Project Lifecycle.md @@ -0,0 +1,63 @@ +# Node.js Foundation Project Lifecycle + +## Project Definition + +The Node.js Foundation hosts several "Top Level Projects." These projects are autonomous from each other and governed by their own TC (Technical Committee) and chartered by the Node.js Foundation TSC. + +Projects are free to create "Working Groups" which are autonomous groups collaborating to fulfill a set of responsibilities. Working Groups are eventually chartered by the TC. The TSC also charters its own Working Groups. + +``` + TSC + | + |-- Project A TC (Chartered By TSC) + | |-- Working Group (Chartered By Project TC) + | + |-- Project B TC (Chartered By TSC) + | |-- Working Group (Chartered By Project TC) + | + |-- Working Group A (Chartered by TSC) + |-- Working Group B (Chartered by TSC) +``` + +Both TLDs and TSC WGs may elect a representative to the TSC. TLDs and WGs with *provisional* status are not granted voting privileges on the TSC. + +## Lifecycle + +The Foundation shall encourage new Projects and innovation in the community. New Projects enter the Node.js Foundation through a [Proposal](#Proposal). + +Project should have some prior history and be considered mature and contain a wide contributorship before submitting a proposal to enter the foundation. + +## Top Level Project and Working Group Requirements + +All TLPs and WGs are expected to operation in a transparent manor. Decisions must be made publicly through a documented public process manages by each TLP TC or WG. + +All TLPs and WGs must use a participatory decision making process. All TLP TCs must ensure they are accurately representing the WGs in their TLP. + +## Top Level Projects + +All Top Level Project TCs must follow a Consensus Seeking process and are responsible for documenting and keeping up to date their current processes and practices. + +No more than 1/4 of a TLP TC can work for the same employer. Projects that do not have this level of diverse representation are considered *provisional* and do not have voting privileges in the TSC until they are no longer incubating. + +Each TLP TC must elect representative to the Node.js Foundation TSC or vote to abstain from representation on the TSC. + +## Applying to join + +A proposal to join the Node.js Foundation as a Top Level Project or Working Group must include: + +* Introduction and project description. +* Project history. +* Any available metrics or even estimates about the user base, ecosystem and community. +* Project scope. +* Project governance process. +* Project contribution process. + * Must include [DCO](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). + * Must include approved license (MIT, Apache2, etc). + * Must include a [Code of Conduct](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#code-of-conduct). +* List of current tools in use by the project (forums, issue trackers, GitHub orgs, etc). +* Relevant intellectual property (trademarks, domain names, etc). +* List of initial TC members. +* List of initial Working Groups. +* Justification for entering with or without provisional status. + +Each proposal should be sent as a pull request to this repository in the Applications directory. Proposals do not have to be complete to be submitted, the TSC can work with the authors and their respective communities in each Pull Request. diff --git a/README.md b/README.md index ed41082e..e93449ca 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,6 @@ The Node.js Foundation Technical Steering Committee is the technical governing body of the Node.js Foundation. It admits and oversees all Top Level Projects in the Node.js Foundation. It also elects a representative to the Node.js Foundation Board of Directors. -For more information read the [TSC Charter](https://github.com/nodejs/TSC/blob/master/TSC-Charter.md). +For more details read the [TSC Charter](https://github.com/nodejs/TSC/blob/master/TSC-Charter.md) adopted by the Node.js Foundation Board of Directors on June 17th 2015. +If your project is interested in joining the Node.js Foundation please read the [Project Lifecyle.md](./Project Lifecycle.md) documentation. From 74a88e7998488802765ef924f9bd958107e8ba93 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Tue, 25 Aug 2015 10:33:05 -0700 Subject: [PATCH 02/13] Improvements to incubation. --- Project Lifecycle.md | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/Project Lifecycle.md b/Project Lifecycle.md index f01a9052..768dcfa1 100644 --- a/Project Lifecycle.md +++ b/Project Lifecycle.md @@ -19,27 +19,42 @@ Projects are free to create "Working Groups" which are autonomous groups collabo |-- Working Group B (Chartered by TSC) ``` -Both TLDs and TSC WGs may elect a representative to the TSC. TLDs and WGs with *provisional* status are not granted voting privileges on the TSC. +Both TLDs and TSC WGs may elect a representative to the TSC. TLDs and WGs with *incubation* status are not granted voting privileges on the TSC. + +## Incubation + +The purpose of incubation is to support and mentor projects entering the foundation. The goal is for projects to be: + +* Participatory +* Transparent +* Effective + +While certain processes are strongly recommended because of the TSC's experience the goal of incubation is not to enforce a specific set of processes but to ensure that the processes adopted and accepted by a project achieve these goals. Therefor, the requirements for graduating from incubation are based on metrics that demonstrate success in terms of these values. These metrics are: + +* TC is 5 members or greater. +* No more than 1/4 of the TC is affiliated with the same employer. +* Members of the TC live in at least 4 different timezones. +* The decision making process is documented and publicly accessible. + +A project may apply to graduate from incubation at any time by calling for a vote in the TSC. ## Lifecycle The Foundation shall encourage new Projects and innovation in the community. New Projects enter the Node.js Foundation through a [Proposal](#Proposal). -Project should have some prior history and be considered mature and contain a wide contributorship before submitting a proposal to enter the foundation. +Project should have some prior history, be considered mature and contain a wide contributorship before submitting a proposal to enter the foundation. ## Top Level Project and Working Group Requirements -All TLPs and WGs are expected to operation in a transparent manor. Decisions must be made publicly through a documented public process manages by each TLP TC or WG. +All TLPs and WGs are expected to operation in a transparent manor. Decisions must be made publicly through a documented public process managed by each TLP TC or WG. All TLPs and WGs must use a participatory decision making process. All TLP TCs must ensure they are accurately representing the WGs in their TLP. ## Top Level Projects -All Top Level Project TCs must follow a Consensus Seeking process and are responsible for documenting and keeping up to date their current processes and practices. - -No more than 1/4 of a TLP TC can work for the same employer. Projects that do not have this level of diverse representation are considered *provisional* and do not have voting privileges in the TSC until they are no longer incubating. +All Top Level Project TCs must follow a [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process and are responsible for documenting and keeping up to date their current processes and practices. -Each TLP TC must elect representative to the Node.js Foundation TSC or vote to abstain from representation on the TSC. +Each TLP TC must elect a representative to the Node.js Foundation TSC or vote to abstain from representation on the TSC. ## Applying to join @@ -55,9 +70,8 @@ A proposal to join the Node.js Foundation as a Top Level Project or Working Grou * Must include approved license (MIT, Apache2, etc). * Must include a [Code of Conduct](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#code-of-conduct). * List of current tools in use by the project (forums, issue trackers, GitHub orgs, etc). -* Relevant intellectual property (trademarks, domain names, etc). +* Existing IP Policy and relevant intellectual property (trademarks, domain names, etc). * List of initial TC members. * List of initial Working Groups. -* Justification for entering with or without provisional status. Each proposal should be sent as a pull request to this repository in the Applications directory. Proposals do not have to be complete to be submitted, the TSC can work with the authors and their respective communities in each Pull Request. From b4fef2c5f156d229afe4b7c4e3ca62cc3ea56fd2 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Mon, 21 Sep 2015 16:06:57 +0200 Subject: [PATCH 03/13] Mentorship and other refinements. --- Applications/Core TLP.md | 4 +-- Applications/NodeConf Collective TLP.md | 8 +++--- Project Lifecycle.md | 33 +++++++++++++++++++------ README.md | 15 +++++++++++ 4 files changed, 45 insertions(+), 15 deletions(-) diff --git a/Applications/Core TLP.md b/Applications/Core TLP.md index 17a0bbf8..476ba659 100644 --- a/Applications/Core TLP.md +++ b/Applications/Core TLP.md @@ -8,7 +8,7 @@ Created by Ryan Dahl, now the largest programming ecosystem on the planet. ## Scope -The Core TLP will have sole responsibility and discretion over io.js and node.js in the following areas: +The Core TLP will have sole responsibility and discretion over the node.js project in the following areas: * Setting release dates * Release quality standards @@ -67,4 +67,4 @@ All relevant IP is already managed by the Node.js Foundation. ## Provisional -The membership is already well under the 1/4 representation limit and the project has been well established for quite a while. +The membership is already well under the 1/4 representation limit and the project has been well established for quite a while. It should skip the incubation phase. diff --git a/Applications/NodeConf Collective TLP.md b/Applications/NodeConf Collective TLP.md index 7b19d4ac..47186471 100644 --- a/Applications/NodeConf Collective TLP.md +++ b/Applications/NodeConf Collective TLP.md @@ -6,7 +6,7 @@ ## Governance -## Contributions +## Contribution Process ## Tools @@ -21,8 +21,6 @@ ## Working Groups -None at this time. +## Requirements -## Provisional - -The membership is already well under the 1/4 representation limit and these conferences have been happening since 2011. +* Link to DCO, LICENSE, and CoC. diff --git a/Project Lifecycle.md b/Project Lifecycle.md index 768dcfa1..f7aab1d4 100644 --- a/Project Lifecycle.md +++ b/Project Lifecycle.md @@ -34,22 +34,28 @@ While certain processes are strongly recommended because of the TSC's experience * TC is 5 members or greater. * No more than 1/4 of the TC is affiliated with the same employer. * Members of the TC live in at least 4 different timezones. -* The decision making process is documented and publicly accessible. +* The decision making and release process is documented and publicly accessible. A project may apply to graduate from incubation at any time by calling for a vote in the TSC. +While a project is incubating it is assigned at least 3 [mentors](https://github.com/nodejs/TSC/blob/master/README.md#mentors) who are responsible for working with the project to adopt policies and gain the health and contributorship it will need in order to graduate from incubation. + ## Lifecycle The Foundation shall encourage new Projects and innovation in the community. New Projects enter the Node.js Foundation through a [Proposal](#Proposal). -Project should have some prior history, be considered mature and contain a wide contributorship before submitting a proposal to enter the foundation. +The project should be considered mature and have a history of releases before applying to enter the foundation. ## Top Level Project and Working Group Requirements -All TLPs and WGs are expected to operation in a transparent manor. Decisions must be made publicly through a documented public process managed by each TLP TC or WG. +All TLPs and WGs are expected to operate in a transparent manor. Decisions must be made publicly through a documented public process managed by each TLP TC or WG. All TLPs and WGs must use a participatory decision making process. All TLP TCs must ensure they are accurately representing the WGs in their TLP. +### Security + +All projects in the foundation share the same base security policy. The foundation's security team triages issues sent to security@nodejs.org. Top Level Projects, whether in the incubator or not, are expected to maintain a private security repository where the security team can bring project specific issues. + ## Top Level Projects All Top Level Project TCs must follow a [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process and are responsible for documenting and keeping up to date their current processes and practices. @@ -64,14 +70,25 @@ A proposal to join the Node.js Foundation as a Top Level Project or Working Grou * Project history. * Any available metrics or even estimates about the user base, ecosystem and community. * Project scope. -* Project governance process. -* Project contribution process. - * Must include [DCO](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). - * Must include approved license (MIT, Apache2, etc). - * Must include a [Code of Conduct](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#code-of-conduct). +* Current governance process. +* Current contribution process. * List of current tools in use by the project (forums, issue trackers, GitHub orgs, etc). * Existing IP Policy and relevant intellectual property (trademarks, domain names, etc). * List of initial TC members. * List of initial Working Groups. +* Prior to being admitted the project: + * Must include [DCO](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). + * Must include approved license (MIT, Apache2, etc). + * Must include a [Code of Conduct](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#code-of-conduct). Each proposal should be sent as a pull request to this repository in the Applications directory. Proposals do not have to be complete to be submitted, the TSC can work with the authors and their respective communities in each Pull Request. + +### Approved Licenses + +At this time the foundation is only accepting projects which use an MIT, BSD, or Apache2 license. + +### Admittance + +The Node.js Foundation is quite new and currently has a limited number of resources available to mentor new projects. As such, projects are chosen for admission in groups as mentors become available. The next set of projects will be chosen on November 1st. + +You can apply at any time and the TSC and available mentors will help improve your application while awaiting the next available approval phase. diff --git a/README.md b/README.md index e93449ca..f2bbfc17 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,18 @@ The Node.js Foundation Technical Steering Committee is the technical governing b For more details read the [TSC Charter](https://github.com/nodejs/TSC/blob/master/TSC-Charter.md) adopted by the Node.js Foundation Board of Directors on June 17th 2015. If your project is interested in joining the Node.js Foundation please read the [Project Lifecyle.md](./Project Lifecycle.md) documentation. + +## TSC Members + +## Top Level WG and TLPs + +* Working Groups + * Mentors +* Top Level Projects + * Core TLP + +## Mentors + +Project mentorship is not a technical role. In fact, mentors are discouraged from giving technical advise to projects. Instead, the purpose of mentorship is to encourage and improve a projects ability to be participatory, transparent, and effective. Mentors are there to help projects adopt and iterate on policies and processes that achieve these goals and eventually allow them to graduate the incubation phase. + +* Mikeal Rogers (@mikeal) From d31cc7e93838c746c44c4b50de7bf46738a719ec Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Mon, 21 Sep 2015 16:39:23 +0200 Subject: [PATCH 04/13] Fixing typo. --- Project Lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project Lifecycle.md b/Project Lifecycle.md index f7aab1d4..d149c7e3 100644 --- a/Project Lifecycle.md +++ b/Project Lifecycle.md @@ -19,7 +19,7 @@ Projects are free to create "Working Groups" which are autonomous groups collabo |-- Working Group B (Chartered by TSC) ``` -Both TLDs and TSC WGs may elect a representative to the TSC. TLDs and WGs with *incubation* status are not granted voting privileges on the TSC. +Both TLPs and TSC WGs may elect a representative to the TSC. TLDs and WGs with *incubation* status are not granted voting privileges on the TSC. ## Incubation From c4d67e32c81965af66dcd5c446ebc53392f45b50 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Mon, 21 Sep 2015 16:55:56 +0200 Subject: [PATCH 05/13] Fixing typo AGAIN! --- Project Lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project Lifecycle.md b/Project Lifecycle.md index d149c7e3..c12d30fa 100644 --- a/Project Lifecycle.md +++ b/Project Lifecycle.md @@ -19,7 +19,7 @@ Projects are free to create "Working Groups" which are autonomous groups collabo |-- Working Group B (Chartered by TSC) ``` -Both TLPs and TSC WGs may elect a representative to the TSC. TLDs and WGs with *incubation* status are not granted voting privileges on the TSC. +Both TLPs and TSC WGs may elect a representative to the TSC. TLPs and WGs with *incubation* status are not granted voting privileges on the TSC. ## Incubation From e0b2b53750483d0ce0e14460af978d6df29cb5ab Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Tue, 6 Oct 2015 10:09:47 -0700 Subject: [PATCH 06/13] Numerous edits based on feedback. --- Applications/Core TLP.md | 21 +++++++++++---------- Project Lifecycle.md | 10 +++++----- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Applications/Core TLP.md b/Applications/Core TLP.md index 476ba659..bb18f864 100644 --- a/Applications/Core TLP.md +++ b/Applications/Core TLP.md @@ -4,7 +4,7 @@ Currently the Node.js Foundation directly oversees the development of the core p ## History & Metrics -Created by Ryan Dahl, now the largest programming ecosystem on the planet. +Created by Ryan Dahl, now the largest programming ecosystem in the world. ## Scope @@ -18,14 +18,15 @@ The Core TLP will have sole responsibility and discretion over the node.js proje * Maintaining the list of additional Collaborators. * Development process and any coding standards. * Mediating technical conflicts between Collaborators and Working Groups. +* Node.js build and CI infrastructure. ## Governance -https://github.com/nodejs/io.js/blob/master/GOVERNANCE.md +https://github.com/nodejs/node/blob/master/GOVERNANCE.md ## Contributions -https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md +https://github.com/nodejs/node/blob/master/CONTRIBUTING.md ## Tools @@ -57,13 +58,13 @@ All relevant IP is already managed by the Node.js Foundation. ## Working Groups -* [Website](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#website) -* [Streams](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#streams) -* [Build](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#build) -* [Tracing](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#tracing) -* [Roadmap](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#roadmap) -* [Docker](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#docker) -* [Addon API](https://github.com/nodejs/io.js/blob/master/WORKING_GROUPS.md#addon-api) +* [Website](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#website) +* [Streams](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#streams) +* [Build](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#build) +* [Tracing](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#tracing) +* [Roadmap](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#roadmap) +* [Docker](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#docker) +* [Addon API](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#addon-api) ## Provisional diff --git a/Project Lifecycle.md b/Project Lifecycle.md index c12d30fa..2ee47200 100644 --- a/Project Lifecycle.md +++ b/Project Lifecycle.md @@ -33,7 +33,7 @@ While certain processes are strongly recommended because of the TSC's experience * TC is 5 members or greater. * No more than 1/4 of the TC is affiliated with the same employer. -* Members of the TC live in at least 4 different timezones. +* Members of the TC live in at least 4 different timezones and representing no fewer than three countries. * The decision making and release process is documented and publicly accessible. A project may apply to graduate from incubation at any time by calling for a vote in the TSC. @@ -77,18 +77,18 @@ A proposal to join the Node.js Foundation as a Top Level Project or Working Grou * List of initial TC members. * List of initial Working Groups. * Prior to being admitted the project: - * Must include [DCO](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). + * Must include [DCO](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). * Must include approved license (MIT, Apache2, etc). - * Must include a [Code of Conduct](https://github.com/nodejs/io.js/blob/master/CONTRIBUTING.md#code-of-conduct). + * Must include a [Code of Conduct](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#code-of-conduct). Each proposal should be sent as a pull request to this repository in the Applications directory. Proposals do not have to be complete to be submitted, the TSC can work with the authors and their respective communities in each Pull Request. ### Approved Licenses -At this time the foundation is only accepting projects which use an MIT, BSD, or Apache2 license. +At this time the foundation is only accepting projects which use an MIT, BSD, ISC or Apache2 license. ### Admittance -The Node.js Foundation is quite new and currently has a limited number of resources available to mentor new projects. As such, projects are chosen for admission in groups as mentors become available. The next set of projects will be chosen on November 1st. +The Node.js Foundation is quite new and currently has a limited number of resources available to mentor new projects. As such, projects are chosen for admission in groups as mentors become available. You can apply at any time and the TSC and available mentors will help improve your application while awaiting the next available approval phase. From 5a778fd1789da8b7013d790de75448595b25d91a Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Tue, 6 Oct 2015 10:13:52 -0700 Subject: [PATCH 07/13] Updating to latest TSC membership. --- Applications/Core TLP.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Applications/Core TLP.md b/Applications/Core TLP.md index bb18f864..aa53fc21 100644 --- a/Applications/Core TLP.md +++ b/Applications/Core TLP.md @@ -51,8 +51,6 @@ All relevant IP is already managed by the Node.js Foundation. * **Alexis Campailla** <orangemocha@nodejs.org> ([@orangemocha](https://github.com/orangemocha)) * **Julien Gilli** <jgilli@nodejs.org> ([@misterdjules](https://github.com/misterdjules)) * **James M Snell** <jasnell@gmail.com> ([@jasnell](https://github.com/jasnell)) -* **Steven R Loomis** <srloomis@us.ibm.com> ([@srl295](https://github.com/srl295)) -* **Michael Dawson** <michael_dawson@ca.ibm.com> ([@mhdawson](https://github.com/mhdawson)) * **Shigeki Ohtsu** <ohtsu@iij.ad.jp> ([@shigeki](https://github.com/shigeki)) * **Brian White** <mscdex@mscdex.net> ([@mscdex](https://github.com/mscdex)) From 08a1fd67794afa172c94f66b77eea5de99d0922e Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Wed, 14 Oct 2015 10:32:10 -0700 Subject: [PATCH 08/13] Fixing a variety of gramerical and style issues. --- Applications/Core TLP.md | 16 ++++++++-------- Project Lifecycle.md | 20 ++++++++++---------- README.md | 6 +++--- TSC-Charter.md | 18 +++++++++--------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/Applications/Core TLP.md b/Applications/Core TLP.md index aa53fc21..3e37032e 100644 --- a/Applications/Core TLP.md +++ b/Applications/Core TLP.md @@ -1,6 +1,6 @@ ## Introduction -Currently the Node.js Foundation directly oversees the development of the core platform and associated working groups. The addition of Top Level Projects will predictably increase the workload on the TSC and so it makes sense to transfer these responsibilities to a Top Level Project concerned solely with the development of the platform. +The Node.js Foundation directly oversees the development of the core platform and associated working groups. The addition of top-level Projects will predictably increase the workload on the TSC and so it makes sense to transfer these responsibilities to a top-level Project concerned solely with the development of the platform. ## History & Metrics @@ -8,11 +8,11 @@ Created by Ryan Dahl, now the largest programming ecosystem in the world. ## Scope -The Core TLP will have sole responsibility and discretion over the node.js project in the following areas: +The Core TLP will have sole responsibility and discretion over the Node.js project in the following areas: -* Setting release dates -* Release quality standards -* Technical direction +* Setting release dates. +* Release quality standards. +* Technical direction. * Governance process and practices. * Contribution process and practices. * Maintaining the list of additional Collaborators. @@ -31,12 +31,12 @@ https://github.com/nodejs/node/blob/master/CONTRIBUTING.md ## Tools * GitHub `nodejs` org. -* Uberconference & Soundcloud -* Google Hangouts & Youtube +* Uberconference & Soundcloud. +* Google Hangouts & Youtube. ## IP -All relevant IP is already managed by the Node.js Foundation. +All relevant IP is managed by the Node.js Foundation. ## TC Members diff --git a/Project Lifecycle.md b/Project Lifecycle.md index 2ee47200..252b6647 100644 --- a/Project Lifecycle.md +++ b/Project Lifecycle.md @@ -2,7 +2,7 @@ ## Project Definition -The Node.js Foundation hosts several "Top Level Projects." These projects are autonomous from each other and governed by their own TC (Technical Committee) and chartered by the Node.js Foundation TSC. +The Node.js Foundation hosts several "Top-Level Projects." These projects are autonomous from each other and governed by their own TC (Technical Committee) and chartered by the Node.js Foundation TSC. Projects are free to create "Working Groups" which are autonomous groups collaborating to fulfill a set of responsibilities. Working Groups are eventually chartered by the TC. The TSC also charters its own Working Groups. @@ -29,7 +29,7 @@ The purpose of incubation is to support and mentor projects entering the foundat * Transparent * Effective -While certain processes are strongly recommended because of the TSC's experience the goal of incubation is not to enforce a specific set of processes but to ensure that the processes adopted and accepted by a project achieve these goals. Therefor, the requirements for graduating from incubation are based on metrics that demonstrate success in terms of these values. These metrics are: +While certain processes are strongly recommended because of the TSC's experience the goal of incubation is not to enforce a specific set of processes but to ensure that the processes adopted and accepted by a project achieve these goals. Therefore, the requirements for graduating from incubation are based on metrics that demonstrate success in terms of these values. These metrics are: * TC is 5 members or greater. * No more than 1/4 of the TC is affiliated with the same employer. @@ -38,7 +38,7 @@ While certain processes are strongly recommended because of the TSC's experience A project may apply to graduate from incubation at any time by calling for a vote in the TSC. -While a project is incubating it is assigned at least 3 [mentors](https://github.com/nodejs/TSC/blob/master/README.md#mentors) who are responsible for working with the project to adopt policies and gain the health and contributorship it will need in order to graduate from incubation. +While a project is incubating it is assigned at least 3 [mentors](https://github.com/nodejs/TSC/blob/master/README.md#mentors) who are responsible for working with the project to adopt policies and gain the health and contributorship it will need in order to graduate from incubation. The mentor list is nominated and approved by the TSC and is expected to be larger than the TSC. ## Lifecycle @@ -46,7 +46,7 @@ The Foundation shall encourage new Projects and innovation in the community. New The project should be considered mature and have a history of releases before applying to enter the foundation. -## Top Level Project and Working Group Requirements +## Top-Level Project and Working Group Requirements All TLPs and WGs are expected to operate in a transparent manor. Decisions must be made publicly through a documented public process managed by each TLP TC or WG. @@ -54,17 +54,17 @@ All TLPs and WGs must use a participatory decision making process. All TLP TCs m ### Security -All projects in the foundation share the same base security policy. The foundation's security team triages issues sent to security@nodejs.org. Top Level Projects, whether in the incubator or not, are expected to maintain a private security repository where the security team can bring project specific issues. +All projects in the foundation share the same base security policy. The foundation's security team triages issues sent to security@nodejs.org. Top-Level Projects, whether in the incubator or not, are expected to maintain a private security repository where the security team can bring project-specific issues. -## Top Level Projects +## Top-Level Projects -All Top Level Project TCs must follow a [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process and are responsible for documenting and keeping up to date their current processes and practices. +All Top-Level Project TCs must follow a [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process and are responsible for documenting and keeping up to date their current processes and practices. Each TLP TC must elect a representative to the Node.js Foundation TSC or vote to abstain from representation on the TSC. ## Applying to join -A proposal to join the Node.js Foundation as a Top Level Project or Working Group must include: +A proposal to join the Node.js Foundation as a top-level Project or Working Group must include: * Introduction and project description. * Project history. @@ -78,7 +78,7 @@ A proposal to join the Node.js Foundation as a Top Level Project or Working Grou * List of initial Working Groups. * Prior to being admitted the project: * Must include [DCO](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). - * Must include approved license (MIT, Apache2, etc). + * Must include approved license. If it is not currently under an approved license it will need to be cleared by the TSC and the Node.js Foundation Legal Committee prior to acceptance in to the incubator. * Must include a [Code of Conduct](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#code-of-conduct). Each proposal should be sent as a pull request to this repository in the Applications directory. Proposals do not have to be complete to be submitted, the TSC can work with the authors and their respective communities in each Pull Request. @@ -89,6 +89,6 @@ At this time the foundation is only accepting projects which use an MIT, BSD, IS ### Admittance -The Node.js Foundation is quite new and currently has a limited number of resources available to mentor new projects. As such, projects are chosen for admission in groups as mentors become available. +The Node.js Foundation is quite new and currently has limited resources available to mentor new projects. As such, projects are chosen for admission in groups as mentors become available. You can apply at any time and the TSC and available mentors will help improve your application while awaiting the next available approval phase. diff --git a/README.md b/README.md index f2bbfc17..a9b3dbc7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The Node.js Foundation TSC -The Node.js Foundation Technical Steering Committee is the technical governing body of the Node.js Foundation. It admits and oversees all Top Level Projects in the Node.js Foundation. It also elects a representative to the Node.js Foundation Board of Directors. +The Node.js Foundation Technical Steering Committee is the technical governing body of the Node.js Foundation. It admits and oversees all top-level Projects in the Node.js Foundation. It also elects a representative to the Node.js Foundation Board of Directors. For more details read the [TSC Charter](https://github.com/nodejs/TSC/blob/master/TSC-Charter.md) adopted by the Node.js Foundation Board of Directors on June 17th 2015. @@ -8,11 +8,11 @@ If your project is interested in joining the Node.js Foundation please read the ## TSC Members -## Top Level WG and TLPs +## Top-Level WG and TLPs * Working Groups * Mentors -* Top Level Projects +* Top-Level Projects * Core TLP ## Mentors diff --git a/TSC-Charter.md b/TSC-Charter.md index 0255fad2..1cd055f8 100644 --- a/TSC-Charter.md +++ b/TSC-Charter.md @@ -34,15 +34,15 @@ The TSC shall meet regularly using tools that enable participation by the commun Subject to such policies as may be set by the Board, the TSC is responsible for all technical development within the Node.js Foundation, including: -* Setting release dates -* Release quality standards -* Technical direction -* Project governance and process (including this policy) -* 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 +* Setting release dates. +* Release quality standards. +* Technical direction. +* Project governance and process (including this policy). +* 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 Foundation’s release vehicles and serve as Node.js Foundation’s primary technical liaison body with external open source projects, consortiums and groups. From 73bd9495e50383e280f4f2dd3d2924aa7df4a5b8 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Wed, 14 Oct 2015 10:34:04 -0700 Subject: [PATCH 09/13] No more spaces in filenames. --- Applications/{Core TLP.md => Core-TLP.md} | 0 Applications/{Evangelism WG.md => Evangelism-WG.md} | 0 .../{NodeConf Collective TLP.md => NodeConf-Collective-TLP.md} | 0 Project Lifecycle.md => Project-Lifecycle.md | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename Applications/{Core TLP.md => Core-TLP.md} (100%) rename Applications/{Evangelism WG.md => Evangelism-WG.md} (100%) rename Applications/{NodeConf Collective TLP.md => NodeConf-Collective-TLP.md} (100%) rename Project Lifecycle.md => Project-Lifecycle.md (100%) diff --git a/Applications/Core TLP.md b/Applications/Core-TLP.md similarity index 100% rename from Applications/Core TLP.md rename to Applications/Core-TLP.md diff --git a/Applications/Evangelism WG.md b/Applications/Evangelism-WG.md similarity index 100% rename from Applications/Evangelism WG.md rename to Applications/Evangelism-WG.md diff --git a/Applications/NodeConf Collective TLP.md b/Applications/NodeConf-Collective-TLP.md similarity index 100% rename from Applications/NodeConf Collective TLP.md rename to Applications/NodeConf-Collective-TLP.md diff --git a/Project Lifecycle.md b/Project-Lifecycle.md similarity index 100% rename from Project Lifecycle.md rename to Project-Lifecycle.md From e1b83527042be6f51b8bb36c74e0a354bb3f4610 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Wed, 14 Oct 2015 10:42:41 -0700 Subject: [PATCH 10/13] Fixing line lengths. --- Applications/Core-TLP.md | 13 ++- Project-Lifecycle.md | 99 +++++++++++++++------ TSC-Charter.md | 180 +++++++++++++++++++++++++++++++-------- 3 files changed, 227 insertions(+), 65 deletions(-) diff --git a/Applications/Core-TLP.md b/Applications/Core-TLP.md index 3e37032e..5d031f99 100644 --- a/Applications/Core-TLP.md +++ b/Applications/Core-TLP.md @@ -1,6 +1,10 @@ ## Introduction -The Node.js Foundation directly oversees the development of the core platform and associated working groups. The addition of top-level Projects will predictably increase the workload on the TSC and so it makes sense to transfer these responsibilities to a top-level Project concerned solely with the development of the platform. +The Node.js Foundation directly oversees the development of the core +platform and associated working groups. The addition of top-level Projects +will predictably increase the workload on the TSC and so it makes sense to +transfer these responsibilities to a top-level Project concerned solely +with the development of the platform. ## History & Metrics @@ -8,7 +12,8 @@ Created by Ryan Dahl, now the largest programming ecosystem in the world. ## Scope -The Core TLP will have sole responsibility and discretion over the Node.js project in the following areas: +The Core TLP will have sole responsibility and discretion over the Node.js +project in the following areas: * Setting release dates. * Release quality standards. @@ -66,4 +71,6 @@ All relevant IP is managed by the Node.js Foundation. ## Provisional -The membership is already well under the 1/4 representation limit and the project has been well established for quite a while. It should skip the incubation phase. +The membership is already well under the 1/4 representation limit and the +project has been well established for quite a while. It should skip the +incubation phase. diff --git a/Project-Lifecycle.md b/Project-Lifecycle.md index 252b6647..a0413801 100644 --- a/Project-Lifecycle.md +++ b/Project-Lifecycle.md @@ -2,9 +2,14 @@ ## Project Definition -The Node.js Foundation hosts several "Top-Level Projects." These projects are autonomous from each other and governed by their own TC (Technical Committee) and chartered by the Node.js Foundation TSC. +The Node.js Foundation hosts several "Top-Level Projects." These projects +are autonomous from each other and governed by their own TC (Technical +Committee) and chartered by the Node.js Foundation TSC. -Projects are free to create "Working Groups" which are autonomous groups collaborating to fulfill a set of responsibilities. Working Groups are eventually chartered by the TC. The TSC also charters its own Working Groups. +Projects are free to create "Working Groups" which are autonomous groups +collaborating to fulfill a set of responsibilities. Working Groups are +eventually chartered by the TC. The TSC also charters its own Working +Groups. ``` TSC @@ -19,76 +24,120 @@ Projects are free to create "Working Groups" which are autonomous groups collabo |-- Working Group B (Chartered by TSC) ``` -Both TLPs and TSC WGs may elect a representative to the TSC. TLPs and WGs with *incubation* status are not granted voting privileges on the TSC. +Both TLPs and TSC WGs may elect a representative to the TSC. TLPs and WGs +with *incubation* status are not granted voting privileges on the TSC. ## Incubation -The purpose of incubation is to support and mentor projects entering the foundation. The goal is for projects to be: +The purpose of incubation is to support and mentor projects entering the +foundation. The goal is for projects to be: * Participatory * Transparent * Effective -While certain processes are strongly recommended because of the TSC's experience the goal of incubation is not to enforce a specific set of processes but to ensure that the processes adopted and accepted by a project achieve these goals. Therefore, the requirements for graduating from incubation are based on metrics that demonstrate success in terms of these values. These metrics are: +While certain processes are strongly recommended because of the TSC's +experience the goal of incubation is not to enforce a specific set of +processes but to ensure that the processes adopted and accepted by a +project achieve these goals. Therefore, the requirements for graduating +from incubation are based on metrics that demonstrate success in terms of +these values. These metrics are: * TC is 5 members or greater. * No more than 1/4 of the TC is affiliated with the same employer. -* Members of the TC live in at least 4 different timezones and representing no fewer than three countries. +* Members of the TC live in at least 4 different timezones and +representing no fewer than three countries. * The decision making and release process is documented and publicly accessible. -A project may apply to graduate from incubation at any time by calling for a vote in the TSC. +A project may apply to graduate from incubation at any time by calling +for a vote in the TSC. -While a project is incubating it is assigned at least 3 [mentors](https://github.com/nodejs/TSC/blob/master/README.md#mentors) who are responsible for working with the project to adopt policies and gain the health and contributorship it will need in order to graduate from incubation. The mentor list is nominated and approved by the TSC and is expected to be larger than the TSC. +While a project is incubating it is assigned at least 3 +[mentors](https://github.com/nodejs/TSC/blob/master/README.md#mentors) +who are responsible for working with the project to adopt policies and +gain the health and contributorship it will need in order to graduate +from incubation. The mentor list is nominated and approved by the TSC and +is expected to be larger than the TSC. ## Lifecycle -The Foundation shall encourage new Projects and innovation in the community. New Projects enter the Node.js Foundation through a [Proposal](#Proposal). +The Foundation shall encourage new Projects and innovation in the +community. New Projects enter the Node.js Foundation through a +[Proposal](#Proposal). -The project should be considered mature and have a history of releases before applying to enter the foundation. +The project should be considered mature and have a history of releases +before applying to enter the foundation. ## Top-Level Project and Working Group Requirements -All TLPs and WGs are expected to operate in a transparent manor. Decisions must be made publicly through a documented public process managed by each TLP TC or WG. +All TLPs and WGs are expected to operate in a transparent manor. +Decisions must be made publicly through a documented public process +managed by each TLP TC or WG. -All TLPs and WGs must use a participatory decision making process. All TLP TCs must ensure they are accurately representing the WGs in their TLP. +All TLPs and WGs must use a participatory decision making process. All +TLP TCs must ensure they are accurately representing the WGs in their +TLP. ### Security -All projects in the foundation share the same base security policy. The foundation's security team triages issues sent to security@nodejs.org. Top-Level Projects, whether in the incubator or not, are expected to maintain a private security repository where the security team can bring project-specific issues. +All projects in the foundation share the same base security policy. The +foundation's security team triages issues sent to security@nodejs.org. +Top-Level Projects, whether in the incubator or not, are expected to +maintain a private security repository where the security team can bring +project-specific issues. ## Top-Level Projects -All Top-Level Project TCs must follow a [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process and are responsible for documenting and keeping up to date their current processes and practices. +All Top-Level Project TCs must follow a [Consensus +Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +process and are responsible for documenting and keeping up to date their +current processes and practices. -Each TLP TC must elect a representative to the Node.js Foundation TSC or vote to abstain from representation on the TSC. +Each TLP TC must elect a representative to the Node.js Foundation TSC or +vote to abstain from representation on the TSC. ## Applying to join -A proposal to join the Node.js Foundation as a top-level Project or Working Group must include: +A proposal to join the Node.js Foundation as a top-level Project or +Working Group must include: * Introduction and project description. * Project history. -* Any available metrics or even estimates about the user base, ecosystem and community. +* Any available metrics or even estimates about the user base, ecosystem +and community. * Project scope. * Current governance process. * Current contribution process. -* List of current tools in use by the project (forums, issue trackers, GitHub orgs, etc). -* Existing IP Policy and relevant intellectual property (trademarks, domain names, etc). +* List of current tools in use by the project (forums, issue trackers, + GitHub orgs, etc). +* Existing IP Policy and relevant intellectual property (trademarks, + domain names, etc). * List of initial TC members. * List of initial Working Groups. * Prior to being admitted the project: - * Must include [DCO](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). - * Must include approved license. If it is not currently under an approved license it will need to be cleared by the TSC and the Node.js Foundation Legal Committee prior to acceptance in to the incubator. + * Must include + [DCO](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#developers-certificate-of-origin-10). + * Must include approved license. If it is not currently under an + approved license it will need to be cleared by the TSC and the Node.js + Foundation Legal Committee prior to acceptance in to the incubator. * Must include a [Code of Conduct](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#code-of-conduct). -Each proposal should be sent as a pull request to this repository in the Applications directory. Proposals do not have to be complete to be submitted, the TSC can work with the authors and their respective communities in each Pull Request. +Each proposal should be sent as a pull request to this repository in the +Applications directory. Proposals do not have to be complete to be +submitted, the TSC can work with the authors and their respective +communities in each Pull Request. ### Approved Licenses -At this time the foundation is only accepting projects which use an MIT, BSD, ISC or Apache2 license. +At this time the foundation is only accepting projects which use an MIT, +BSD, ISC or Apache2 license. ### Admittance -The Node.js Foundation is quite new and currently has limited resources available to mentor new projects. As such, projects are chosen for admission in groups as mentors become available. +The Node.js Foundation is quite new and currently has limited resources +available to mentor new projects. As such, projects are chosen for +admission in groups as mentors become available. -You can apply at any time and the TSC and available mentors will help improve your application while awaiting the next available approval phase. +You can apply at any time and the TSC and available mentors will help +improve your application while awaiting the next available approval +phase. diff --git a/TSC-Charter.md b/TSC-Charter.md index 1cd055f8..47994944 100644 --- a/TSC-Charter.md +++ b/TSC-Charter.md @@ -4,35 +4,75 @@ ## 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 Foundation will operate 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. -Most large, complex open source communities have both a business and a technical governance model. Node.js Foundation’s technical leadership contains both a Technical Steering Committee (“TSC”) and Maintainers for major components or subsystems. Node.js Foundation’s business leadership is instantiated in a 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 propose changes using simple majority of the full TSC, the proposed changes being subject to review and approval by the Board. The Board 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 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. +Most large, complex open source communities have both a business and a +technical governance model. Node.js Foundation’s technical leadership +contains both a Technical Steering Committee (“TSC”) and Maintainers for +major components or subsystems. Node.js Foundation’s business leadership +is instantiated in a 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 +propose changes using simple majority of the full TSC, the proposed +changes being subject to review and approval by the Board. The Board 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 +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. -TSC memberships are not time-limited. There is no fixed size of the TSC. However, the expected target is between 6 and 12, to ensure adequate coverage of important areas of expertise, balanced with the ability to make decisions efficiently. +TSC memberships are not time-limited. There is no fixed size of the TSC. +However, the expected target is between 6 and 12, to ensure adequate +coverage of important areas of expertise, balanced with the ability to +make decisions efficiently. -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 and vote. A TSC member may be removed from the TSC by voluntary resignation, or by a standard TSC motion. +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 and vote. A TSC member may be removed from +the TSC by voluntary resignation, or by a standard TSC motion. -Changes to TSC membership should be posted in the agenda, and may be suggested as any other agenda item. +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). +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 members shall consist of Maintainers from Core Projects as defined in the project lifecycle document and Section 7. +The TSC members shall consist of Maintainers from Core Projects as +defined in the project lifecycle document and Section 7. -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. Minutes or an appropriate recording shall be taken and made available to the community through accessible public postings. +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. Minutes or an appropriate recording shall be taken +and made available to the community through accessible public postings. ## Section 5. 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, including: +Subject to such policies as may be set by the Board, the TSC is +responsible for all technical development within the Node.js Foundation, +including: * Setting release dates. * Release quality standards. @@ -42,62 +82,128 @@ Subject to such policies as may be set by the Board, the TSC is responsible for * Conduct guidelines. * Maintaining the list of additional Collaborators. * Development process and any coding standards. -* Mediating technical conflicts between Collaborators or Foundation projects. +* 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 Foundation’s release vehicles and serve as +Node.js Foundation’s primary technical liaison body with external open +source projects, consortiums and groups. ## Section 6. Node.js Foundation Operations. -The TSC will establish and maintain a development process for Node.js Foundation Projects. 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: +The TSC will establish and maintain a development process for Node.js +Foundation Projects. 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). +* 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. +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. ## Section 7. Elections -Leadership roles in Node.js Foundation will be peer elected representatives of the community. +Leadership roles in Node.js Foundation will be peer elected +representatives of the community. -For election of persons (TSC Chairperson, Maintainers, etc.) a multiple-candidate method should be used, e.g.: +For election of persons (TSC Chairperson, Maintainers, etc.) a +multiple-candidate method should be used, e.g.: * [Condorcet](http://en.wikipedia.org/wiki/Condorcet_method) or * [Single Transferable Vote](http://en.wikipedia.org/wiki/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 candidates election. Elections shall be done within the Projects by the Collaborators active in the Project. +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. -Each Core Project’s Collaborators shall elect one Maintainer from the Collaborators on the project to serve on the TSC. There may be only one Maintainer per Core Project that shall be nominated and elected by the Collaborators within the Core Project. +Each Core Project’s Collaborators shall elect one Maintainer from the +Collaborators on the project to serve on the TSC. There may be only one +Maintainer per Core Project that shall be nominated and elected by the +Collaborators within the Core Project. -The TSC will elect from amongst voting TSC members a TSC Chairperson to work on building an agenda for TSC meetings and represent the TSC to the Board for a term of one year according to the Node.js Foundation’s By-laws. The TSC shall hold annual elections to select a TSC Chairperson; there are no limits on the number of terms a TSC Chairperson may serve. +The TSC will elect from amongst voting TSC members a TSC Chairperson to +work on building an agenda for TSC meetings and represent the TSC to the +Board for a term of one year according to the Node.js Foundation’s +By-laws. The TSC shall hold annual elections to select a TSC Chairperson; +there are no limits on the number of terms a TSC Chairperson may serve. ## Section 8. 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. +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](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) 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. +The TSC follows a [Consensus +Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +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. Simple majority wins, with the following exceptions, which will require the affirmative vote of two-thirds of the members of the TSC to pass: +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. Simple majority wins, with the following +exceptions, which will require the affirmative vote of two-thirds of the +members of the TSC to pass: * Adding or removing members of the TSC * Changes to the TSC Charter (which also require Board approval) ## Section 9. Project Roles -The Node.js Foundation git repository is maintained by the TSC and additional Collaborators who are added by the TSC on an ongoing basis. +The Node.js Foundation 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 the weekly TSC meeting. Modifications of the contents of the git repository are made on a collaborative basis as defined in the development process. +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 the weekly 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 by Project, as well as a development process guide for Collaborators and Contributors looking to participate in the development effort. +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 +well as a development process guide for Collaborators and Contributors +looking to participate in the development effort. ## Section 10. 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 projects’ Maintainer or the TSC. Contributors should rarely be encumbered by the TSC and never by the Board. +* **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 projects’ Maintainer +or the TSC. Contributors should rarely be encumbered by the TSC and never +by the Board. -* **Project**: a technical collaboration effort, e.g. a subsystem, that is organized through the project creation process and approved by the TSC. +* **Project**: a technical collaboration effort, e.g. a subsystem, that +is organized through the project creation process and approved by the +TSC. -* **Maintainer**: a Collaborator within a Core Project elected to represent the Core Project on the TSC. +* **Maintainer**: a Collaborator within a Core Project elected to +represent the Core Project on the TSC. From 78f1ccff29211910f4350c7c7fd939a67490236f Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Wed, 14 Oct 2015 13:12:27 -0700 Subject: [PATCH 11/13] For now, all WGs will fall under the Core TLP. --- Applications/Core-TLP.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Applications/Core-TLP.md b/Applications/Core-TLP.md index 5d031f99..9ff20c73 100644 --- a/Applications/Core-TLP.md +++ b/Applications/Core-TLP.md @@ -61,13 +61,7 @@ All relevant IP is managed by the Node.js Foundation. ## Working Groups -* [Website](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#website) -* [Streams](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#streams) -* [Build](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#build) -* [Tracing](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#tracing) -* [Roadmap](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#roadmap) -* [Docker](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#docker) -* [Addon API](https://github.com/nodejs/node/blob/master/WORKING_GROUPS.md#addon-api) +All previously existing chartered and un-chartered working groups. ## Provisional From 1708a268b74ffd59a22ee1042d106c73cd3a6fe1 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Wed, 14 Oct 2015 13:56:14 -0700 Subject: [PATCH 12/13] Grammar. --- Project-Lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project-Lifecycle.md b/Project-Lifecycle.md index a0413801..ed455bf0 100644 --- a/Project-Lifecycle.md +++ b/Project-Lifecycle.md @@ -70,7 +70,7 @@ before applying to enter the foundation. ## Top-Level Project and Working Group Requirements -All TLPs and WGs are expected to operate in a transparent manor. +All TLPs and WGs are expected to operate in a transparent manner. Decisions must be made publicly through a documented public process managed by each TLP TC or WG. From 37841ffd43b91d7c88664cb002a5d873c44fb809 Mon Sep 17 00:00:00 2001 From: Mikeal Rogers Date: Wed, 14 Oct 2015 14:03:05 -0700 Subject: [PATCH 13/13] Making the Core TLP option clearer. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9b3dbc7..6253c316 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ If your project is interested in joining the Node.js Foundation please read the * Mentors * Top-Level Projects * Core TLP + * Core WGs (streams, http, Intl) ## Mentors