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

👷⬆️ update MQT workflows to v1.6 #803

Merged
merged 8 commits into from
Jan 22, 2025
Merged

👷⬆️ update MQT workflows to v1.6 #803

merged 8 commits into from
Jan 22, 2025

Conversation

burgholzer
Copy link
Member

@burgholzer burgholzer commented Jan 16, 2025

Description

This PR adopts the latest version of the MQT workflows, which contains the changes from munich-quantum-toolkit/workflows#60.
By default, C++ CI is now only run in Release mode for all major platforms. However, when a PR is tagged with extensive-cpp-ci, a large set of test runs will be started on various operating system versions using various compilers.
Similarly, adding a extensive-python-ci label will trigger additional Python test runs on different OS versions.
Note that the labels need to be present before CI starts running, or the already started/completed CI may need to be rerun.
Most small PRs should be fine to run with the default set of runs. The extensive CI should be enabled for infrastructure-critical PRs or, more generally, at the end of the PR cycle before merging.

In addition, this update brings support for natively building aarch64 wheels using GitHub's new Ubuntu ARM runners, which are now enabled by default.

Finally, this PR drops the TestPyPI uploads given their little value over the last couple of months and their substantial runner demand.

Checklist:

  • The pull request only contains commits that are related to it.
  • I have added appropriate tests and documentation.
  • I have made sure that all CI jobs on GitHub pass.
  • The pull request introduces no new warnings and follows the project's style guidelines.

@burgholzer burgholzer added continuous integration Anything related to the CI setup c++ Anything related to C++ code python Anything related to Python code labels Jan 16, 2025
@burgholzer burgholzer self-assigned this Jan 16, 2025
Copy link

codecov bot commented Jan 18, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 92.2%. Comparing base (9265d78) to head (e4311a9).
Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@          Coverage Diff          @@
##            main    #803   +/-   ##
=====================================
  Coverage   92.2%   92.2%           
=====================================
  Files        126     126           
  Lines      13830   13830           
  Branches    2153    2153           
=====================================
  Hits       12761   12761           
  Misses      1069    1069           
Flag Coverage Δ
cpp 92.0% <ø> (ø)
python 99.7% <ø> (ø)

@burgholzer burgholzer added extensive-cpp-ci Adding this label indicates that extensive C++ CI runs should be started for this PR. and removed extensive-cpp-ci Adding this label indicates that extensive C++ CI runs should be started for this PR. labels Jan 20, 2025
burgholzer added a commit that referenced this pull request Jan 21, 2025
## Description

This fixes a small bug observed as part of #803, which only surfaced on
Windows in Debug mode when compiling using Clang 🤯
Part of the block collection code in the circuit optimizer would
invalidate an iterator due to an update of the respective container
being iterated over within the loop.

## Checklist:

<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->

- [x] The pull request only contains commits that are related to it.
- [x] I have added appropriate tests and documentation.
- [x] I have made sure that all CI jobs on GitHub pass.
- [x] The pull request introduces no new warnings and follows the
project's style guidelines.

Signed-off-by: Lukas Burgholzer <[email protected]>
@burgholzer burgholzer added the extensive-python-ci Adding this label indicates that extensive Python CI runs should be started for this PR. label Jan 21, 2025
@burgholzer burgholzer changed the base branch from main to fix-const-eval January 21, 2025 20:27
Base automatically changed from fix-const-eval to main January 22, 2025 00:01
burgholzer added a commit that referenced this pull request Jan 22, 2025
…y check (#809)

## Description

This PR fixes another small bug observed as part of #803, which only
surfaced under macOS when using GCC as the compiler.
Turns out that GitHub's CodeQL was right after all and exact equality
checks on floating point values can come back to bite you.
In this case, two computations of `std::tan(1.0)` resulted in values
that were off by a single ULP.
Although I am not 100% certain how this can even happen, this PR works
around any such errors by using a fuzzy floating point comparison with
an epsilon on the order of `10-12`.

## Checklist:

<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->

- [x] The pull request only contains commits that are related to it.
- [x] I have added appropriate tests and documentation.
- [x] I have made sure that all CI jobs on GitHub pass.
- [x] The pull request introduces no new warnings and follows the
project's style guidelines.
this avoids running it twice when running extensive Python CI

Signed-off-by: burgholzer <[email protected]>
@burgholzer burgholzer marked this pull request as ready for review January 22, 2025 08:36
Turns out these uploads hardly provided any value and just consumed CI runtime. At least we now know that this is possible and how to achieve it, if we ever need it again.

Signed-off-by: burgholzer <[email protected]>
@burgholzer burgholzer changed the title ⚗️ try extensive CI 👷⬆️ update MQT workflows to v1.6 Jan 22, 2025
@burgholzer burgholzer merged commit 5959931 into main Jan 22, 2025
74 checks passed
@burgholzer burgholzer deleted the try-extensive-ci branch January 22, 2025 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Anything related to C++ code continuous integration Anything related to the CI setup extensive-cpp-ci Adding this label indicates that extensive C++ CI runs should be started for this PR. extensive-python-ci Adding this label indicates that extensive Python CI runs should be started for this PR. python Anything related to Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant