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

Add support for Python 3.9 #5189

Merged
merged 40 commits into from
Dec 2, 2020
Merged

Conversation

mtreinish
Copy link
Member

@mtreinish mtreinish commented Oct 6, 2020

Summary

Python 3.9.0 was released on 10-05-2020, this commits marks the support
of Python 3.9 in qiskit-terra. It adds the supported python version in
the package metadata and updates the CI configuration to run test jobs
on Python 3.9 and build python 3.9 wheels.

Details and comments

Missing Support/Wheels:

requirements:

optional requirements:

test requirements:

  • lazy-object-proxy 1.5.2
  • PyYAML 5.3.1

Python 3.9.0 was released on 10-05-2020, this commits marks the support
of Python 3.9 in qiskit-terra. It adds the supported python version in
the package metadata and updates the CI configuration to run test jobs
on Python 3.9 and build python 3.9 wheels.
@mtreinish mtreinish added the on hold Can not fix yet label Oct 6, 2020
@mtreinish mtreinish added this to the 0.17 milestone Oct 6, 2020
@mtreinish mtreinish requested a review from a team as a code owner October 6, 2020 19:32
The Python 3.6 deprecation is being handled separately in Qiskit#5301 to
decouple it from adding python 3.9 support. This commit removes the 3.6
deprecation accordingly.
The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (not just terra). Since the
implementation is not sound and nothing uses it this commit just removes
the class and method.
@mtreinish
Copy link
Member Author

The linux Python 3.9 CI job finally passed. But none of the packages listed in the PR summary have wheels yet so they were all compiled from source for that job. A subset of those packages are also why windows and macOS jobs fail because the compilation fails in those environments. This will likely be blocked until we have at least the requirements and optional requirements updated with python 3.9 wheels

@cclauss
Copy link
Contributor

cclauss commented Nov 3, 2020

Are there more dependencies with wheels now?

@mtreinish
Copy link
Member Author

Are there more dependencies with wheels now?

It looks like pandas and tornado did. I've updated the PR summary to mark that. But based on the latest run of CI here from yesterday things are still blocked on scipy not supporting python 3.9 yet. The rest of the wheels that are missing are listed after it in the logs. For example: https://dev.azure.com/qiskit-ci/qiskit-terra/_build/results?buildId=20937&view=logs&j=0966c229-dc5e-59db-1707-4394fcb5748f&t=949aafd6-37aa-5146-914f-bcc53e2bf912&l=1159 although in those cases they built successfully from source. But before we merge this we'll want all of those (in the requirements and optional requirements) to have wheels because otherwise we're forcing our users to have compilers setup locally which they often don't.

@mergify mergify bot merged commit 200d739 into Qiskit:master Dec 2, 2020
mtreinish added a commit to mtreinish/qiskit-core that referenced this pull request Dec 3, 2020
The test skip we had in place on test_examples was for macOS with python
3.8. This was because when we first enabled python 3.8 support, the
change to use spawn as the default macOS multiprocessing launch method
was causing the tests to fail with the way the examples are written
(without using '__name__ == "__main__"'). When we added Python 3.9
support in Qiskit#5189 these tests were run because skip was only on 3.8.
While the tests appear to work most of the time (and passed ci in Qiskit#5189)
as these jobs have been running in CI the test_examples module has
occasionally been segfaulting when running the example, which has
resulted in a failure rate of roughly 8-10%. This commit expands the
macOS skip on the tests to be >= 3.8 so we avoid these failure
conditions.
mtreinish added a commit to mtreinish/qiskit-core that referenced this pull request Dec 3, 2020
The test skip we had in place on test_examples was for macOS with python
3.8. This was because when we first enabled python 3.8 support, the
change to use spawn as the default macOS multiprocessing launch method
was causing the tests to fail with the way the examples are written
(without using '__name__ == "__main__"'). When we added Python 3.9
support in Qiskit#5189 these tests were run because skip was only on 3.8.
While the tests appear to work most of the time (and passed ci in Qiskit#5189)
as these jobs have been running in CI the test_examples module has
occasionally been segfaulting when running the example, which has
resulted in a failure rate of roughly 8-10%. This commit expands the
macOS skip on the tests to be >= 3.8 so we avoid these failure
conditions.
mergify bot pushed a commit that referenced this pull request Dec 4, 2020
The test skip we had in place on test_examples was for macOS with python
3.8. This was because when we first enabled python 3.8 support, the
change to use spawn as the default macOS multiprocessing launch method
was causing the tests to fail with the way the examples are written
(without using '__name__ == "__main__"'). When we added Python 3.9
support in #5189 these tests were run because skip was only on 3.8.
While the tests appear to work most of the time (and passed ci in #5189)
as these jobs have been running in CI the test_examples module has
occasionally been segfaulting when running the example, which has
resulted in a failure rate of roughly 8-10%. This commit expands the
macOS skip on the tests to be >= 3.8 so we avoid these failure
conditions.

Co-authored-by: Kevin Krsulich <kevin.krsulich@ibm.com>
mtreinish added a commit to mtreinish/qiskit-aer that referenced this pull request Dec 9, 2020
The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.
vvilpas added a commit to Qiskit/qiskit-aer that referenced this pull request Dec 10, 2020
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes #1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
mtreinish added a commit to mtreinish/aqua that referenced this pull request Jan 14, 2021
Python 3.9.0 was released on 10-05-2020, this commits marks the support
of Python 3.9 in qiskit-ignis. It adds the supported python version in
the package metadata and updates the CI configuration to run test jobs
on Python 3.9. This follows on from Qiskit/qiskit#5189,
qiskit-community/qiskit-ignis#505, and Qiskit/qiskit-aer#1071
mtreinish added a commit to mtreinish/aqua that referenced this pull request Jan 14, 2021
Python 3.9.0 was released on 10-05-2020, this commits marks the support
of Python 3.9 in qiskit-aqua. It adds the supported python version in
the package metadata and updates the CI configuration to run test jobs
on Python 3.9. This follows on from Qiskit/qiskit#5189,
qiskit-community/qiskit-ignis#505, and Qiskit/qiskit-aer#1071
manoelmarques pushed a commit to qiskit-community/qiskit-aqua that referenced this pull request Jan 15, 2021
* Add support for Python 3.9

Python 3.9.0 was released on 10-05-2020, this commits marks the support
of Python 3.9 in qiskit-aqua. It adds the supported python version in
the package metadata and updates the CI configuration to run test jobs
on Python 3.9. This follows on from Qiskit/qiskit#5189,
qiskit-community/qiskit-ignis#505, and Qiskit/qiskit-aer#1071

* Add release note

* Remove 3.9 tutorial job

Jupyter on 3.9 doesn't have a good story yet, so just run tutorials on
3.6 and 3.8 for now.

* Update optional requirement system constraints

Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>
@mtreinish mtreinish added the stable backport potential The bug might be minimal and/or import enough to be port to stable label Jan 19, 2021
mergify bot pushed a commit that referenced this pull request Jan 19, 2021
* Add support for Python 3.9

Python 3.9.0 was released on 10-05-2020, this commits marks the support
of Python 3.9 in qiskit-terra. It adds the supported python version in
the package metadata and updates the CI configuration to run test jobs
on Python 3.9 and build python 3.9 wheels.

* Also deprecate 3.6

* Use latest nodes for CI

* Remove Python 3.6 deprecation

The Python 3.6 deprecation is being handled separately in #5301 to
decouple it from adding python 3.9 support. This commit removes the 3.6
deprecation accordingly.

* Bump cibuildwheel version to the latest release

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (not just terra). Since the
implementation is not sound and nothing uses it this commit just removes
the class and method.

* Fix lint

* Remove aer from macOS and windows jobs

* Remove IBMQ provider from ci jobs

The ibmq provider is not used by anything in CI anymore. It was an
historical artifact when some of the visualization and jupyter tests
required it. This is no longer true. However, installing the ibmq
provider in the linux 3.9 job is blocking CI because of an unrelated
requests library issue with urllib3. To resolve this, this commit just
removes the unecessary install.

* Add back ibmqprovider to tutorials job, it's needed for aqua tutorials

* Fix jupyter test skip

* Update test/python/tools/jupyter/test_notebooks.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Fix lint

* Add back pbars macOS test skip

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 200d739)
mergify bot added a commit that referenced this pull request Jan 21, 2021
* Add support for Python 3.9

Python 3.9.0 was released on 10-05-2020, this commits marks the support
of Python 3.9 in qiskit-terra. It adds the supported python version in
the package metadata and updates the CI configuration to run test jobs
on Python 3.9 and build python 3.9 wheels.

* Also deprecate 3.6

* Use latest nodes for CI

* Remove Python 3.6 deprecation

The Python 3.6 deprecation is being handled separately in #5301 to
decouple it from adding python 3.9 support. This commit removes the 3.6
deprecation accordingly.

* Bump cibuildwheel version to the latest release

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (not just terra). Since the
implementation is not sound and nothing uses it this commit just removes
the class and method.

* Fix lint

* Remove aer from macOS and windows jobs

* Remove IBMQ provider from ci jobs

The ibmq provider is not used by anything in CI anymore. It was an
historical artifact when some of the visualization and jupyter tests
required it. This is no longer true. However, installing the ibmq
provider in the linux 3.9 job is blocking CI because of an unrelated
requests library issue with urllib3. To resolve this, this commit just
removes the unecessary install.

* Add back ibmqprovider to tutorials job, it's needed for aqua tutorials

* Fix jupyter test skip

* Update test/python/tools/jupyter/test_notebooks.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Fix lint

* Add back pbars macOS test skip

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 200d739)

Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
chriseclectic pushed a commit to chriseclectic/qiskit-aer that referenced this pull request Jan 25, 2021
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes Qiskit#1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
chriseclectic pushed a commit to chriseclectic/qiskit-aer that referenced this pull request Jan 25, 2021
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes Qiskit#1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
chriseclectic pushed a commit to chriseclectic/qiskit-aer that referenced this pull request Jan 25, 2021
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes Qiskit#1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
chriseclectic pushed a commit to chriseclectic/qiskit-aer that referenced this pull request Jan 25, 2021
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes Qiskit#1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
chriseclectic pushed a commit to chriseclectic/qiskit-aer that referenced this pull request Jan 25, 2021
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes Qiskit#1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
chriseclectic pushed a commit to chriseclectic/qiskit-aer that referenced this pull request Jan 25, 2021
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes Qiskit#1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
chriseclectic pushed a commit to chriseclectic/qiskit-aer that referenced this pull request Jan 25, 2021
* Add Python 3.9 support

This commit adds official python 3.9 support to qiskit-aer. This
includes CI, release notes, and package metadata.

Fixes Qiskit#1067

* Remove wheel job 3.9 skip

* Remove unused assertNoLogs method

The assertNoLogs methods was built using a private class from python's
stdlib unittest library. This should never have been done as it's
explicitly marked as private. Accordingly in Python 3.9 this private
class has been removed and no longer exists. It turns out this method
was not used anywhere in all of qiskit (the same identical code was
removed from terra as part of Qiskit/qiskit#5189 in
Qiskit/qiskit@ed5155b).
Since the implementation is not sound and nothing uses it this commit
just removes the class and method.

* Fix azure pipelines job matrix typo

Co-authored-by: Victor Villar <vvilpas@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: New Feature Include in the "Added" section of the changelog stable backport potential The bug might be minimal and/or import enough to be port to stable
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants