-
Notifications
You must be signed in to change notification settings - Fork 14.6k
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
Get rid of requests as core dependency #15781
Conversation
A little context here.
|
Also. What I tested:
|
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
c9d29a7
to
f94eab8
Compare
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
Hey @potiuk would you mind splitting this change into two commits (code vendor + changes)? It would improve reviewing the required changes 🙏 Plus it may be useful to add note about this in our code style guide - requests are popular library, WDYT? |
Yeah. I am happy to do it.... But there is still a chance we will not have to do it psf/requests#5797 - working on it, so maybe we will be able to simply delete that PR :) |
I have the impression that httpx is a better library in the long term as it is under active development. If the change is accepted, maybe we want to merge at least some of the changes and set a new long-term goal for the transition to httpx? |
That might be an option as well. I think a lot depends on requests maintainer's responses now. I think it will be extremely difficult to get rid of requests. This is the 3rd most popular library in PIP and there are 100s if not thousands of packages using it. So we will have it anyway at least due to transitive dependencies. I think once we start moving more torwards asyncio, httpx will definitely be the way to go. |
64c081d
to
a12f8a9
Compare
@turbaszek @kaxil @ashb - as discussed, I separated out I will add |
a12f8a9
to
1b074e9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a note in updating about the new deprecated_api extra.
b6ed02c
to
bfdf8e3
Compare
d2718c3
to
6fcc1ac
Compare
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
The Workflow run is cancelling this PR. It has some failed jobs matching ^Pylint$,^Static checks,^Build docs$,^Spell check docs$,^Provider packages,^Checks: Helm tests$,^Test OpenAPI*. |
This change replaces `requests` with httpx in the providers that are derived from http provider. This change is related to apache#15781 and was introduced initially to handle problem described in: https://issues.apache.org/jira/browse/LEGAL-572 However since we have a PR in progress to make chardet an optional dependency in `requests` library psf/requests#5797 and changing `requests` to `http` introduced backwards-incompatibility, we might decide not to merge this PR - depending on how quickly (if) `requests` library adopts the change. Providers affected: * http * airbyte * apache.livy * opsgenie * slack Depends on apache#15781
This was missed in apache#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK.
This was missed in #15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK.
This was missed in #15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. (cherry picked from commit 180df03)
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. (cherry picked from commit 180df03482b07c18a57d20235ccdd1c3a12d9173) GitOrigin-RevId: 5b28c451c9d9a80b7ec43cb0cdbb56e4b49962d3
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. (cherry picked from commit 180df03482b07c18a57d20235ccdd1c3a12d9173) GitOrigin-RevId: 5b28c451c9d9a80b7ec43cb0cdbb56e4b49962d3
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. (cherry picked from commit 180df03482b07c18a57d20235ccdd1c3a12d9173) GitOrigin-RevId: 5b28c451c9d9a80b7ec43cb0cdbb56e4b49962d3
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
This was missed in apache/airflow#15781 Since "connexion" is Apache licensed, this is "not a blocker" for 2.1.0 as mentioned in https://www.apache.org/legal/release-policy.html#license-file >When a package bundles code under several licenses, the LICENSE file MUST contain details of all these licenses. For each component which is not Apache licensed, details of the component MUST be appended to the LICENSE file. The component license itself MUST either be appended or else stored elsewhere in the package with a pointer to it from the LICENSE file, e.g. if the license is long. As "connextion" is Apache 2 Licensed, this _might_ be OK. GitOrigin-RevId: 180df03482b07c18a57d20235ccdd1c3a12d9173
Get rid of requests as core dependency
This change gets rid of requests as core dependency. We have to
change requests to become an optional dependency because it
(so far) pulls in chardet as dependency and chardet is
LGPL, which is not allowed to be mandatory dependency by
ASF policies.
More info here:
https://issues.apache.org/jira/browse/LEGAL-572
The changes:
which did not cause compatibility problem, it was replaced by httpx.
by default and optional)
on http) now explicitely depend on
requirements
.^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.