Uh oh!
There was an error while loading. Please reload this page.
sys: Removing after many years of deprecation - #2405
Conversation
mscdex
commented
Aug 17, 2015
+1 |
Trott
commented
Aug 17, 2015
Was the disagreement (about what is necessary and sufficient to finally do this) at #1704 ever resolved? |
ChALkeR
commented
Aug 17, 2015
This will break some modules. And not all of that are unmaintained and forgotten modules, for example, see pm2 (one, two). Personally, I'm +1 for the removal. There is a sys module as the final work-around, and one could install that if he or she uses some unmaintained module that won't be updated in time. I think I'll prepare an updated list of modules in some time, when I resync my local npm packages. |
ronkorving
commented
Aug 17, 2015
Find all cases of require('sys') on GitHub and leave an issue? I for one am really +1 on this one. |
bnoordhuis
commented
Aug 17, 2015
jaw187
commented
Aug 17, 2015
Does it make sense to deprecate a module ..... forever? |
geek
commented
Aug 17, 2015
@bnoordhuis Anything in the nodejs org will have a maintenance cost. @ChALkeR thanks for pointing those cases out, I will submit a PR to pm2 |
ChALkeR
commented
Aug 17, 2015
Partial (and outdated) list of other modules: https://gist.github.com/ChALkeR/60c95b60bbfa3296c2f8 An updated list wil follow, it this won't be rejected by that time =). |
jasnell
commented
Aug 22, 2015
@nodejs/tsc ... any objections to closing this based on the prior decision? |
geek
commented
Aug 24, 2015
@jasnell I object. We should do the right thing... @ChALkeR already submitted PRs to modules found to use sys. This module is safe to remove and should be removed... if we don't then we will end up having to submit more PRs to modules that end up finding and using sys as well as having conversations like this in the future. |
ChALkeR
commented
Aug 24, 2015
@geek Correction: I did not submit PR to all modules found to use sys, but only to 6 of them. |
Fishrock123
commented
Aug 24, 2015
We need at least one node release with it issuing the runtime deprecation warning. You can blame this commit for not re-deprecating it as a runtime warning. |
geek
commented
Aug 24, 2015
@Fishrock123 it was released with a deprecated warning previously: dc42e1f $ iojs -v
v3.1.0
$ iojs
> var sys = require('sys')
(node) sys is deprecated. Use util instead. |
Fishrock123
commented
Aug 24, 2015
For the purposes of this, io.js does not count as a "node version", let's rephrase: an LTS cycle because past mistakes were stupid and we don't have control of that. |
bnoordhuis
commented
Aug 24, 2015
A decision was made and I don't see a reason to revisit that. I'm okay with closing this. |
cjihrig
commented
Aug 24, 2015
I notice this has been added to the 6.0.0 milestone. Assuming that this could actually be removed in v6, and @geek wanted to do the work, what is the best way to track long running issues? Closing it will likely lead to it being forgotten about, but keeping it open for over a year leads to a cluttered issue tracker. |
geek
commented
Aug 24, 2015
@bnoordhuis we should listen to the decision of the community to not use sys. People want a clean codebase, not something with broken modules. |
trevnorris
commented
Aug 24, 2015
@geek That's a bit extreme. Have you looked at 'use strict';constutil=require('internal/util');module.exports=require('util');util.printDeprecationMessage('sys is deprecated. Use util instead.');That's the entire thing. It's a namespace change is all. We don't use sys internally, and I'm not sure what your comment about listening to the community is about. In short, it's not a broken module. It's an extra few lines of code to forward the namespace to the current module so we stay backwards compatible. |
geek
commented
Aug 24, 2015
@trevnorris the community isn't using sys. Its a broke module in that when you try to use it you get a warning. What is extreme about stating that? |
geek
commented
Aug 24, 2015
@trevnorris removing this implicit API should be safe to do in v4, as it was part of our v1 release. These are the guidelines for the deprecation policy: It has now existed in an undocumented state for years as well as in an explicitly deprecated state for 3 major releases. |
Merging upstream
Qard
commented
Aug 24, 2015
It's been in an explicitly deprecated state for io.js. There has never been a node release in which it was deprecated. First, we need to get it out as deprecated in v4, then we can consider removing it in v6. |
geek
commented
Aug 24, 2015
@Qard sounds like a plan |
Relates to nodejs/node-v0.x-archive#8880
Before we release a major version of node we should remove
sys, which has been deprecated and undocumented for a long time.