Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📌 Project Status: Maintenance Reboot #5027

Open
15 of 17 tasks
JoshuaKGoldberg opened this issue Nov 14, 2023 · 15 comments
Open
15 of 17 tasks

📌 Project Status: Maintenance Reboot #5027

JoshuaKGoldberg opened this issue Nov 14, 2023 · 15 comments
Labels
type: discussion debates, philosophy, navel-gazing, etc.

Comments

@JoshuaKGoldberg
Copy link
Member

JoshuaKGoldberg commented Nov 14, 2023

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

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

@JoshuaKGoldberg JoshuaKGoldberg pinned this issue Nov 14, 2023
@giltayar
Copy link
Contributor

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

@marvinhagemeister
Copy link

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link

cozzbie commented Dec 10, 2023

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
Copy link
Member

Uzlopak commented Dec 10, 2023

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

@JoshuaKGoldberg
Copy link
Member Author

timeline

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

@JoshuaKGoldberg
Copy link
Member Author

Review open PRs

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

  • status: blocked: waiting on something else, such as an issue discussion or us not being ramped up to a semver-major change yet
  • status: in triage: one of us approved (🥳!) and we're waiting on >=1 other maintainer to also review
  • status: waiting for author: at least one maintainer posted a review and is waiting for the author to respond to / resolve feedback

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

@danon
Copy link

danon commented Jun 24, 2024

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
Copy link
Member

@danon Tracking in #4228 and #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
Copy link

cozzbie commented Nov 13, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: discussion debates, philosophy, navel-gazing, etc.
Projects
None yet
Development

No branches or pull requests

9 participants