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

Fix release jobs post-0.25.1 release #10663

Merged
merged 3 commits into from
Aug 21, 2023
Merged

Conversation

mtreinish
Copy link
Member

Summary

This commit fixes 3 issues identified during the 0.25.1 release. The first is that the name of the qiskit package build/publish job was invalid in azure pipelines. The - character is not valid and throws an error when the release is triggered. The second issue is that the qiskit package job is triggered at the same time as all the qiskit-terra package build/publish jobs. However, the qiskit package is very quick to build while the qiskit-terra jobs take some time so qiskit will be published first and qiskit-terra second. This will result in a small period when qiskit is uninstallable because it depends on a yet unpublished release of qiskit-terra. To address this the build artifact deployment is split into 2 stages, the first builds the qiskit-terra precompiled binary wheels and publishes those to pypi first. The second stage builds the qiskit-terra sdist and the qiskit package. This means users will always have a working install when they do pip install qiskit. The final fix is the path for the qiskit package's build artifacts was incorrect. This caused the job to fail because it could not upload the artifacts for local download or to pypi.

Details and comments

This commit fixes 3 issues identified during the 0.25.1 release. The
first is that the name of the qiskit package build/publish job was
invalid in azure pipelines. The `-` character is not valid and throws an
error when the release is triggered. The second issue is that the qiskit
package job is triggered at the same time as all the qiskit-terra
package build/publish jobs. However, the qiskit package is very quick to
build while the qiskit-terra jobs take some time so qiskit will be
published first and qiskit-terra second. This will result in a small
period when `qiskit` is uninstallable because it depends on a yet
unpublished release of qiskit-terra. To address this the build artifact
deployment is split into 2 stages, the first builds the qiskit-terra
precompiled binary wheels and publishes those to pypi first. The second
stage builds the qiskit-terra sdist and the qiskit package. This means
users will always have a working install when they do `pip install
qiskit`. The final fix is the path for the qiskit package's build
artifacts was incorrect. This caused the job to fail because it could
not upload the artifacts for local download or to pypi.
@mtreinish mtreinish added type: qa Issues and PRs that relate to testing and code quality Changelog: None Do not include in changelog labels Aug 17, 2023
@mtreinish mtreinish added this to the 0.25.2 milestone Aug 17, 2023
@mtreinish mtreinish requested a review from a team as a code owner August 17, 2023 22:03
@qiskit-bot
Copy link
Collaborator

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

  • @Qiskit/terra-core

@mtreinish mtreinish added the stable backport potential The bug might be minimal and/or import enough to be port to stable label Aug 17, 2023
@coveralls
Copy link

coveralls commented Aug 17, 2023

Pull Request Test Coverage Report for Build 5902400014

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 4 unchanged lines in 2 files lost coverage.
  • Overall coverage increased (+0.01%) to 87.257%

Files with Coverage Reduction New Missed Lines %
crates/qasm2/src/expr.rs 1 93.76%
crates/qasm2/src/lex.rs 3 90.63%
Totals Coverage Status
Change from base Build 5902014500: 0.01%
Covered Lines: 74352
Relevant Lines: 85210

💛 - Coveralls

azure-pipelines.yml Outdated Show resolved Hide resolved
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 guess the downside to this is that a failure to upload any single wheel will cause the sdist job not to be run. We've not generally had a problem with this in the Azure-managed sections of the deployment, but we've frequently used the parallelisation of the builds in the tier-2 and tier-3 supported platforms and let PyPI bounce already-successful packages during a re-run. If the sdist run failed for any reason, we'd not easily be able to retrigger it in this form without rewriting the file to remove the dependency.

That's probably fine as a compromise, just mentioning that it's a decision we're implicitly making here.

@mtreinish
Copy link
Member Author

I think it's ok as a compromise, I think optimizing for minimizing the user facing impact of a failure is more important here. Pushing a throwaway branch to manually retrigger the sdist build isn't that high a burden IMO (I had to do it during the 0.25.1 release already :) )

@jakelishman jakelishman added this pull request to the merge queue Aug 21, 2023
Merged via the queue into Qiskit:main with commit 751f1d6 Aug 21, 2023
14 checks passed
mergify bot pushed a commit that referenced this pull request Aug 21, 2023
* Fix release jobs post-0.25.1 release

This commit fixes 3 issues identified during the 0.25.1 release. The
first is that the name of the qiskit package build/publish job was
invalid in azure pipelines. The `-` character is not valid and throws an
error when the release is triggered. The second issue is that the qiskit
package job is triggered at the same time as all the qiskit-terra
package build/publish jobs. However, the qiskit package is very quick to
build while the qiskit-terra jobs take some time so qiskit will be
published first and qiskit-terra second. This will result in a small
period when `qiskit` is uninstallable because it depends on a yet
unpublished release of qiskit-terra. To address this the build artifact
deployment is split into 2 stages, the first builds the qiskit-terra
precompiled binary wheels and publishes those to pypi first. The second
stage builds the qiskit-terra sdist and the qiskit package. This means
users will always have a working install when they do `pip install
qiskit`. The final fix is the path for the qiskit package's build
artifacts was incorrect. This caused the job to fail because it could
not upload the artifacts for local download or to pypi.

* Fix scoping for dependsOn

(cherry picked from commit 751f1d6)
github-merge-queue bot pushed a commit that referenced this pull request Aug 21, 2023
* Fix release jobs post-0.25.1 release

This commit fixes 3 issues identified during the 0.25.1 release. The
first is that the name of the qiskit package build/publish job was
invalid in azure pipelines. The `-` character is not valid and throws an
error when the release is triggered. The second issue is that the qiskit
package job is triggered at the same time as all the qiskit-terra
package build/publish jobs. However, the qiskit package is very quick to
build while the qiskit-terra jobs take some time so qiskit will be
published first and qiskit-terra second. This will result in a small
period when `qiskit` is uninstallable because it depends on a yet
unpublished release of qiskit-terra. To address this the build artifact
deployment is split into 2 stages, the first builds the qiskit-terra
precompiled binary wheels and publishes those to pypi first. The second
stage builds the qiskit-terra sdist and the qiskit package. This means
users will always have a working install when they do `pip install
qiskit`. The final fix is the path for the qiskit package's build
artifacts was incorrect. This caused the job to fail because it could
not upload the artifacts for local download or to pypi.

* Fix scoping for dependsOn

(cherry picked from commit 751f1d6)

Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
SamD-1998 pushed a commit to SamD-1998/qiskit-terra that referenced this pull request Sep 7, 2023
* Fix release jobs post-0.25.1 release

This commit fixes 3 issues identified during the 0.25.1 release. The
first is that the name of the qiskit package build/publish job was
invalid in azure pipelines. The `-` character is not valid and throws an
error when the release is triggered. The second issue is that the qiskit
package job is triggered at the same time as all the qiskit-terra
package build/publish jobs. However, the qiskit package is very quick to
build while the qiskit-terra jobs take some time so qiskit will be
published first and qiskit-terra second. This will result in a small
period when `qiskit` is uninstallable because it depends on a yet
unpublished release of qiskit-terra. To address this the build artifact
deployment is split into 2 stages, the first builds the qiskit-terra
precompiled binary wheels and publishes those to pypi first. The second
stage builds the qiskit-terra sdist and the qiskit package. This means
users will always have a working install when they do `pip install
qiskit`. The final fix is the path for the qiskit package's build
artifacts was incorrect. This caused the job to fail because it could
not upload the artifacts for local download or to pypi.

* Fix scoping for dependsOn
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 type: qa Issues and PRs that relate to testing and code quality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants