Skip to content
This repository has been archived by the owner on Dec 7, 2021. It is now read-only.

Add python 3.8 support and deprecate python 3.5 #722

Merged
merged 21 commits into from
Jan 23, 2020

Conversation

mtreinish
Copy link
Contributor

@mtreinish mtreinish commented Nov 13, 2019

Summary

This commit adds support for running aqua under python 3.8. It does
this by adding the trove classifiers to the package metadata and adding
a test job for python 3.8 At the same time this commit starts the
deprecation window for python 3.5. Python 3.5 goes end of life by
upstream python in Sept. 2020. We should give our users running with
python 3.5 (which is about 10% of qiskit users this year based on pypi
data) fair notice that when upstream python stops supporting it we do as
well. Corresponding to this change, terra is going to start raising a
warning when anything from qiskit.* is imported, see:
Qiskit/qiskit#3268

Details and comments

Python's documented branch support status and EoL dates are listed here:
https://devguide.python.org/#branchstatus

Waiting on upstream dependencies:

This commit adds support for running aqua under python 3.8. It does
this by adding the trove classifiers to the package metadata and adding
a test job for python 3.8 At the same time this commit starts the
deprecation window for python 3.5. Python 3.5 goes end of life by
upstream python in Sept. 2020. We should give our users running with
python 3.5 (which is about 10% of qiskit users this year based on pypi
data) fair notice that when upstream python stops supporting it we do as
well. Corresponding to this change, terra is going to start raising a
warning when anything from qiskit.* is imported, see:
Qiskit/qiskit#3268
@mtreinish
Copy link
Contributor Author

It'd be good to determine if all of aqua's dependencies support python 3.8 before merging this, but since we don't run ci for anything but python 3.6 it's hard to tell that without manually testing locally. (the other elements are doing this in ci)

@manoelmarques
Copy link
Collaborator

manoelmarques commented Nov 13, 2019

Running a travis for python 3.8 and also trying on MacOS, the following dependencies don't install due to lack of a proper python 3.8 wheel file: pyscf, h5py and cvxopt.

I found issues for h5py and cvxopt:
h5py/h5py#1410
cvxopt/cvxopt#77

The pycsf library build fails because it can't find libcint library.
The cvxopt library build fails because it can't find the SuiteSparse library.
The h5py library build fails because it can't find a pre-built libhdf5.so library.

It seems to me that Aqua is not ready for python 3.8 until python 3.8 wheel files are provided for those libraries in Pypi or we would need instructions written on how the user can build and install those libraries for his OS before installing Aqua, assuming their code is ready for python 3.8

@mtreinish
Copy link
Contributor Author

Well for cvxopt we should be moving away from that for license compatibility reasons (see Qiskit/qiskit-aer#430 and qiskit-community/qiskit-ignis#300). @dongreenberg said there is a plan for switching to sklearn which will take care of that here.

But for the other ones that's definitely true I'll put this on hold and update the PR summary. It's probably worth pointing out that terra, aer, and ignis are blocked on supporting python 3.8 for one reason or another too. (terra on macOS also tripped a regression introduced in python3.8) so it might be a while before this can merge.

@mtreinish mtreinish added the status: on hold E.g. needs more discussion or more information (preformance, tests, ...) label Nov 13, 2019
woodsp-ibm
woodsp-ibm previously approved these changes Jan 23, 2020
Copy link
Member

@woodsp-ibm woodsp-ibm left a comment

Choose a reason for hiding this comment

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

Testing everything with 3.8 works now including logic using Ignis.

manoelmarques
manoelmarques previously approved these changes Jan 23, 2020
@mtreinish
Copy link
Contributor Author

Cool, if you've manually tested it we can remove the on hold. I've got to update the ignis ci in qiskit-community/qiskit-ignis#298 in to pull in and build aer from source to get the 3.8 job working over there still. But if you've confirmed everything works here it's not like ignis needs a precompiled binary to install since it's all python code

@manoelmarques manoelmarques dismissed stale reviews from woodsp-ibm and themself via 71c321e January 23, 2020 21:07
@woodsp-ibm woodsp-ibm removed the status: on hold E.g. needs more discussion or more information (preformance, tests, ...) label Jan 23, 2020
@manoelmarques manoelmarques merged commit 2cccdd9 into qiskit-community:master Jan 23, 2020
@mtreinish mtreinish deleted the deprecate-3.5 branch January 24, 2020 16:12
manoelmarques added a commit to qiskit-community/qiskit-machine-learning that referenced this pull request Feb 27, 2021
…precate-3.5

Add python 3.8 support and deprecate python 3.5
@Jonathanseng
Copy link

I am using python 3.8.5 and when try to install: pip install qiskit-aqua[cvx] it shows en error (no match found) anyone had the same problems as me?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants