mochajs / mocha

☕️ simple, flexible, fun javascript test framework for node.js & the browser
https://mochajs.org
MIT License
22.62k stars 3.02k forks source link

📌 Project Status: Maintenance Reboot #5027

Open JoshuaKGoldberg opened 1 year ago

JoshuaKGoldberg commented 1 year ago

👋 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:

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:

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:

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! ❤️

giltayar commented 1 year ago

Nice! I helped with the esm part, and while not a big contributor, would be glad to help in some way.

marvinhagemeister commented 1 year ago

Excited about these news! To this day mocha remains my favourite testing framework and I'm using it quite extensively. I always come back to it because it just works how you expect it to and it's execution speed.

outsideris commented 1 year ago

Awesome! I will help you if there are something I can help you. It's great to see the project revitalized thanks to you guys.

christian-bromann commented 1 year ago

Mocha is an essential framework integration used by many other testing frameworks as well, like WebdriverIO, and I am happy to see it continue to be maintained and remain the most popular framework in the space. If there is anything I can do to help, please reach out!

cozzbie commented 11 months ago

Mocha is still the best runner out there. It will be an honor to be a part of keeping this going.

@JoshuaKGoldberg do we have a timeline as to when open issues can start getting managed?

Uzlopak commented 11 months ago

The goal is first to implement a reliable CI with all the fancy stuff. Then we can start merging PRs ;).

JoshuaKGoldberg commented 11 months ago

timeline

None yet, I'm afraid. Perhaps weeks or months?

JoshuaKGoldberg commented 10 months ago

Thanks for the enthusiasm and ❤️s everyone! Things are going well so far. We've trimmed about a quarter of the backlog out, triaged much of the rest of it, and have started working on codebase tooling. We're getting a more familiar with the project as a result.

I updated the Next Steps checklist just now with a bit more detail. Our plan is to ship a new minor release soon with no features or fixes in it - to test that we can do releases at all. After that, we'll start being more aggressive on merging PRs that actually change Mocha for the better. 🚀

Note: there are still quite a few yet-to-be-triaged bug reports and feature requests out there. ACK - we will get to those soon! We just are taking our time. We don't want to commit to something and then later learn we'd missed something big in the project.

JoshuaKGoldberg commented 10 months ago

https://www.npmjs.com/package/mocha/v/10.3.0-preminor.0: is released under the next tag. You can install it with npm i mocha@next. 🚀

npm i mocha@next

We'll wait a week or so to be careful, then release it as a 10.3.0 / latest.

JoshuaKGoldberg commented 9 months ago

https://www.npmjs.com/package/mocha/v/10.3.0

npm i mocha@latest
voxpelli commented 9 months ago

Yay @JoshuaKGoldberg 🎉 🎉 🎉

JoshuaKGoldberg commented 8 months ago

Review open PRs

All open PRs should now have a review on them! They're each at one of the following statuses:

We'll start work on releasing approved features & fixes in new Mocha versions soon. 🚀

danon commented 5 months ago

You should also take a look at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mocha because currently it's a pain to use.

For example, I like the fact that I can import test/suite with EsModules, but in DefinitelyTyped there are TypeScript declarations of global test and suite, which is misleading, because those variables are not global in mocha thank god.

voxpelli commented 5 months ago

@danon Tracking in https://github.com/mochajs/mocha/issues/4228 and https://github.com/mochajs/mocha/issues/4154 – the former ensures that the internal types are correct so that the generation of the latter is easier.

Eventually, in an upcoming major, Mocha should ship with types rather than relying on @types/mocha, at least that's my hope

cozzbie commented 2 weeks ago

I just want to say...to everyone who has revived and is now taking part, thank you so much. I remember the day when this was posted and seeing what has happened and contributions made till date literally has made me teary. Thank you all for reviving this beautiful tool.