Skip to content
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

ARROW-6920: [Packaging] Build python 3.8 wheels #5685

Closed
wants to merge 25 commits into from

Conversation

sjhewitt
Copy link
Contributor

adds python3.8 wheels

as far as I can tell python3.8 isn't available for Conda yet (conda-forge/python-feedstock#274), so that's will have to be added later

@github-actions
Copy link

@kszucs
Copy link
Member

kszucs commented Oct 17, 2019

Thanks @sjhewitt! I'm submitting the tasks to see whether they are working.

@kszucs
Copy link
Member

kszucs commented Oct 17, 2019

@ursabot crossbow submit wheel-manylinux1-cp38m wheel-manylinux2010-cp38m wheel-win-cp38m wheel-osx-cp38m

@ursabot
Copy link

ursabot commented Oct 17, 2019

AMD64 Conda Crossbow Submit (#71295) builder has been succeeded.

Revision: 9e6566c

Submitted crossbow builds: ursa-labs/crossbow @ ursabot-269

Task Status
wheel-manylinux1-cp38m TravisCI
wheel-manylinux2010-cp38m TravisCI
wheel-osx-cp38m TravisCI
wheel-win-cp38m Appveyor

@kszucs
Copy link
Member

kszucs commented Oct 17, 2019

Well, we'll need to add a couple more things:

@sjhewitt
Copy link
Contributor Author

sjhewitt commented Oct 17, 2019

@kszucs it looks like 3.8 was added to the base image that the manylinux builds from a few days ago: pypa/manylinux#370

@kszucs
Copy link
Member

kszucs commented Oct 18, 2019

Yes, I'll rebuild the images.

@sjhewitt
Copy link
Contributor Author

@kszucs any luck rebuilding the base images?

@kszucs
Copy link
Member

kszucs commented Oct 22, 2019

Haven't had the time yet, but I'll try to build them tomorrow.

@wesm
Copy link
Member

wesm commented Nov 4, 2019

@kszucs @sjhewitt should we try to pick this one back up? We can probably try to upload unofficial/unsigned 3.8 wheels for 0.15.1

@pitrou
Copy link
Member

pitrou commented Nov 6, 2019

@ursabot crossbow submit wheel-manylinux1-cp38m wheel-manylinux2010-cp38m wheel-win-cp38m wheel-osx-cp38m

@ursabot
Copy link

ursabot commented Nov 6, 2019

AMD64 Conda Crossbow Submit (#75525) builder has been succeeded.

Revision: 9e6566c

Submitted crossbow builds: ursa-labs/crossbow @ ursabot-306

Task Status
wheel-manylinux1-cp38m TravisCI
wheel-manylinux2010-cp38m TravisCI
wheel-osx-cp38m TravisCI
wheel-win-cp38m Appveyor

@thehesiod
Copy link

I've been trying to get this to work via the docker-compose.yml file, so far the build_virtualenv.sh file required the most changes, mostly bumping cython, etc versions to versions that have 3.8 wheels and the path to 3.8 is wrong as it isn't 38m

@thehesiod
Copy link

yay, got it to build. the cpython_path thing is wrong for 3.8

@thehesiod
Copy link

ugh, now I ran into the fact that the manylinux2010 links against libcrypt.so.2 which is not available on debian:buster

@thehesiod
Copy link

looks like the 38 cpython path issues are fixed in a newer sha of https://github.com/matthew-brett/multibuild/blob/devel/manylinux_utils.sh so this line: it clone https://github.com/matthew-brett/multibuild.git && cd multibuild && git checkout 1a7f31be677185f2dface2643284846e14130c3f needs to be updated

@terencehonles
Copy link
Contributor

Any updates to this? We're looking forward to using Python 3.8, but this is a blocker for us and we don't want to manually build ourselves if this might be coming soon :)

@kou
Copy link
Member

kou commented Nov 22, 2019

@ursabot crossbow submit wheel-manylinux1-cp38 wheel-manylinux2010-cp38 wheel-win-cp38 wheel-osx-cp38

@ursabot
Copy link

ursabot commented Nov 22, 2019

AMD64 Conda Crossbow Submit (#78543) builder has been succeeded.

Revision: 0edb002

Submitted crossbow builds: ursa-labs/crossbow @ ursabot-336

Task Status
wheel-manylinux1-cp38 TravisCI
wheel-manylinux2010-cp38 TravisCI
wheel-osx-cp38 TravisCI
wheel-win-cp38 Appveyor

@kou
Copy link
Member

kou commented Nov 22, 2019

@ursabot crossbow submit wheel-osx-cp38

@ursabot
Copy link

ursabot commented Nov 22, 2019

AMD64 Conda Crossbow Submit (#78589) builder has been succeeded.

Revision: 717f705

Submitted crossbow builds: ursa-labs/crossbow @ ursabot-337

Task Status
wheel-osx-cp38 TravisCI

@kou
Copy link
Member

kou commented Nov 22, 2019

I tried this.

Linux:

  • I could build manylinux1 and manylinux2010 wheels on local machine.
  • Travis CI build is broken because of OpenSSL related problem. This is not related to this change.

Windows:

macOS:

@kou
Copy link
Member

kou commented Nov 22, 2019

For Linux problem: #5886

@terencehonles
Copy link
Contributor

@kou I added msgpack/msgpack-python#374 to get the wheels built.

@kou
Copy link
Member

kou commented Nov 22, 2019

Great!

@kou
Copy link
Member

kou commented Nov 24, 2019

For macOS problem: #5887

@kou
Copy link
Member

kou commented Nov 24, 2019

@ursabot crossbow submit -g wheel

@ursabot
Copy link

ursabot commented Nov 24, 2019

AMD64 Conda Crossbow Submit (#78776) builder has been succeeded.

Revision: 1e34011

Submitted crossbow builds: ursa-labs/crossbow @ ursabot-342

Task Status
wheel-manylinux1-cp27m TravisCI
wheel-manylinux1-cp27mu TravisCI
wheel-manylinux1-cp35m TravisCI
wheel-manylinux1-cp36m TravisCI
wheel-manylinux1-cp37m TravisCI
wheel-manylinux1-cp38 TravisCI
wheel-manylinux2010-cp27m TravisCI
wheel-manylinux2010-cp27mu TravisCI
wheel-manylinux2010-cp35m TravisCI
wheel-manylinux2010-cp36m TravisCI
wheel-manylinux2010-cp37m TravisCI
wheel-manylinux2010-cp38 TravisCI
wheel-osx-cp27m TravisCI
wheel-osx-cp35m TravisCI
wheel-osx-cp36m TravisCI
wheel-osx-cp37m TravisCI
wheel-osx-cp38 TravisCI
wheel-win-cp36m Appveyor
wheel-win-cp37m Appveyor
wheel-win-cp38 Appveyor

@terencehonles
Copy link
Contributor

@kou 5293f2b nice! I was going to ask why the venvs were not specified with a requirements file, and that's when you updated the numpy version in the wheel requirements.

I was also not sure if the tensorflow < 3.7 was still applicable. Looks like you got that too! 💪

@kou
Copy link
Member

kou commented Dec 7, 2019

@ursabot crossbow submit wheel-manylinux2010-cp38

@ursabot
Copy link

ursabot commented Dec 7, 2019

AMD64 Conda Crossbow Submit (#81731) builder has been succeeded.

Revision: 908a396

Submitted crossbow builds: ursa-labs/crossbow @ ursabot-390

Task Status
wheel-manylinux2010-cp38 Azure

Copy link
Member

@kszucs kszucs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kou it looks good to me, feel free to merge once the builds are passing.

@kou
Copy link
Member

kou commented Dec 7, 2019

OK!

@kou
Copy link
Member

kou commented Dec 7, 2019

@ursabot crossbow submit -g wheel

@ursabot
Copy link

ursabot commented Dec 7, 2019

AMD64 Conda Crossbow Submit (#81748) builder has been succeeded.

Revision: feac494

Submitted crossbow builds: ursa-labs/crossbow @ ursabot-391

Task Status
wheel-manylinux1-cp27m Azure
wheel-manylinux1-cp27mu Azure
wheel-manylinux1-cp35m Azure
wheel-manylinux1-cp36m Azure
wheel-manylinux1-cp37m Azure
wheel-manylinux1-cp38 Azure
wheel-manylinux2010-cp27m Azure
wheel-manylinux2010-cp27mu Azure
wheel-manylinux2010-cp35m Azure
wheel-manylinux2010-cp36m Azure
wheel-manylinux2010-cp37m Azure
wheel-manylinux2010-cp38 Azure
wheel-osx-cp27m TravisCI
wheel-osx-cp35m TravisCI
wheel-osx-cp36m TravisCI
wheel-osx-cp37m TravisCI
wheel-osx-cp38 TravisCI
wheel-win-cp36m Appveyor
wheel-win-cp37m Appveyor
wheel-win-cp38 Appveyor

@kou
Copy link
Member

kou commented Dec 7, 2019

@terencehonles Could you test some built wheels? You can find them at "ursabot-391-XXX" in https://github.com/ursa-labs/crossbow/releases .

I'll merged this once you confirm that built wheels work well. Thanks for your contribution!

@terencehonles
Copy link
Contributor

@kou we don't have a particularly comprehensive test suite, but I confirmed the wheel installs, can output a feather file, and the file can be read back into pandas. I checked feather and it doesn't have any tests of its own.

I also ran the pyarrow tests in our container cd /tmp; pytest -r s --pyargs pyarrow -m 'not plasma and not requires_testing_data', and all tests expected to pass passed

@kou
Copy link
Member

kou commented Dec 8, 2019

Thanks!
I'll merge this.

@kou kou closed this in 6c6754a Dec 8, 2019
@terencehonles
Copy link
Contributor

@kou do you know if/when the 0.15.1 Python 3.8 wheels are going to get published to pypi or will it be just for the next version? If the next version do you have any ideas on when that might be?

Thanks in advance!

@wesm
Copy link
Member

wesm commented Dec 10, 2019

It's probably not going to be until the next version, unless someone wants to produce 0.15.1 wheel files for us to upload to PyPI (if you want to volunteer to do this...be our guest)

FWIW Python 3.8 came out in October of this year -- with not even 2 months having passed, it feels extremely early to be considering 3.8.x for production use (personally I wouldn't consider until 6 months have elapsed). You can build and install your own wheels using the manylinux scripts in the meantime though

@terencehonles
Copy link
Contributor

@wesm this PR generated 3.8 wheels, which is why I'm asking 😅. It's fine if it's next release that there's an upload to pypi, since I understand the wheels are built against master and I don't know what other changes are on master.

@wesm
Copy link
Member

wesm commented Dec 10, 2019

"this PR generated 3.8 wheels" -- not exactly. It generates 3.8 wheels on the master branch, which is not what is on PyPI. If you want to try to build wheels for the 0.15.1 tag by splicing in these changes you are welcome to try, but it is not going to be as simple as running one or two shell commands

@terencehonles
Copy link
Contributor

Yes, I got that. I mentioned it was building against master. I can try cherry picking the commit, but you answered my question.

The other question is some insight into when a next release might happen. I'm not sure how useful trying to build the wheels will be if a release drops in the next couple weeks.

@wesm
Copy link
Member

wesm commented Dec 10, 2019

It's hard to predict because this is a big release with a bunch of things still up in the air. Best guess would be end of January but it may be sometime in February

@terencehonles
Copy link
Contributor

Thanks @wesm

@kou
Copy link
Member

kou commented Dec 10, 2019

FYI: We need to backport at least https://github.com/apache/arrow/pull/5685/files#diff-b10dcad1f78a3bf3bc5a5724ec057381 . It means that we can't generate wheel for Python 3.8 with 0.15.1.

@terencehonles
Copy link
Contributor

Cool, thanks for the heads up @kou

@AlJohri
Copy link

AlJohri commented Dec 26, 2019

I just ran into this as well where pip install pyarrow was failing on Python 3.8. Took a while to find the issue.

It would be great if pyarrow was explictly pinned to <3.8 or <3.9 in the future. In addition, I was confused as to why cmake wasn't telling me exactly what the error is (even in verbose mode) which made it much harder to google.

cmake -DPYTHON_EXECUTABLE=/Users/johria/Development/dem-primary-media-trait-analysis/.venv/bin/python3 -DPYARROW_BOOST_USE_SHARED=on -DCMAKE_BUILD_TYPE=release /private/var/folders/wc/5cw9h18x48z9h4dwfk1tk7n5jhnlj6/T/pip-install-s21y4ipy/pyarrow error: command 'cmake' failed with exit status 1
Building wheel for pyarrow (PEP 517) ... error
ERROR: Failed building wheel for pyarrow

@kou
Copy link
Member

kou commented Dec 26, 2019

Could you open a new issue on JIRA? https://issues.apache.org/jira/projects/ARROW/issues/

I'm not sure whether pinning to "<3.8" is better or not but it's different topic of this.

kou pushed a commit that referenced this pull request Dec 13, 2020
…nd Windows wheel

Adds support and testing for Python 3.9. I am looking for review as this change may have touched too many things, but I'm also looking to get the CI to test all the different environments.

H/T: @kou, the documentation and #5685 for helping me get this off the ground.

Closes #8386 from terencehonles/arrow-10224

Authored-by: Terence D. Honles <terence@honles.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
GeorgeAp pushed a commit to sirensolutions/arrow that referenced this pull request Jun 7, 2021
…nd Windows wheel

Adds support and testing for Python 3.9. I am looking for review as this change may have touched too many things, but I'm also looking to get the CI to test all the different environments.

H/T: @kou, the documentation and apache#5685 for helping me get this off the ground.

Closes apache#8386 from terencehonles/arrow-10224

Authored-by: Terence D. Honles <terence@honles.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
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.

10 participants