Skip to content

Conversation

@skshetry
Copy link
Collaborator

@skshetry skshetry commented Mar 10, 2020

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

Future discussions

We should try to be ahead of the PyArrow regarding releases. So, we should at-least be able to release non-hdfs packages before/on release of new python versions. We can run tests on 3.9-dev without PyArrow.

Do we need to support Python3.5? The number of downloads are already low (and, numpy/conda does not support this version at all).

@efiop
Copy link
Contributor

efiop commented Mar 10, 2020

@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.

@skshetry
Copy link
Collaborator Author

pyarrow now has wheels for Python3.8. See https://pypi.org/project/pyarrow/#files

@codecov
Copy link

codecov bot commented Mar 10, 2020

Codecov Report

Merging #3463 into master will increase coverage by 0.04%.
The diff coverage is 100%.

Impacted file tree graph

@@            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
Impacted Files Coverage Ξ”
dvc/system.py 89.34% <100%> (+1.27%) ⬆️
dvc/compat.py 16.66% <0%> (-55.56%) ⬇️
dvc/remote/slow_link_detection.py 100% <0%> (ΓΈ) ⬆️
dvc/command/data_sync.py 100% <0%> (ΓΈ) ⬆️
dvc/repo/destroy.py 100% <0%> (ΓΈ) ⬆️
dvc/rwlock.py 100% <0%> (ΓΈ) ⬆️
dvc/dependency/repo.py 100% <0%> (ΓΈ) ⬆️
dvc/repo/move.py 100% <0%> (ΓΈ) ⬆️
dvc/scm/tree.py 100% <0%> (ΓΈ) ⬆️
dvc/progress.py 98.18% <0%> (+0.03%) ⬆️
... and 32 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Ξ” = absolute <relative> (impact), ΓΈ = not affected, ? = missing data
Powered by Codecov. Last update d2734df...10078db. Read the comment docs.

@efiop
Copy link
Contributor

efiop commented Mar 10, 2020

@skshetry Ok, so could you explain what is going on here and what is the purpose?

@skshetry
Copy link
Collaborator Author

@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.

@efiop
Copy link
Contributor

efiop commented Mar 10, 2020

Related conda-forge/dvc-feedstock#93

@casperdcl
Copy link
Contributor

also fixes #3033; related to #2912

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)
Copy link
Collaborator Author

@skshetry skshetry Mar 16, 2020

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'",
Copy link
Collaborator Author

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.

@skshetry skshetry requested review from casperdcl, efiop and pared March 16, 2020 06:33
@skshetry skshetry self-assigned this Mar 16, 2020
@skshetry skshetry marked this pull request as ready for review March 16, 2020 06:34
@skshetry skshetry added the build label Mar 16, 2020
@skshetry skshetry changed the title [WIP] py38: make wheels py38: support Python3.8 Mar 16, 2020
@skshetry skshetry changed the title py38: support Python3.8 dvc: support Python3.8 Mar 16, 2020
@skshetry skshetry requested review from casperdcl and pmrowla and removed request for casperdcl March 16, 2020 07:02
Copy link
Contributor

@pmrowla pmrowla left a 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

# 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`
Copy link
Contributor

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.

Copy link
Contributor

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?

Copy link
Collaborator Author

@skshetry skshetry Mar 17, 2020

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.

@efiop
Copy link
Contributor

efiop commented Mar 16, 2020

@skshetry Amazing job! πŸ”₯

We should try to be ahead of the PyArrow regarding releases. So, we should at-least be able to release non-hdfs packages before/on release of new python versions. We can run tests on 3.9-dev without PyArrow.

Really good point. Have you tried running dvc on 3.9? Is it only pyarrow that is causing us issues?

Do we need to support Python3.5? The number of downloads are already low (and, numpy/conda does not support this version at all).

Good point. We've considered dropping support for it, but decided to just wait for EOL that will be in December.

Copy link
Contributor

@efiop efiop left a 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!

@casperdcl casperdcl merged commit 109ded4 into master Mar 16, 2020
@casperdcl casperdcl deleted the python3.8 branch March 16, 2020 19:18
@casperdcl
Copy link
Contributor

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

@skshetry
Copy link
Collaborator Author

Many thanks @casperdcl on moving this ahead. πŸ™‚

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

support python 3.8

4 participants