Deprecate request/requestretry – Switch to Axios/axios-retry, Add Central getStream Helper #656
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR migrates away from the deprecated
requestandrequestretrylibraries in favor of an axios-based solution (axios,axios-retry). A new helper,getStream, is introduced to handle streaming downloads across package fetchers, reducing maintenance burden and improving long-term support.Main Changes
Replaces usage of
requestin all package fetchers (conda, debian, go, maven, npm, composer, pypi, ruby) with a newgetStreamhelper inlib/fetch.js.Replaces
requestretrywithaxios-retryfor HTTP retry support. Centralizes retry logic incallFetchWithRetry.Removes now-unnecessary callback-based code and error handling, moving to promise-based, modern patterns.
Updates unit tests and stubs to use new axios-based methods and async/await.
All fetchers now consistently return streams and/or promise-based results.
Adds exponential delay to retries.
Notable File/Code Changes
getStreamandcallFetchWithRetry.axios+axios-retry.request/requestretryto the new helpers.requestandrequestretrydependencies.Backwards Compatibility