Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upRequest’s Past, Present and Future #3142
Comments
This comment has been minimized.
This comment has been minimized.
|
I fully support this, I think a warning message and/or deprecating new releases is in order. As for the change in process and guidelines, it makes my job a lot easier |
This comment has been minimized.
This comment has been minimized.
|
Very well said @mikeal. I'm pinning this issue to gain more visibility. |
This comment has been minimized.
This comment has been minimized.
|
Things we might do - please discuss and volunteer!
|
This comment has been minimized.
This comment has been minimized.
|
It makes a lot of sense! I will slowly adopt this policy for the |
This comment has been minimized.
This comment has been minimized.
OSS licenses provide rights to re-distribute and modify, no guarantees of any kind are made on the suitability of the software for any particular use. No guarantees are ever made on future changes, including potential breaking changes. Here’s the relevant text from the Apache 2 license. Pretty much every open source license has this.
|
This comment has been minimized.
This comment has been minimized.
Here’s the thing. This code has known bugs that won’t be fixed. This code is no longer maintained and is deprecated. The deprecation warning is a notice that you’re relying on problematic code. If you’re fine relying on deprecated and problematic code then simply suppress the messages. Your issue seems to be the warnings and not the state of the software. If you’re fine with the state of the software then simply suppress the warnings. We will not be altering the deprecation state and relevant warnings to be out of line with reality in order to satisfy any particular user’s concern over warnings they can easily suppress if they are unconcerned about relying on deprecated modules. |
This comment has been minimized.
This comment has been minimized.
|
need help!!!..i am having this issues when i try to install node-gyp 3.6.2 npm ERR! A complete log of this run can be found in: |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@mikeal Thanks for these years |
Request is deprecated so we need to migrate to an alternate library.See: request/request#3142
This comment has been minimized.
This comment has been minimized.
|
Goodnight request. See you on the other side. |
This comment has been minimized.
This comment has been minimized.
|
request is going to work forever (as it is), because that's JavaScript .. well unless Node introduces a breaking change by deprecating a core API used by it |
This comment has been minimized.
This comment has been minimized.
Nope. So request is gonna have unfixed bugs forever is not going to work forever ... |
* Please read their CHANGELOGs * Delete op retested * *request* is deprecated and another suitable alternative needs to be found. See request/request/issues/3143 and request/request/issues/3142. Note we didn't get the deprecation warning in dev but examined with CHANGELOGs/commits on this package. * Affected code *(a lot)*: * app.js *(TLS certficate ping)* * libs/githubClient.js *(github import/browse)* Related to OpenUserJS#1705 * libs/repoManager *(github import/browse)* Related to OpenUserJS#1705 * controllers/scriptStorage.js *(webhook hooks)*
* Please read their CHANGELOGs * Delete op retested * *request* is deprecated and another suitable alternative needs to be found. See request/request/issues/3143 and request/request/issues/3142. Note we didn't get the deprecation warning in dev but examined with CHANGELOGs/commits on this package. * Affected code *(a lot)*: * app.js *(TLS certficate ping)* * libs/githubClient.js *(github import/browse)* Related to #1705 * libs/repoManager *(github import/browse)* Related to #1705 * controllers/scriptStorage.js *(webhook hooks)* Auto-merge
This comment has been minimized.
This comment has been minimized.
|
I don't get it. So what am I suppose to officially do now, not to get the deprecation warning? |
This comment has been minimized.
This comment has been minimized.
|
Remove |
* The request module is replaced by a needle because it is deprecated. * Refer to request/request#3142
This comment has been minimized.
This comment has been minimized.
|
Hello. I am trying to install cordova. npm install -g cordova i keep receiving this error. C:\Users>npm install -g cordova
Is there another way to install Cordova? |
This comment has been minimized.
This comment has been minimized.
|
Yes. Ok. I'll remove request. But what then? So on node.js I have to switch to.. idk.. axios? What am I suppose to put in reqest's place? I understand the idea is to rewrite all the functions where request was present? Is there a package I could just change with find&replace with regex? Is there an official replacement for request or are we just set free now to find whatever comes up first on google? I don't get it |
This comment has been minimized.
This comment has been minimized.
No, you can use whatever you want, though the same developer is working on |
This comment has been minimized.
This comment has been minimized.
|
There is also the Because they don't have an issues page I suppose I'll try asking here: @coditva @codenirvana @shamasis @vikiCoder @czardoz Apologies for the mentions, but what are the plans moving forward for |
Before I go into the details and reasoning I’ll get straight to the point. The most valuable thing
requestcan do for the JavaScript ecosystem is to go into maintenance mode and stop considering new features or major releases.Apologies in advance to the other committers on
requestthat have been doing their best to improve it, but it’s for the best.2009
The first version of
requestwas one of the first modules ever created for the Node.js ecosystem. The earliest versions were written to APIs that pre-date the standard callback interface, streams, node_modules and npm. For the first few years,requestand Node.js evolved together, each learning from the other. As Node.js improved and migrated core interfaces so did request. As request adopted changes to the core http library and streams it also informed improvements like thepipeevent (which enabledrequest’s one line proxy) and one of Core http’s many re-writes (the one I had to write).npm
requestwas one of the first modules added to the npm registry. As npm grew so did dependence onrequest. Even now, whennpmis used far more for front-end than back-end work,requestremains one of the most depended on modules in the registry. As I write this, 41K modules depend on request and it is downloaded 14 million times a week.The place
requesthas in the Node.js ecosystem is no longer one of an innovator but of an incumbent. If you Google for how to do something with HTTP in Node.js the examples are likely to showrequestas the client andexpressas the server. This has two notably bad effects.It’s much harder for new libraries accomplishing similar tasks to gain adoption because of the incumbent position
requestholds over the ecosystem. It’s also very hard to change request in any meaningful way as the change not only may not be adopted by the majority of its dependents but it would put it out of alignment with the thousands of blog posts and stack overflow responses that userequest.Modern JavaScript
The last few years have been dramatic ones in JavaScript. Features people had talked about for years went from ideas, to standards, to features you can reliably depend on in most environments. The speed at which these have been adopted is staggering, mostly thanks to auto-updating browsers and an aggressive Node.js release schedule.
The patterns at the core of
requestare out of date. A few people might argue with that assessment, and I know who they are so I won’t be surprised, but it’s true. I have often been skeptical of the impact some of these features would have only to find myself adopting them wholesale not long after they are available in only the latest release of Node.js.There’s a transition happening now in the ecosystem to these patterns. How messy that will be is still up in the air and I’m not going to try and read the tea leafs and figure out what the future looks like in that regard. The question for
requestis “Do we try to survive through that transition?” A year ago, I thought the answer was obvious and that we would, but now I’m convinced of the opposite.A version of
requestwritten to truly embrace these new language patterns is, effectively, a new module. I’ve explored this space a bit already and have a project I’m quite happy with but it is incompatible withrequestin every conceivable way. What’s the value in a version ofrequestthat is incompatible with the old patterns yet not fully embracing the new ones? What’s the point in being partially compatible when there’s a whole world of new modules, written by new developers, that are re-thinking these problems with these patterns in mind?The best thing for these new modules is for
requestto slowly fade away, eventually becoming just another memory of that legacy stack. Taking the positionrequesthas now and leveraging it for a bigger share of the next generation of developers would be a disservice to those developers as it would drive them away from better modules that don’t have the burden ofrequest’s history.Maintenance Mode
Here’s the plan.
requestwill stop accepting new features.requestwill stop considering breaking changes.