-
Notifications
You must be signed in to change notification settings - Fork 1.3k
dvc: support Python3.8 #3463
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
dvc: support Python3.8 #3463
Conversation
|
@skshetry Is this related to pyarrow issue from discord? If so, our wheels have nothing to do with that, as we don't package pyarrow wheels. |
|
|
Codecov Report
@@ Coverage Diff @@
## master #3463 +/- ##
==========================================
+ Coverage 93.04% 93.08% +0.04%
==========================================
Files 141 141
Lines 8598 8768 +170
==========================================
+ Hits 8000 8162 +162
- Misses 598 606 +8
Continue to review full report at Codecov.
|
|
@skshetry Ok, so could you explain what is going on here and what is the purpose? |
Umm, supporting Python3.8? Not sure of the question. And, trying to run tests on it. |
|
Related conda-forge/dvc-feedstock#93 |
ci: set ARROW_LIBHDFS_DIR to load native library deps: pin pyarrow to 0.15.1 for py<=3.7 pin deps for python<3.8 pin deps for python==3.8 as well add windows Py38 on travis do not use speedcopy for Python3.8 and Windows
|
|
||
| self.assertTrue(System.is_symlink(self.FOO)) | ||
| old_foo_link = os.readlink(self.FOO) | ||
| old_foo_link = os.path.realpath(self.FOO) |
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.
Using realpath due to change in how readlink works in Python3.8 and Windows: https://docs.python.org/3.8/library/os.html#os.readlink)
| "networkx>=2.1,<2.4", | ||
| "pydot>=1.2.4", | ||
| "speedcopy>=2.0.1; sys_platform == 'win32'", | ||
| "speedcopy>=2.0.1; python_version < '3.8' and sys_platform == 'win32'", |
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.
A lot of dependencies don't have classifiers for Python3.8, but seems to have worked.
pmrowla
left a comment
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.
Other than the pyinstaller 3.8 support question, everything looks fine to me
scripts/ci/install_hadoop.sh
Outdated
| # regression on PyArrow==0.16.0: https://issues.apache.org/jira/browse/ARROW-7841 | ||
| # it tries to retrieve native library from $HADOOP_HOME directory, instead of | ||
| # `$HADOOP_HOME/lib/native`. | ||
| # force it to search for `libhdfs.so` inside `$HADOOP_HOME/lib/native` |
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.
This regression is fixed in 0.17.0, right? Let's add a note about it as well, so we know that we can drop this line later.
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.
fixed, will squash merge (I guess that's what we do now?) Also I presume @skshetry should PR from forks rather than base repo branches?
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.
@casperdcl, I wanted to run all of the tests on the upstream branch. PR from forks don't run all tests.
|
@skshetry Amazing job! π₯
Really good point. Have you tried running dvc on 3.9? Is it only pyarrow that is causing us issues?
Good point. We've considered dropping support for it, but decided to just wait for EOL that will be in December. |
efiop
left a comment
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 address the ordering issue and feel free to merge if there are no other reviews/issues to address π Thank you!
|
Hmm apparently the "merge after checks pass" button doesn't work as intended (so the branch was deleted before tests completed). π€ tests should be fine though, no code changes. Post-merge test: https://travis-ci.com/github/iterative/dvc/builds/153556761 seems fine |
|
Many thanks @casperdcl on moving this ahead. π |
Fixes #3033
PyInstaller does not support Python3.8 yet: pyinstaller/pyinstaller#4311
β Have you followed the guidelines in the Contributing to DVC list?
π Check this box if this PR does not require documentation updates, or if it does and you have created a separate PR in dvc.org with such updates (or at least opened an issue about it in that repo). Please link below to your PR (or issue) in the dvc.org repo.
β Have you checked DeepSource, CodeClimate, and other sanity checks below? We consider their findings recommendatory and don't expect everything to be addressed. Please review them carefully and fix those that actually improve code or fix bugs.
Thank you for the contribution - we'll try to review it as soon as possible. π
TODO
Try to update pyarrow to 0.16.0 for other versions of Python and make them pass.Not possible due to https://issues.apache.org/jira/browse/ARROW-7852.
and Mac.classifiersin setup.py.Future discussions
We should try to be ahead of the
PyArrowregarding releases. So, we should at-least be able to release non-hdfs packages before/on release of new python versions. We can run tests on3.9-devwithoutPyArrow.Do we need to support Python3.5? The number of downloads are already low (and, numpy/conda does not support this version at all).