One tool, npm, has shipped with Node.js for years. It has become the default tool to interact with package.json. It is a package management system which is built around package.json. Because it is so popular and has such wide reach, it means that all other developer tools like Yarn, Bun, pnpm, and Deno strive to be compatible with npm.
Ultimately, this means that everyone is chasing a moving target of the npm informal standard. Luckily, npm is a good actor with good intentions. But it's at best an inefficient way for tools to improve and support a diverse ecosystem. Tool makers are forced to take liberties to make their tools operate but still try to be compatible.
It means everyone is striving towards an undefined standard, and the target can shift unexpectedly.
Imagine if there was a more clear and all encompassing definition, improved regularly and with wide input, that everyone could base their tooling off of. This informal standard would not depend on Node.js and npm but be set up for the broad community to use. Important note, we’re not proposing a formal standard, but rather an agreed upon framework for technical considerations.
This is what the Package Metadata Interoperability Collab Space wants to build. Our goal and philosophy is to be pragmatic without bias and yet interoperable.
Current early organizers and contributors include Ethan Arrowood (@Ethan-Arrowood), Darcy Clarke (@darcyclarke), Robin Ginn (@rginn), Luke Karrys (@lukekarrys), Rick Markins (@rxmarbles), Wes Todd (@wesleytodd), Claudio Wunder (@ovflowd).
Yes, so far we're largely Node.js and npm people. Our goal is to be much broader than that. We are just starting outreach (including our first blog) but also wanted to have some level of progress so that new team members will have something actionable to work with right away.
Package Metadata Interoperability Collab Space meeting notes are here, open and public. If you’d like to get involved, just joining our monthly meetings is a great first step.
The participants in the Node.js Package Maintenance Group are currently in the Node.js group, and, like the name implies, are totally focused on Node.js and the Node.js ecosystem. They are not supporting other runtimes like Bun, for example.
But the “package management” part of our name is important. We’re neither solely web focussed, nor solely server runtime focussed. It’s worthy of its own group.
The best way to join the Package Metadata Interoperability Collab Space is to join our monthly meeting, held the first Tuesday of each month. The calendar is available on the OpenJS Foundation public calendar here.
You can also join our Slack channel. It’s intended as an open forum, with no set schedule. Join the OpenJS Foundation Slack channel here.
Or you can go to the repo, and add yourself.
Let’s build up package.json together!