Skip to content

Commit 03b58f2

Browse files
authored
initial draft of project charter [ci skip]; closes #4087
PR: #4088
1 parent 8c5ed3a commit 03b58f2

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

PROJECT_CHARTER.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Mocha Charter
2+
3+
This project charter serves as a statement of scope and objectives for the **Mocha** project.
4+
5+
## §1: Guiding Principles
6+
7+
The **Mocha** 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.
8+
9+
## §2: Scope
10+
11+
**Mocha** is a unopinionated, _general-purpose testing framework_ for the JavaScript community. **Mocha** favors flexibility over rigidity, stability over disruption, and deliberation over agility. **Mocha** aims to do one thing, and do it well. **Mocha** will strive to evolve with the needs of the community, but will make every effort not to abandon its current users in doing so.
12+
13+
### §2.1: In-Scope
14+
15+
- APIs ("interfaces") to write and organize tests written in JavaScript or compile-to-JavaScript languages
16+
- Command-line executable to run tests in a Node.js-based terminal environment
17+
- API to run tests in a browser environment
18+
- Output test results and errors (provide "reporters") to:
19+
- Terminal
20+
- File
21+
- Browser
22+
- Memory
23+
- APIs to extend functionality
24+
- File-based and code-based configuration
25+
- Internal test coverage for all of the above
26+
- Documentation including (but not limited to):
27+
- Website ([https://mochajs.org](https://mochajs.org)) contents and design
28+
- Test-writing and test-organizing APIs
29+
- Reporters
30+
- [Extensible APIs](https://mochajs.org/api)
31+
- Tutorials and [code samples](https://github.com/mochajs/mocha-examples)
32+
- Command-line execution and options
33+
- Browser-based execution and options
34+
- [Project administration](https://github.com/mochajs/admin)
35+
- [Contribution guide](https://github.com/mochajs/mocha/blob/master/.github/CONTRIBUTING.md)
36+
- General support for multiple levels of tests, including (but not limited to):
37+
- Unit tests
38+
- Integration tests
39+
- Functional/end-to-end tests
40+
- Operational readiness tests
41+
- Tool configuration for project tests, build, documentation or website deployment
42+
- Bespoke tools, if needed
43+
- LTS (long-term support) policies, processes, and release cadence
44+
- Third-party service integrations (e.g., bots, CI servers, SCM)
45+
- Project-endorsed spaces for collaboration (chat rooms, mailing lists, forums, etc.)
46+
- Project-maintained social media, if any
47+
48+
### §2.2: Out-of-Scope
49+
50+
- [Test assertions](https://wikipedia.org/wiki/Test_assertion) and [mocks](https://en.wikipedia.org/wiki/Mock_object) or related
51+
- Compatibility with other 3rd-party libraries not hosted under GitHub's [mochajs organization](https://github.com/mochajs) unless explicitly stated in [§2: Scope](#%c2%a72-scope)
52+
- Note: _existence of "official" code samples does not imply explicit support_
53+
- Efforts must be made to retain compatibility with popular libraries, frameworks and tools, but not at the expense of Mocha itself
54+
- Use within _unmaintained_ versions of Node.js
55+
- Use within browsers not meeting a threshold decided upon by maintainers
56+
- Use within non-Node.js or non-browser environments, unless otherwise explicitly stated in [§2: Scope](#%c2%a72-scope)
57+
- "Unofficial" collaboration or Q&A spaces (including Stack Overflow and Quora)
58+
- Certain classes of contributions:
59+
- Bug fixes or enhancements without associated test coverage
60+
- Features having limited general-purpose use (as determined by maintainers)
61+
- Bug fixes which "break" more users than are affected by the bug itself, _regardless_ of "correctness"
62+
- Breaking changes to API without demonstrated need, especially those which would cause correct, currently-passing tests to fail
63+
- Changes that significantly negatively impact performance without demonstrated need
64+
- Code reviews, issue comments or pull requests which are dogmatic, demanding, or excessively critical as to discourage contributions by others
65+
- Those which violate Mocha's [Code of Conduct]
66+
67+
## §3: Relationship with OpenJS Foundation CPC
68+
69+
Technical leadership for the projects within the [OpenJS Foundation] is delegated to the projects through their project charters by the [OpenJS Foundation Cross-Project Council](https://openjsf.org/about/governance/) (CPC). In the case of the Mocha project, it is delegated exclusively to the maintainers of Mocha. The OpenJS Foundation's business leadership is the Board of Directors.
70+
71+
Changes to the following **cannot** unilaterally be applied by project leadership, and must be ratified by the CPC:
72+
73+
- Mocha's Project Charter (this document)
74+
- Mocha's [Code of Conduct]
75+
- Mocha's licenses: [MIT](https://github.com/mochajs/mocha/blob/master/LICENSE) (for code) and [CC-BY-4.0](https://github.com/mochajs/mocha/blob/master/docs/LICENSE-CC-BY-4.0) (for documentation/website)
76+
77+
### §3.1: Other Formal Project Relationships
78+
79+
Section Intentionally Left Blank
80+
81+
## §4: Mocha's Governing Body
82+
83+
Mocha is governed by its maintainers. See [MAINTAINERS.md] for more information.
84+
85+
## §5: Roles & Responsibilities
86+
87+
The roles and responsibilities of Mocha's maintainers are described in [MAINTAINERS.md].
88+
89+
### §5.1: Project Operations & Management
90+
91+
Project operations and processes are described in [MAINTAINERS.md].
92+
93+
### §5.2: Decision-making, Voting, and/or Elections
94+
95+
Mocha uses a loose consensus-seeking process, described in [MAINTAINERS.md].
96+
97+
### §5.3: Other Project Roles
98+
99+
Section Intentionally Left Blank
100+
101+
## §6: Definitions
102+
103+
Section Intentionally Left Blank
104+
105+
[openjs foundation]: https://openjsf.org
106+
[maintainers.md]: https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md
107+
[code of conduct]: https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md

0 commit comments

Comments
 (0)