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 daily CI test for a fresh cirq --pre installation #6130

Closed
pavoljuhas opened this issue Jun 9, 2023 · 3 comments · Fixed by #6177
Closed

Add daily CI test for a fresh cirq --pre installation #6130

pavoljuhas opened this issue Jun 9, 2023 · 3 comments · Fixed by #6177
Labels
good first issue This issue can be resolved by someone who is not familiar with the codebase. A good starting issue. kind/health For CI/testing/release process/refactoring/technical debt items no QC knowledge needed Want to contribute to Cirq, but don't know quantum computing? This issue is for you. triage/accepted there is consensus amongst maintainers that this is a real bug or a reasonable feature to add

Comments

@pavoljuhas
Copy link
Collaborator

Description of the issue

pip install cirq --pre may break with cirq installation if some of cirq dependencies release a dev package with API changes to PyPI. The --pre option seems to affect cirq as well as any of its requirements. See #6129 for an example breakage.

Cirq version

v0.15.0-298-g24abfa1d

Proposed solution

Add a daily CI test to perform a fresh pip install --pre cirq from PyPI and execute unit tests on the installed code.

This requires updates to our pytest configuration; as things are pytest requires the ./conftest.py from the Cirq repository root, but this file is not distributed in cirq wheels.

@pavoljuhas pavoljuhas added kind/health For CI/testing/release process/refactoring/technical debt items no QC knowledge needed Want to contribute to Cirq, but don't know quantum computing? This issue is for you. triage/discuss Needs decision / discussion, bring these up during Cirq Cynque good first issue This issue can be resolved by someone who is not familiar with the codebase. A good starting issue. labels Jun 9, 2023
@tanujkhattar tanujkhattar added triage/accepted there is consensus amongst maintainers that this is a real bug or a reasonable feature to add and removed triage/discuss Needs decision / discussion, bring these up during Cirq Cynque labels Jun 21, 2023
@jackreeceejini
Copy link
Contributor

I'm trying to work on this issue, any pointers on how to start?

@pavoljuhas
Copy link
Collaborator Author

I'd suggest to add a new CI workflow ci-daily.yml scheduled to run every day, see #6046 for an example.
Then you can use the Pytest Ubuntu, Pytest Windows, Pytest MacOs jobs as starting points,
but modify their Install requirements parts to do

$ pip install --pre cirq

instead of installing from the dev.env.txt package list.

I think you will also need to do

pip install \
    -r dev_tools/requirements/deps/format.txt \
    -r dev_tools/requirements/deps/pylint.txt \
    -r dev_tools/requirements/deps/pytest.txt

to be able to run check/pytest at line 171

- name: Pytest check
run: check/pytest -n auto --ignore=cirq-core/cirq/contrib --rigetti-integration

The idea is to install the pre-release cirq wheel and its dependencies from PyPI and verify things still work.

@jackreeceejini
Copy link
Contributor

jackreeceejini commented Jun 23, 2023 via email

pavoljuhas pushed a commit that referenced this issue Jul 6, 2023
Add daily CI job for testing Cirq installation from a pre-release PyPI wheels.

Fixes #6130
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue This issue can be resolved by someone who is not familiar with the codebase. A good starting issue. kind/health For CI/testing/release process/refactoring/technical debt items no QC knowledge needed Want to contribute to Cirq, but don't know quantum computing? This issue is for you. triage/accepted there is consensus amongst maintainers that this is a real bug or a reasonable feature to add
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants