Skip to content

Maintenance Reboot

šŸ‘‹ Hi all! @Uzlopak, @voxpelli, and I (@JoshuaKGoldberg) are happy to announce that we’ve picked up maintenance of the Mocha organization and packages. That primarily includes the mocha test framework.

Shoutout and thanks to @boneskull for inviting us on and helping set up many of the documentation and processes still in use today, as well as the other recent Mocha core team members: @giltayar, @juergba, @Munter, and @outsideris.

Mocha was not actively maintained for most of 2023. It was maintained off-and-on through 2022. This is natural in open source projects: because they are run by volunteers, maintenance often is dependent on personal voluntary availability in out-of-work hours.

The three of us ā€œrebootā€ maintainers are joining on to:

  • Get the project back into active maintenance, including regularly triaged issues and reviewed pull requests
  • Update the project’s tooling to reduce the overhead of maintenance
  • Update Mocha as needed to stay up-to-date with the surrounding JavaScript ecosystem

Mocha has been a core part of the JavaScript ecosystem for over a decade. Per its PROJECT_CHARTER.md:

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.

We intend to keep to this project charter. Mocha is positioned differently from other popular test frameworks in the ecosystem. Notably:

We aim to keep Mocha positioned as a stable test framework, minimizing breaking changes or significant new feature additions. Our priority is for the existing users who do not want to be broken by or have to spend time reacting to changes.

Our current plan is to:

  • Discuss this pinned issue and announce it
  • Tidy up the existing contributing and maintenance documentation and processes, such as issue and PR templates: #5038
  • Review and triage existing issues and PRs
    • Align existing issues and PRs to the new templates
    • Close out duplicate, stale, or clearly wontfix-level issues
    • Triage pending bug reports and feature requests
    • Review open PRs
  • Add tooling such as automatic security updates and static analysis to help with long-term maintenance
    • Refreshed linting, such as a new ESLint configuration: #5058 -> #5060
    • Unused code detection with Knip: #5041 -> #5042
    • Automatic security updates with Renovate: #5055
  • Make a new release with no new features to test the release pipeline: #5081
    • Merge a small chore refactor: #5056
    • Ship a pre-release minor version on npm
    • Ship a true minor version release on npm
  • Publicly propose and get approved an invoicing system for https://opencollective.com/mochajs, then reach out to previous maintainers to compensate them for their time

Updated January 8th, 2024 with more detail.

Items might be tackled out of order. You can see the full list of work items and their statuses on the public Maintenance Reboot project board.

Note also that we’re new to maintaining this project. We’ll need to ramp up over the next few months. Don’t expect any major overhauls anytime soon.

We don’t intend to make any major breaking changes unless absolutely necessary for the project. We will drop support for EOL Node versions in occasional breaking changes well after those Node versions go EOL.

We don’t intend to overhaul any currently-useful resources such as https://mochajs.org or https://github.com/mochajs/mocha/wiki. Though, we will happily accept issue reports if those resources need improvement.


We’re excited to help keep Mocha going forward as a project. Please do post feedback if you have any questions or suggestions. Cheers all! ā¤ļø