-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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 no-optionals and full-optionals test runs #8967
Changes from all commits
a66534b
a74b00d
5cbaa18
69efa6b
d6f9f0c
a5c009a
69b4169
96bb7c6
69a6613
80c5945
535f270
8f84190
df6c788
75b3843
093f3ce
6f25dae
ce7eb62
6a87fba
abaf410
5aff793
a070912
dc4f7b7
7bdc4e6
c458f35
d885c9f
ba18634
73e8e81
e3f835b
b558eb6
074eb1f
8946ac1
c5fbab1
b3e283d
e281017
9b49456
2da5f2a
acfe227
3017603
3c82457
286ffb9
681e2fd
9310fc8
49b07a3
bd37cb9
1b77b10
ab254a7
981c6b5
2469e97
2679adf
67682df
f9b5cba
4c0a986
db06df9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,39 @@ | ||
coverage>=4.4.0,<7.0 | ||
hypothesis>=4.24.3 | ||
python-constraint>=1.4 | ||
ipython<7.22.0 | ||
ipykernel<5.5.2 | ||
ipywidgets>=7.3.0 | ||
jupyter | ||
matplotlib>=3.3 | ||
pillow>=4.2.1 | ||
# Requirements to develop Terra, and the minimum needed to run its CI. All | ||
# optional requirements should go in `requirements-optionals.txt` instead. | ||
# | ||
# Version requirements here can be more restrictive than elsewhere, because they | ||
# never become actual package requirements, but still try to be as relaxed as | ||
# possible so it's easy to develop multiple packages from the same venv. | ||
|
||
# Style | ||
black[jupyter]~=22.0 | ||
pydot | ||
|
||
|
||
# Lint | ||
# | ||
# These versions are pinned precisely because pylint frequently includes new | ||
# on-by-default lint failures in new versions, which breaks our CI. | ||
astroid==2.14.2 | ||
pylint==2.16.2 | ||
ruff==0.0.267 | ||
|
||
|
||
# Tests | ||
coverage>=4.4.0 | ||
hypothesis>=4.24.3 | ||
stestr>=2.0.0,!=4.0.0 | ||
pylatexenc>=1.4 | ||
ddt>=1.2.0,!=1.4.0,!=1.4.3 | ||
seaborn>=0.9.0 | ||
|
||
|
||
# Documentation tooling. | ||
# | ||
# This alone is not sufficient to fully build the documentation, because several | ||
# components of Terra use some of its optional dependencies in order to document | ||
# themselves. These are the requirements that are _only_ required for the docs | ||
# build, and are not used by Terra itself. | ||
|
||
# TODO: switch to stable release when 4.1 is released | ||
reno @ git+https://github.com/openstack/reno.git@81587f616f17904336cdc431e25c42b46cd75b8f | ||
Sphinx>=5.0 | ||
qiskit-sphinx-theme~=1.11.0 | ||
sphinx-design>=0.2.0 | ||
pygments>=2.4 | ||
scikit-learn>=0.20.0 | ||
scikit-quant<=0.7;platform_system != 'Windows' | ||
jax;platform_system != 'Windows' | ||
jaxlib;platform_system != 'Windows' | ||
docplex | ||
qiskit-qasm3-import |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Optional dependencies of Terra that can (mostly) reliably be installed with | ||
# `pip`. This file is still called `requirements-optional.txt` just to match | ||
# standard pip conventions, even though none of these are required. | ||
# | ||
# If updating this, you probably want to update `qiskit.utils.optionals` and | ||
# maybe `setup.py` too. | ||
|
||
# Test-runner enhancements. | ||
fixtures | ||
mtreinish marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Any downside to installing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There historically was a reason, particularly for There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There were two historical reasons for it. First there was a time when there was an incompatibility with some skip decorators between testtools and unittest on newer python versions, but I believe we fixed that in the testtools 2.5.0 release. The second and larger reason was for people that wanted to just run with unittest. The only thing we use testtools for is to wrap unittest and leverage testtools' result stream feature. That lets us attach captured stdout, stderr, and python logging and have that associated with an individual test. The issue was historically there are people who don't like running with stestr and prefer using TBH, this was mostly the result of a historical compromise from when we first started using stestr for qiskit back in 2018/2019. Back then some others felt very strongly that people should be able to run the tests without installing an extra test runner package (neglecting that you needed a bunch of different libraries to even install qiskit, let alone run the tests). So when we started using stestr by default for the improved throughput it provided we made sure there was a path for those who didn't want to abandon the stdlib runner. That being said 4-5 yrs later I'm not sure this really matters anymore. I think in a follow up we should just move it into the requirements list and see what happens. I would expect anyone still using |
||
testtools | ||
jupyter | ||
|
||
# Interactivity. | ||
ipykernel | ||
ipython | ||
ipywidgets>=7.3.0 | ||
matplotlib>=3.3 | ||
pillow>=4.2.1 | ||
pydot | ||
pygments>=2.4 | ||
pylatexenc>=1.4 | ||
seaborn>=0.9.0 | ||
|
||
# Functionality and accelerators. | ||
qiskit-aer | ||
qiskit-qasm3-import | ||
python-constraint>=1.4 | ||
cplex; python_version < '3.11' | ||
cvxpy | ||
docplex | ||
jax; platform_system != 'Windows' | ||
jaxlib; platform_system != 'Windows' | ||
scikit-learn>=0.20.0 | ||
scikit-quant<=0.7; platform_system != 'Windows' | ||
SQSnobFit | ||
z3-solver>=4.7 | ||
# Tweedledum is unmaintained and its existing Mac wheels are unreliable. If you | ||
# manage to get a working install on a Mac the functionality should still work, | ||
# but as a convenience this file won't attempt the install itself. | ||
tweedledum; python_version<'3.11' and platform_system!="Darwin" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Requirements for the tutorials CI run that go beyond the others in `requirements-optional.txt`. | ||
# This may also include some requirements that are only in `requirements-dev.txt`, since those | ||
# aren't runtime dependencies or optionals of Terra. | ||
|
||
networkx>=2.2 | ||
jupyter | ||
Sphinx | ||
nbsphinx | ||
qiskit_sphinx_theme | ||
pyscf |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One mild concern I have here is when we're adding support for a new python version it might be harder to know when our optional extras support it with this since we're only running the old side with the optional extras. That being said I think we should be ok to try this to start and we'll see how it goes for Python 3.12 support.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I set the cronjob CI to use the full optionals, so we'll find out from the nightly run whether stuff works or not without blocking CI.