Skip to content

Utilize the @express npm scope #71

@wesleytodd

Description

@wesleytodd

Opening this to get feedback on the idea of using the @express scope as a way to organize modules and as a continuation of this conversation. All of this is assuming we can get the scope, the process for which I have started with npm.

1. What value does using a scope provide?

  • Increase discoverability for new users looking for "safe", "compatible", "best practice" modules
  • Name packages more strategically by not have to compete for names in the global namespace
  • Provides guarantees to users for modules under the scope (security best practices, maintenance guarantees, etc.)
  • Provide a place for "batteries included" style additions for Express which are "blessed" but still community maintained

2. What negative effects would it have?

  • Does adding modules under the scope negatively effect the existing non-scoped modules? For example, would it make them look "less official"? Would it cause confusion?
  • It could exclude other/better packages by the very nature of "promoting" the scoped ones

Any other downsides?

3. If splitting was an issue, would we consider migrating those packages to the scope?

Migrating would cause churn, currently it would loose the version history, and is extra work. My only experience with this is as a user of Babel, and that was not a great user experience. Personally I think we should avoid migrating them unless npm can help out with this as a feature. I tweeted at them, maybe this is something on their roadmap.

4. Would it be "squatting" to sit on it and not use it?

I think @dougwilson brought up some good points in the other thread around the many ways users could try to piggy back off the express name to "do harm", but I still think it would protect the most important part by claiming the namespace even if we did not use it.

5. What type of modules would we publish here?

For this I think that we would want to set some requirements. For example, it should "express specific". This would mean coupling to express api's or providing some feature which only makes sense in an express context. Also, we would want to have a standard set of code requirements like tests, travis ci and standard readme stuff.

I think we would also want to set some criteria around "sufficient expected user base". I don't think we would want every niche usage type middleware module being eligible. Examples of modules I would see being published here would be session, serve-static, or helmet. Examples of modules not to publish here would be modules in the "Other Middleware" section of the website like sriracha-admin.

If the module was coming from outside the current express contributors, I think it might also be good to require some "core team"/CTC members be added with publish rights in case of security or other important issues.

Sorry for the long winded post, but I wanted to get as much out of my head as I could on this to start the discussion.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions