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

Remove qiskit-toqm tests and requirements-dev.txt entry #9057

Merged
merged 4 commits into from
Nov 2, 2022

Conversation

mtreinish
Copy link
Member

@mtreinish mtreinish commented Nov 2, 2022

Summary

In #9042 we removed the special case code to enable using toqm as an optional routing method. This was needed prior to qiskit-terra 0.22.0 as we didn't have the transpiler stage plugin interface. However, now that we've added a dedicated interface for external transpiler passes to integrate into transpile() the toqm passes are using that interface. However, in #9042 the tests for verifying the previously hard-coded toqm routing method path worked as before were left intact. In general this would be a good approach to ensure we're maintaining backwards compatibilty with the new modular interface with earlier releases. However, in this specific case this is causing an issue with how tests are run. Since qiskit-toqm has a necessary dependency on qiskit-terra this means when we install our development requirements before running tests toqm is pulling in the latest stable release of qiskit-terra from pypi. Then we later upgrade that with the source build before running tests. However this bi-directional test dependency introduces a tension in a number of places. For the most recent example, when we're trying to add support for new platforms (see #9028 for an example) where the stable version of qiskit-terra does not support the platform. We're unable to run CI with qiskit-toqm being installed first since installing stable qiskit-terra won't work/

This commit removes qiskit-toqm from the requirements-dev.txt list and also removes the test cases using it to fix this conflict. In general the testing for qiskit-toqm can now be self contained since it's exercising a stable interface in terra that's tested independently. When weighing the backwards compatibility coverage vs the CI and build complexities having the bidirectional test dependency has just removing the toqm tests and development requirement is the simplest path forward.

Details and comments

Im Qiskit#9042 we removed the special case code to enable using toqm as an
optional routing method. This was needed prior to qiskit-terra 0.22.0 as
we didn't have the transpiler stage plugin interface. However, now that
we've added a dedicated interface for external transpiler passes to
integrate into transpile() the toqm passes are using that interface.
However, in Qiskit#9042 the tests for verifying the previously hard-coded toqm
routing method path worked as before were left intact. In general this
would be a good approach to ensure we're maintaining backwards
compatibilty with the new modular interface with earlier releases.
However, in this specific case this is causing an issue with how tests
are run. Since qiskit-toqm has a necessary dependency on qiskit-terra
this means when we install our development requirements before running
tests toqm is pulling in the latest stable release of qiskit-terra from
pypi. Then we later upgrade that with the source build before running
tests. This however this bi-directional test dependency introduces a
tension in a number of places. For the most recent example, when we're
trying to add support for new platforms (see Qiskit#9028 for an example)
where the stable version of qiskit-terra does not support the platform.
We're unable to run CI with qiskit-toqm being installed first since
installing stable qiskit-terra won't work/

This commit removes qiskit-toqm from the requirements-dev.txt list and
also removes the test cases using it to fix this conflict. In general
the testing for qiskit-toqm can now be self contained since it's
exercising a stable interface in terra that's tested independently. When
weighing the backwards compatibility coverage vs the CI and build
complexities having the bidirectional test dependency has just removing
the toqm tests and development requirement is the simplest path forward.
@mtreinish mtreinish requested a review from a team as a code owner November 2, 2022 13:42
@qiskit-bot
Copy link
Collaborator

Thank you for opening a new pull request.

Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient.

While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone.

One or more of the the following people are requested to review this:

  • @Qiskit/terra-core

jakelishman
jakelishman previously approved these changes Nov 2, 2022
Copy link
Member

@jakelishman jakelishman left a comment

Choose a reason for hiding this comment

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

I also have #8967 that will decouple development requirements from optional accelerators as well, but this looks logically correct right now.

@jakelishman jakelishman added stable backport potential The bug might be minimal and/or import enough to be port to stable automerge Changelog: None Do not include in changelog labels Nov 2, 2022
@coveralls
Copy link

coveralls commented Nov 2, 2022

Pull Request Test Coverage Report for Build 3379816164

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 77 unchanged lines in 8 files lost coverage.
  • Overall coverage decreased (-0.08%) to 84.383%

Files with Coverage Reduction New Missed Lines %
qiskit/transpiler/preset_passmanagers/common.py 1 97.5%
qiskit/transpiler/preset_passmanagers/level0.py 1 94.74%
qiskit/transpiler/preset_passmanagers/level2.py 1 95.19%
qiskit/transpiler/preset_passmanagers/level3.py 1 92.44%
qiskit/pulse/library/waveform.py 3 91.49%
qiskit/transpiler/passes/layout/noise_adaptive_layout.py 4 94.38%
src/sabre_swap/neighbor_table.rs 7 69.23%
src/sabre_swap/mod.rs 59 80.94%
Totals Coverage Status
Change from base Build 3379772177: -0.08%
Covered Lines: 62332
Relevant Lines: 73868

💛 - Coveralls

@jakelishman jakelishman added this to the 0.22.2 milestone Nov 2, 2022
@mergify mergify bot merged commit 8999047 into Qiskit:main Nov 2, 2022
mergify bot pushed a commit that referenced this pull request Nov 2, 2022
* Remove qiskit-toqm tests and requirements-dev.txt entry

Im #9042 we removed the special case code to enable using toqm as an
optional routing method. This was needed prior to qiskit-terra 0.22.0 as
we didn't have the transpiler stage plugin interface. However, now that
we've added a dedicated interface for external transpiler passes to
integrate into transpile() the toqm passes are using that interface.
However, in #9042 the tests for verifying the previously hard-coded toqm
routing method path worked as before were left intact. In general this
would be a good approach to ensure we're maintaining backwards
compatibilty with the new modular interface with earlier releases.
However, in this specific case this is causing an issue with how tests
are run. Since qiskit-toqm has a necessary dependency on qiskit-terra
this means when we install our development requirements before running
tests toqm is pulling in the latest stable release of qiskit-terra from
pypi. Then we later upgrade that with the source build before running
tests. This however this bi-directional test dependency introduces a
tension in a number of places. For the most recent example, when we're
trying to add support for new platforms (see #9028 for an example)
where the stable version of qiskit-terra does not support the platform.
We're unable to run CI with qiskit-toqm being installed first since
installing stable qiskit-terra won't work/

This commit removes qiskit-toqm from the requirements-dev.txt list and
also removes the test cases using it to fix this conflict. In general
the testing for qiskit-toqm can now be self contained since it's
exercising a stable interface in terra that's tested independently. When
weighing the backwards compatibility coverage vs the CI and build
complexities having the bidirectional test dependency has just removing
the toqm tests and development requirement is the simplest path forward.

* Remove unused imports

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 8999047)

# Conflicts:
#	requirements-dev.txt
mergify bot added a commit that referenced this pull request Nov 3, 2022
…) (#9061)

* Remove qiskit-toqm tests and requirements-dev.txt entry (#9057)

* Remove qiskit-toqm tests and requirements-dev.txt entry

Im #9042 we removed the special case code to enable using toqm as an
optional routing method. This was needed prior to qiskit-terra 0.22.0 as
we didn't have the transpiler stage plugin interface. However, now that
we've added a dedicated interface for external transpiler passes to
integrate into transpile() the toqm passes are using that interface.
However, in #9042 the tests for verifying the previously hard-coded toqm
routing method path worked as before were left intact. In general this
would be a good approach to ensure we're maintaining backwards
compatibilty with the new modular interface with earlier releases.
However, in this specific case this is causing an issue with how tests
are run. Since qiskit-toqm has a necessary dependency on qiskit-terra
this means when we install our development requirements before running
tests toqm is pulling in the latest stable release of qiskit-terra from
pypi. Then we later upgrade that with the source build before running
tests. This however this bi-directional test dependency introduces a
tension in a number of places. For the most recent example, when we're
trying to add support for new platforms (see #9028 for an example)
where the stable version of qiskit-terra does not support the platform.
We're unable to run CI with qiskit-toqm being installed first since
installing stable qiskit-terra won't work/

This commit removes qiskit-toqm from the requirements-dev.txt list and
also removes the test cases using it to fix this conflict. In general
the testing for qiskit-toqm can now be self contained since it's
exercising a stable interface in terra that's tested independently. When
weighing the backwards compatibility coverage vs the CI and build
complexities having the bidirectional test dependency has just removing
the toqm tests and development requirement is the simplest path forward.

* Remove unused imports

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 8999047)

# Conflicts:
#	requirements-dev.txt

* Remove qiskit-toqm from requirements-dev.txt

This fixes a merge conflict and removes the qiskit-toqm entry from the requirements-dev.txt file

* Fix lint failure

Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: None Do not include in 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.

4 participants