-
-
Notifications
You must be signed in to change notification settings - Fork 442
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 support for recent CPython and PyPy versions, drop support for Python 2 #680
Conversation
f393684
to
43c59eb
Compare
This comment was marked as resolved.
This comment was marked as resolved.
f784be0
to
6482d9a
Compare
Codecov ReportBase: 100.00% // Head: 100.00% // No change to project coverage 👍
Additional details and impacted files@@ Coverage Diff @@
## master #680 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 112 112
Lines 14604 14388 -216
Branches 2775 2754 -21
==========================================
- Hits 14604 14388 -216
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
ed190b2
to
0313e0d
Compare
609254d
to
bb196ec
Compare
Drop support for PyPy 2 and PyPy 3.5. Add support for PyPy 3.6 - 3.9.
AttributeError: 'EntryPoints' object has no attribute 'get' ERROR: InvocationError for command /home/travis/build/caronc/apprise/.tox/pypy37/bin/flake8 . --count --show-source --statistics (exited with code 1)
bb196ec
to
80680d5
Compare
Hi Chris, The drop in code coverage is originating from places in the code which have been there for Python 2 compatibility.
Excellent. I will remove the corresponding spots with another commit, please wait with merging the patch. With kind regards, |
Dear Chris, 0a6558f removes most parts of the code which was specific to Python 2. With kind regards, |
47d16fc
to
0a6558f
Compare
Otherwise, the process will try to install the most recent version, which will need a Rust toolchain. cryptography 3.3 is the last one which does not.
Wow! looks like you nailed it! Great job Andreas! |
Thank you very much for jumping in and helping out with many important details so quickly, Chris. It was fun. Let's get it merged quickly before it falls apart again ;]. The new changes, after your |
I promise i will; I just want to be sure it builds correctly on Copr as now CentOS 7 support is completely gone and some significant rewrites to the RPM Spec file. Once that's green lit, we're good for a merge for sure. Yikes, there are some hard failures showing up already in fedora rawhide when the unit tests run |
All right, here we go. |
I see that something uses the |
Erhm.... 😲 ... remember i said i made some changes and i broke everything... that I'd wait for @YoRyan? I think i just pushed that... let me wipe my dev and reset using your branch 🤦♂️ .... oh boy, I'll be that's it. Stand by we're going to try this again. Edit: Hmm; I'm not sure what it is now. I don't think you or i touched the Async stuff... |
Yes, this might be it; stand by |
@@ -21,7 +21,6 @@ python_files = test/test_*.py | |||
norecursedirs=test/helpers | |||
filterwarnings = | |||
once::Warning | |||
strict = true |
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.
Just a quick comment as to why we dropped strict? Didn't see this until now (totally un-related to issues on Copr though)
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.
It raised a PytestConfigWarning: Unknown config option: strict
, so I removed it with 4f6e18a without thinking much about it. Apologies, feel free to revert!
apprise/Apprise.py
Outdated
""" | ||
warnings.warn("A future version of Apprise will add the `async` " |
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.
The #TODO
ref is good, but the async
is already in place today
We don't need this warning at all. We just didn't have the async
keyword there (and had some magic in front of it, so the code could co-exist in a Python v2.7 environment. we're good here for sure.
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.
Maybe I am not right on track yet, but didn't we just observe that adding async
breaks the test suite completely, as it will likewise do for others?
Maybe it is too late at night already for me to correctly understand why adding async
is not problematic ;]. Feel free to adjust as necessary. Thanks for your patience!
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.
You might be right here; but to my knowledge we were async
code that under the hood created an async
object. The chagne Ryan would make would be more then the bug i introduced by only updating one function. The wrappers under the hood will disappear . But i could also be misinterpreting what is wrong here.
The symptoms as outlined at, for example, [1], are exactly the same when I say
This is what we discussed above at #680 (comment). Are you sure that this eventual change on your machine did not accidentally go to Copr? |
No, definitely using the branch as is right now. It's very strange that it's broken. It should at least work on the bleeding edge versions of Fedora. We're so close... ugh. Let me try a few things; i'm not out of ideas yet :) |
I've just downloaded the source RPM from the most recent build [1] and looked at it using Midnight Commander. |
If found the error in my build process (script piping stuff to &>/dev/null because they were otherwise noisy)... but missing on errors when using your repo. Good catch... we're going green now: https://copr.fedorainfracloud.org/coprs/lead2gold/apprise/build/4893892/ |
# An extra environment where additional packages are not installed | ||
- python: "3.9" | ||
env: | ||
- TOXENV=bare | ||
|
||
install: | ||
- pip install babel | ||
# upgrade tox, pip, and virtualenv so Python 3.6 will build crytography: | ||
# https://travis-ci.community/t/pip-install-cryptography-fails-on-py36/11233 | ||
- pip install -U tox pip virtualenv |
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.
Any value in bringing this back? This 1 liner allowed all pip calls to install cryptography (regardless of what version)
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.
It's right there, just tweaked it a bit and accidentally removed your comment.
# Use up-to-date versions of tox, pip, virtualenv, and wheel.
pip install --upgrade tox pip virtualenv wheel
I'm happy; not going to wait until the build finishes.... Thanks for all of your great work @amotl |
Thanks Chris. It was great working together with you on this patch. Cheers also to Ryan. |
Dear Chris,
following up on #679 (comment), this patch aims to drop support for CPython 2, PyPy 2 and PyPy 3.5, and add support for PyPy 3.6 - 3.9. While being at it, it also adds support for CPython 3.10. The new Python version labels for Travis CI have been picked from the corresponding documentation at 1.
With kind regards,
Andreas.
Footnotes
https://docs.travis-ci.com/user/languages/python/#python-versions ↩