Skip to content

Latest commit

 

History

History
107 lines (79 loc) · 5.5 KB

PROJECT_CHARTER.md

File metadata and controls

107 lines (79 loc) · 5.5 KB

Mocha Charter

This project charter serves as a statement of scope and objectives for the Mocha project.

§1: Guiding Principles

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.

§2: Scope

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.

§2.1: In-Scope

  • APIs ("interfaces") to write and organize tests written in JavaScript or compile-to-JavaScript languages
  • Command-line executable to run tests in a Node.js-based terminal environment
  • API to run tests in a browser environment
  • Output test results and errors (provide "reporters") to:
    • Terminal
    • File
    • Browser
    • Memory
  • APIs to extend functionality
  • File-based and code-based configuration
  • Internal test coverage for all of the above
  • Documentation including (but not limited to):
  • General support for multiple levels of tests, including (but not limited to):
    • Unit tests
    • Integration tests
    • Functional/end-to-end tests
    • Operational readiness tests
  • Tool configuration for project tests, build, documentation or website deployment
  • Bespoke tools, if needed
  • LTS (long-term support) policies, processes, and release cadence
  • Third-party service integrations (e.g., bots, CI servers, SCM)
  • Project-endorsed spaces for collaboration (chat rooms, mailing lists, forums, etc.)
  • Project-maintained social media, if any

§2.2: Out-of-Scope

  • Test assertions and mocks or related
  • Compatibility with other 3rd-party libraries not hosted under GitHub's mochajs organization unless explicitly stated in §2: Scope
    • Note: existence of "official" code samples does not imply explicit support
    • Efforts must be made to retain compatibility with popular libraries, frameworks and tools, but not at the expense of Mocha itself
  • Use within unmaintained versions of Node.js
  • Use within browsers not meeting a threshold decided upon by maintainers
  • Use within non-Node.js or non-browser environments, unless otherwise explicitly stated in §2: Scope
  • "Unofficial" collaboration or Q&A spaces (including Stack Overflow and Quora)
  • Certain classes of contributions:
    • Bug fixes or enhancements without associated test coverage
    • Features having limited general-purpose use (as determined by maintainers)
    • Bug fixes which "break" more users than are affected by the bug itself, regardless of "correctness"
    • Breaking changes to API without demonstrated need, especially those which would cause correct, currently-passing tests to fail
    • Changes that significantly negatively impact performance without demonstrated need
    • Code reviews, issue comments or pull requests which are dogmatic, demanding, or excessively critical as to discourage contributions by others
    • Those which violate Mocha's Code of Conduct

§3: Relationship with OpenJS Foundation CPC

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 (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.

Changes to the following cannot unilaterally be applied by project leadership, and must be ratified by the CPC:

  • Mocha's Project Charter (this document)
  • Mocha's Code of Conduct
  • Mocha's licenses: MIT (for code) and CC-BY-4.0 (for documentation/website)

§3.1: Other Formal Project Relationships

Section Intentionally Left Blank

§4: Mocha's Governing Body

Mocha is governed by its maintainers. See MAINTAINERS.md for more information.

§5: Roles & Responsibilities

The roles and responsibilities of Mocha's maintainers are described in MAINTAINERS.md.

§5.1: Project Operations & Management

Project operations and processes are described in MAINTAINERS.md.

§5.2: Decision-making, Voting, and/or Elections

Mocha uses a loose consensus-seeking process, described in MAINTAINERS.md.

§5.3: Other Project Roles

Section Intentionally Left Blank

§6: Definitions

Section Intentionally Left Blank