-
Notifications
You must be signed in to change notification settings - Fork 14.3k
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
Add Python 3.12 support (#36755) #38025
Conversation
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.
Awesome. I am eagerly waiting for the initial release. Thank you for the amazing work @potiuk.
Oh.. we need conditional for Pendulum2 tests since pendulum 2 not supported in Python 3.12 due to removed parts |
d7b3d49
to
324268b
Compare
Good point. We also need to have it in release notes. |
324268b
to
f29f60f
Compare
Added both |
a975a5d
to
e5d6a37
Compare
e5d6a37
to
804bc9a
Compare
Ahh this one is regression of #38027 in case of Python 3.12 🤕 , seems like def add_auth(self, request):
if self.credentials is None:
raise NoCredentialsError()
> datetime_now = datetime.datetime.utcnow()
E DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: |
Yeah . Was just looking at it . What's the best fix ? |
You could cherry pick #38043, locally it works fine in python 3.12. |
804bc9a
to
d1cb000
Compare
I just pushd my version :) . Almost the same
|
d1cb000
to
d6241b7
Compare
d6241b7
to
bb3c943
Compare
OK. It seems to be quite good. I removed the "latest version only" and pushed a PR that should do the same things that the canary build will do eventually. It's ready for review in general. 🤞 I had to add a few more exclusions to make sure that we are skipping some of the imports in some of the "common" tests - when some providers are excluded - because eventually the 3.12 image will be missing some librarires and those imports will fail . I think I covered all cases and that the timeouts we saw last time were caused by these problems and by the impersonation test which is now quarantined. Again 🤞 |
BTW. I also added here few controls in our CI (labels) that allow to iterate on such PRs with far less resources used and faster :) |
Also I have found why we had the difference in tests failing for cassandra after I merged last PR - main reason was because cassandra was not yet excluded in main - so I will need to merge #38050 first and only after it will be merged, I will have to (again) rebase this PR after increasing the EPOCH. |
f82faee
to
2a65012
Compare
Finally after a number of dependency upgrades we seem to be able to upgrade to Python 3.12 (pending universal_pathlib 0.2.0 conversion) Several providers are excluded from being installed and wait for Python 3.12, but it should not block Airlfow's general 3.12 support. Co-authored-by: dirrao <[email protected]> (cherry picked from commit 76dee0b)
2a65012
to
b9bcd5a
Compare
Finally after a number of dependency upgrades we seem to be able to upgrade to Python 3.12 (pending universal_pathlib 0.2.0 conversion) Several providers are excluded from being installed and wait for Python 3.12, but it should not block Airlfow's general 3.12 support. Co-authored-by: dirrao <[email protected]> (cherry picked from commit 76dee0b)
Finally after a number of dependency upgrades we seem to be able to upgrade to Python 3.12 (pending universal_pathlib 0.2.0 conversion)
Several providers are excluded from being installed and wait for Python 3.12, but it should not block Airlfow's general 3.12 support.
Co-authored-by: dirrao [email protected]
(cherry picked from commit 76dee0b)
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an 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 a newsfragment file, named
{pr_number}.significant.rst
or{issue_number}.significant.rst
, in newsfragments.