openjs-foundation / standards

a repository for documenting and coordinating the foundation's web standards work
Apache License 2.0
80 stars 21 forks source link

Discuss `package.json` standardization and governance #233

Open Ethan-Arrowood opened 1 year ago

Ethan-Arrowood commented 1 year ago

During the Open Source Summit NA, we heavily discussed the idea about standardizing/specifying package.json. This was in part due to interest from the WinterCG side of things; generally, how could we make it easier for other tools to adopt and support package.json for JavaScript project configuration?

I am personally looking for this groups expertise on the subjects of specification, open governance, and more as I work to try and create a solution for the above question.

ljharb commented 1 year ago

The most important thing to establish imo is "what are the current difficulties for other tools to adopt and support package.json for JS project configuration?". Is that laid out anywhere yet?

Ethan-Arrowood commented 1 year ago

I have an answer, I haven't written it down anywhere yet. I'm worried that sharing the problem without also offering some solutions will be not productive in an async format. That said, I'm confident that a problem exists.

What I'm mainly seeking to gain from this working group is guidance on standardization, specification, and governance processes.

Some loose questions we can try answering first include:

This is all I can think of at the moment, but other's are welcome to add more questions if they'd like.

ljharb commented 1 year ago

My suggestion is to explicitly avoid discussing solutions of any kind until the problems are understood and agreed upon - discussing solutions prior to that, in my experience, is what's counterproductive.

dtex commented 1 year ago

Moddable's manifest.json might be a good case study for identifying "current difficulties." I can't say for sure that they looked at package.json and found it lacking. They may have just not been aware of it. That said, the host is quite different from what most of us are used to so it may prove to be a good litmus.

Ethan-Arrowood commented 1 year ago

@ljharb agreed, what I'm trying to say is that I don't expect this group to help with defining the problem itself, like answering "do we need to specify package.json or not". I'm looking for help in certain parts of that problem creation. Some aspects are also related to the solution.

Like I don't expect this group to tell me "you should create a standards body" or whatever. I'm expecting them to provide information and guidance what the pros and cons are between a standardization approach and a governance approach.

ljharb commented 1 year ago

Gotcha, makes sense.

eemeli commented 1 year ago

@Ethan-Arrowood: Like I don't expect this group to tell me "you should create a standards body" or whatever. I'm expecting them to provide information and guidance what the pros and cons are between a standardization approach and a governance approach.

Could you clarify a bit what you would expect a "standardization approach" and a "governance approach" to look like? As I understand it, a standard can help you clarify what the world looks like just now, while governance gives you a framework for changing it. For something like package.json, I would expect both of these to be of interest.

Ethan-Arrowood commented 1 year ago

Standardize -> Create a specification for package.json within an existing standards body such as WHATWG, or W3C, or wherever else. Development of the specification must follow the bodies existing processes. All invested parties must join the standard body. Etc...

Governance -> Using Open Governance create an group that governs the specification and its development processes.

They both are very much of interest. Specification probably is a common denominator. Standardization/Governance is another that we might not go 100% on one way or another.

Ethan-Arrowood commented 1 year ago

Notes from meeting:

LeaVerou commented 1 year ago

Some thoughts, in no particular order (mentioned in the call, but dumped here for posterity):

jorydotcom commented 1 year ago

Per May 30 WG meeting, removing Agenda label - @Ethan-Arrowood @tobie re-add the label when you're ready to discuss the doc again!

Ethan-Arrowood commented 1 year ago

If folks are interested in the continuation of this work, please join us in the #package-json-discussion channel in the OpenJS Slack workspace.

Ethan-Arrowood commented 1 year ago

Here is a summary of work done so far regarding this project for folks not interested/able to join the Slack channel. For what its worth, I'll post summaries like this intermittently and I continue to encourage interested folks to join our public and archived slack channel where you can catch up on and join in on all discussions related to the project.

Without further ado, project update!

During the Open Source Summit NA 2023, OpenJS Collaborator Summit, Node.js Next-10 Technical Priorities session, a ticket was created and highly voted for stating “npm | lack of standardization/specification of package.json” is an Obstacle/Barrier for Node.js’ future success.

@Ethan-Arrowood then pursued the idea beyond the summit by creating an initial collaboration space in WinterCG (https://github.com/wintercg/proposal-package-json/issues/1). This was pivoted to a new discussion thread in OpenJS Standards WG (https://github.com/openjs-foundation/standards/issues/233), and a couple of corresponding slack threads (https://openjs-foundation.slack.com/archives/CKF0PCF54/p1684260761722349, https://openjs-foundation.slack.com/archives/CKF0PCF54/p1685494764450859, https://openjs-foundation.slack.com/archives/CKF0PCF54/p1685558255509759).

A Google Doc was created to begin drafting a "one-pager" for the purpose of gaining stakeholder buy-in. The document was to be presented to the OpenJS CPC (https://github.com/openjs-foundation/cross-project-council/issues/1082), but since the document struggled to articulate a clear “why”, we brought the discussion back to Slack to dive deeper (https://openjs-foundation.slack.com/archives/CKF0PCF54/p1685558255509759).

And that brings us to now, where a new Slack channel #package-json-discussion was created in order to continue the collaboration as we work together to define a clear goal and path forward.

Summary of the latest Slack thread, which sparked the creation of the new Slack channel:

Thank you for reading through all of this. Did my best to summarize while including important details. Again, if this work interests you, please join us in the OpenJS Slack channel #package-json-discussion . I will also personally be attending OpenJS standards and CPC WG meetings to continue providing status updates on the work and asking for feedback from other WG members.

🚀

DerekNonGeneric commented 1 year ago

Strongly support the effort. Thanks for the summary, and the shared experience not only of mine but evidently the rest of the previous Node.js Loaders team members, shows that this effort would necessitate cross-project collaboration even btwx rivals (so-called) like Node and Deno as was evident last time a serious proposal was made to undertake such an effort (or at least something quite similar).

Refs: https://github.com/nodejs/loaders/issues/52