Description
👋 Hi all! @Uzlopak, @voxpelli, and I 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.
Context
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
Project Charter
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:
- Higher-level frameworks Jest and Vitest provide more abstractions and utilities on top of testing
- Node's built-in runner integrates closely with Node itself at a lower level
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.
Next Steps
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: docs: overhaul contributing and maintenance docs for end-of-year 2023 #5038
- Migrate https://gitter.im/mochajs/contributors to a new Mocha Discord server with a
#help
Q&A channel
- Migrate https://gitter.im/mochajs/contributors to a new Mocha Discord server with a
- 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: 🛠 Repo: Rework ESLint config: flat config, separate Prettier plugin #5058 -> chore: migrate ESLint config to flat config #5060
- Unused code detection with Knip: 🛠️ Repo: Add Knip #5041 -> chore: add knip to validate included dependencies #5042
- Automatic security updates with Renovate: 🛠 Repo: Set up Renovate #5055
- Make a new release with no new features to test the release pipeline: 🛠 Repo: New release with no features (testing the release pipeline) #5081
- Merge a small
chore
refactor: chore: inline nyan reporter's write function #5056 - Ship a pre-release minor version on npm
- Ship a true minor version release on npm
- Merge a small
- 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, 2023 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.
Out of Scope
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! ❤️