build: use nyc for test coverage
[express.git] / Charter.md
blobf9647cb734debf3b1e6cf4296387ec0dfc3235df
1 # Express Charter
3 ## Section 0: Guiding Principles
5 The Express project is part of the OpenJS Foundation which operates
6 transparently, openly, collaboratively, and ethically.
7 Project proposals, timelines, and status must not merely be open, but
8 also easily visible to outsiders.
10 ## Section 1: Scope
12 Express is a http web server framework with a simple and expressive API
13 which is highly aligned with Node.js core. We aim to be the best in
14 class for writing performant, spec compliant, and powerful web servers
15 in Node.js. As one of the oldest and most popular web frameworks in
16 the ecosystem, we have an important place for new users and experts
17 alike.
19 ### 1.1: In-scope
21 Express is made of many modules spread between three GitHub Orgs:
23 - [expressjs](http://github.com/expressjs/): Top level middleware and
24   libraries
25 - [pillarjs](http://github.com/pillarjs/): Components which make up
26   Express but can also be used for other web frameworks
27 - [jshttp](http://github.com/jshttp/): Low level http libraries
29 ### 1.2: Out-of-Scope
31 Section Intentionally Left Blank
33 ## Section 2: Relationship with OpenJS Foundation CPC.
35 Technical leadership for the projects within the OpenJS Foundation is
36 delegated to the projects through their project charters by the OpenJS
37 Cross Project Council (CPC). In the case of the Express project, it is
38 delegated to the Express Technical Committee ("TC").
40 This Technical Committee is in charge of both the day-to-day operations
41 of the project, as well as its technical management. This charter can
42 be amended by the TC requiring at least two approvals and a minimum two
43 week comment period for other TC members or CPC members to object. Any
44 changes the CPC wishes to propose will be considered a priority but
45 will follow the same process.
47 ### 2.1 Other Formal Project Relationships
49 Section Intentionally Left Blank
51 ## Section 3: Express Governing Body
53 The Express project is managed by the Technical Committee ("TC").
54 Members can be added to the TC at any time. Any committer can nominate
55 another committer to the TC and the TC uses its standard consensus
56 seeking process to evaluate whether or not to add this new member.
57 Members who do not participate consistently at the level of a majority
58 of the other members are expected to resign.
60 ## Section 4: Roles & Responsibilities
62 The Express TC manages all aspects of both the technical and community
63 parts of the project. Members of the TC should attend the regular
64 meetings when possible, and be available for discussion of time
65 sensitive or important issues.
67 ### Section 4.1 Project Operations & Management
69 Section Intentionally Left Blank
71 ### Section 4.2: Decision-making, Voting, and/or Elections
73 The Express TC uses a "consensus seeking" process for issues that are
74 escalated to the TC. The group tries to find a resolution that has no
75 open objections among TC members. If a consensus cannot be reached
76 that has no objections then a majority wins vote is called. It is also
77 expected that the majority of decisions made by the TC are via a
78 consensus seeking process and that voting is only used as a last-resort.
80 Resolution may involve returning the issue to committers with
81 suggestions on how to move forward towards a consensus. It is not
82 expected that a meeting of the TC will resolve all issues on its
83 agenda during that meeting and may prefer to continue the discussion
84 happening among the committers.
86 ### Section 4.3: Other Project Roles
88 Section Intentionally Left Blank
90 ## Section 5: Definitions
92 Section Intentionally Left Blank