-
Notifications
You must be signed in to change notification settings - Fork 30k
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
Re: Node core modules as packages #3821
Comments
I might be over-simplifying, but basically the probability of something that is currently in core being moved out of core depends on how much breakage there would be in existing npm modules. An example is |
Just a quick note: the best place for questions like this is http://github.com/nodejs/help :-) |
@jasnell: This is not a help request. The intention was to open a design discussion about how core modules are versioned (or not, as the case may be...) I believe this is particularly important now that Node is changing major versions so regularly, in theory making breaking changes each time. |
Most core modules are developed in lock-step with the internal and frequently changing C++ bindings layer. I think I speak for all maintainers when I say there is no desire whatsoever to maintain backwards compatibility at that level.
Unlikely, for the reason described above. It's technically possible for the few JS-only modules we have but that's of limited value and would increase the maintenance burden because we could then no longer move part of the logic to C++ if deemed beneficial. If you still think it's a good idea, there is nothing stopping (generic) you from packaging up files in lib/ and publishing them. Everything is MIT-licensed. |
Ultimately the versioning of Node is concerning to people like me who make and publish a lot of packages. Every time there is a new major version of Node (now seemingly very often), I have to go through all my packages worrying about whether there has been some API change which might cause me pain. I think the key issue is that the major Node version changes often, but is almost always only a breaking change for native modules. There is no versioning or breaking change indication on a per-module basis. As such, I have no idea whether the new major Node version is just a problem for native modules, or whether I need to go through all my pure-JS packages and figure out which core modules I have been using. The engines section of the package.json file was presumably meant for this, but realistically doesn't actually help at all. Perhaps some kind of per-module number which is incremented each time the API is broken. |
Backwards incompatible changes currently are called out in the release notes. If you mean in the documentation, there is an open issue about that. You're welcome to help out. |
Starting with v5, majors should only come once every 6 months. |
First off - I apologize if this has already been discussed. After quite a bit of searching, I haven't been able to find anything.
It seems to me that a large portion of the core Node modules would be more appropriate as packages published on npm.
So I have two questions:
Thanks.
The text was updated successfully, but these errors were encountered: