This repository has been archived by the owner on Nov 1, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 22
Reconciling Project Lifecyce with io.js WGs and future projects #33
Merged
Merged
Changes from 1 commit
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
552c1ec
First attempt to reconcile with io.js
mikeal c992c22
s/manor/manner
mikeal ab9a8e1
s/achieve/fulfill
mikeal de52530
Full re-write for multiple top level projects.
mikeal cfb564f
Grammar fix
4850c58
Merge pull request #3 from ericelliott/patch-1
mikeal 2e73c11
Adding working group merger plan.
mikeal df536fd
Merge branch 'master' of github.com:joyent/nodejs-advisory-board into…
mikeal ca233f5
Merge branch 'lifecycle' of github.com:mikeal/nodejs-advisory-board i…
mikeal 665c4da
A few WGs are active but have yet to produce a translation or get a t…
mikeal File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,70 +2,74 @@ | |
|
||
# Node.js Foundation Project Lifecycle | ||
|
||
## Project Definition | ||
|
||
A *project* is an autonomous group collaborating to achieve a set of responsibilities. | ||
|
||
A project could be a working group collaborating with multiple groups both inside and outside the foundation but with no specific code base of its own to be released. A project could also be a traditional module or set of modules released regularly. This document draws no distinction between what are traditionally referred to as "working groups" or "committees" and traditional software projects. | ||
|
||
## Lifecycle | ||
|
||
Node.js Foundation’s technical Projects shall follow a lifecycle described in this Project Lifecycle document. | ||
|
||
The TSC shall create, align and coordinate Projects that are ideally developed together, including possibly, the creation of sub-Projects. The TSC shall have the power to reorganize Projects and sub-Projects after sufficient review and discussion with the Projects and community involved. | ||
The TSC shall encourage new Projects and innovation in the technical community. New Projects enter the Node.js technical community through a Proposal to the TSC or through the Bootstrap process. | ||
|
||
## Bootstrap and Proposal | ||
|
||
The TSC shall encourage new Projects and innovation in the technical community. New Projects enter the Node.js technical community through a Proposal to the TSC and if approved, are granted Incubation-state status. | ||
Before a project is chartered it must first incubate in some manor. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. spelling fix: |
||
|
||
Projects shall change state following TSC reviews. Projects typically change states independently from each other, but can cooperate closely and leverage each other’s results. Projects graduate from Proposal-state, through Incubation-state and Mature-state to Core-state. Archived–state is a Project state reserved for those Projects no longer being actively developed or used by the community. | ||
If a project needs to start *in* the foundation members are free to create a repository and begin regular meetings using the free tools available to all project members. During this period the project is unchartered and in the "Bootstrap" cycle and is not entitled to any financial or legal resources of the foundation and can be closed at any time by the TSC. Once the project matures and is ready to write a proposal that is sent to the TSC for approval and the project moves to the "Mature" phase once approved. | ||
|
||
The TSC shall have the authority to grandfather proposed Projects with a significant history and record to meet the project state descriptions below into a higher order state during the first 12 months after the first TSC meeting. | ||
It is also common for projects to incubate and mature outside the foundation. These projects do not need to incubate within the foundation itself and instead should write a proposal for the TSC to approve and move directly to the "Mature" pahse. | ||
|
||
Projects shall change state following TSC reviews. Projects typically change states independently from each other, but can cooperate closely and leverage each other’s results. Projects graduate from Proposal-state, through Incubation-state and Mature-state to Core-state. Archived–state is a Project state reserved for those Projects no longer being actively developed or used by the community. | ||
|
||
| Project state | Description | | ||
| ------------- | ----------- | | ||
| Proposal | Project does not formally exist yet, may not have real resources (yet), but is being worked on by the community to submit a formal proposal to the TSC. | | ||
| Incubation | Project has been approved by the TSC, has resources, but is recognized to be nascent. | | ||
| Mature | Project is fully functioning and stable, has achieved successful releases, has a Project Lead, but is not a required component of the platform.| | ||
| Incubation | Project has not been approved and is unchartered. Project does not formally exist yet, may not have real resources (yet), but is being worked on by the community. | | ||
| Proposal | Project proposal is posted and under review. | | ||
| Mature | Project is fully functioning but is not a required component of the platform.| | ||
| Core | Project is a required component of the Node.js platform.| | ||
| Archived | Project has been recognized as no longer being actively used or developed. This could be for a variety of reasons, e.g. project successfully accomplished its goals but is no longer used, project failed, etc., and has been archived as it's no longer a going concern.| | ||
|
||
### Project state transitions | ||
|
||
| From State | To State | Review | | ||
| ---------- | -------- | ------ | | ||
| `null` | Proposal | n/a | | ||
| Proposal | Incubation | Creation Review | | ||
| Incubation | Mature | Graduation Review | | ||
| Proposal | Mature | Proposal Review | | ||
| Mature | Core | Core Review | | ||
| Proposal, Incubation, Mature, Core | Archived | Archive Review | | ||
| Proposal, Bootstrap, Mature, Core | Archived | Archive Review | | ||
|
||
## Reviews | ||
|
||
### Creation Review | ||
* Proposal posted for two weeks, evaluated on metrics of: | ||
### Proposal Review | ||
* Proposal posted for two weeks, evaluated on metrics of: | ||
* Name is okay (e.g. no use of a trademark) | ||
* Project contact name and email | ||
* Project contact name, email and/or repo. | ||
* Description is complete | ||
* Scope and project plan is well defined | ||
* Resources are committed | ||
* Initial Committers named | ||
* Contributors have been identified | ||
* Resources are well defined | ||
* Initial members named | ||
* Initial contributors named | ||
* Meets Foundation’s policies (e.g. IP Policy) | ||
* Proposal has been socialized with potentially interested or affected existing Projects | ||
* Proposal email has been sent to the TSC mailing list | ||
* Review by TSC: Confirm that the proposal is complete and the above listed requirements have been sufficiently met. | ||
|
||
### Graduation Review | ||
* Graduation proposal posted for two weeks: | ||
* The Project demonstrates stable output (code base, documents, tests) | ||
* The Project demonstrates stable output (e.g. code base, documents, tests, meetings, releases) | ||
* Active community working on the Project | ||
* History of successful, consistent releases in accordance with the release process | ||
* History of successful | ||
* TSC review | ||
* Working and stable code base exists | ||
* Active community exists | ||
* Project has demonstrated a history of releases following the release process and cadence | ||
* Confirmed acceptance and successful integration of contributions/code to partner/upstream projects. | ||
* Testing/integration environment defined and mature, tests and integration run successfully | ||
* Detailed documentation available documenting the code | ||
* Working and stable community and output. | ||
* Confirmed acceptance and successful integration of contributions/code to partner/upstream projects when applicable. | ||
* Testing/integration environment defined and mature, tests and integration run successfully when applicable. | ||
* Well defined project documentation: contribution, governance, membership, and conduct policies in place. | ||
|
||
### Core Review | ||
* Core-state proposal posted for two weeks | ||
* Project is shown to be viable, necessary or broadly useful module, subsystem or component of Node.js | ||
* Project build and test scripts have been created to work with the rest of Platform build | ||
* Project shown to not break continuous development and integration environment | ||
* Project is shown to be a viable and necessary subsystem or component of the Node.js Platform. | ||
* Project build and test scripts have been created to work with the rest of the Node.js Platform. | ||
* Project shown to not break continuous development and integration environment. | ||
* TSC review metrics | ||
* Core review assesses projects based on the metrics of the graduation review and the necessity of the project relative to the codebase and user requirements. | ||
* In addition the project is required to have confirmed longevity (e.g. the project has been active for at least one year, participates in release activities, and has release plans outlined to stay active for at least another year). | ||
* Core review assesses projects based on the metrics of the graduation review and the necessity of the project relative to the codebase and user requirements. | ||
* In addition the project is required to have confirmed longevity (e.g. the project has been active for at least one year, participates in release activities, and has release plans outlined to stay active for at least another year). | ||
|
||
### Termination Review | ||
* Termination proposal posted for two weeks | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/achieve/fulfill/g – "achieve" can be taken as "to attain", or "to gain", which doesn't seem to be the intent.