Skip to content

Commit 50ff838

Browse files
qciaranqartikciaranranealerickson-qtmperlinm
authored
Refactor n memory (#155)
* reviewfix: angles only needed in QOp * reviewfix: convert RZZ to I during phir -> pypmir conversion * Adding very simple depolarizing error model. (#24) * changing the dev version number from 0.5.dev1 to 0.5.0.dev1 to be more specific (#25) * Version bump to fix pypi issue. * Bug phir if statement (#27) * Fixed issue with yielding instructions of blocks * bump to 0.5.0.dev3 + avoiding [] buffer yielding * Fixing linting because my pre-commit hook was off * add external phir dependency + remove Python 3.8 + test both required… (#19) * add external phir dependency + remove Python 3.8 + test both required and optional dependencies * Updating workflow to include diff OSs. Added skipping of tests based on optional dependency OS/Python version support. * Skip wasmer tests on for Python >= 3.11 * Skipping test if Wasmer could not be imported. * More robust method for skipping tests of Wasmer due to unsupported systems * Add simple test of extern phir * Requirement update to phir 0.1.6 * Included PHIR model validation and related tests * small bump for requirements.txt --------- Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com> * Added support for qparallel. (#33) * Added support for qparallel. * Bumping to 0.5.0.dev4 * Bug out of order seq (#35) * Fixed buggy yielding of Sequence/QParallel blocks * Add a test of the sequence of op buffers. * Reworked recursive iteration through blocks to be more elegant * Marked test using state-vec sim as optional dependency * Added Clifford Bell qparallel test and silence tz warning * Bumping version to 0.5.0.dev5 and updating requirements * Fixing support of PHIR's multi-assignment (#36) * Fixing support of PHIR's multi-assignment * bump version to 0.5.0.dev6 * Adding coder owners file * Fixing code owners file typo * build: add typed marker for pecos * Initial support for barriers (skips barriers for now). (#38) * Initial support for barriers (skips barriers for now). * Additional barrier testing and associated fixes * bumping version to 0.5.0.dev7 * Update requirements * Bumping phir req (#39) * updating requirements to phir ~= 0.3.0 * Fixes rare test error * Bumping version to 0.5.0.dev8 and updating requirements.txt * Broadening wasmtime req. + simplifying [all] (#42) * Add wasmtime support for engines/cvm/wasm (#43) * bumping to version 0.5.0.dev9 (#44) * Update docs (#47) * Various small updates of docs including autogen of API docs * Small doc tweaks + fixing FT checking file issue that was detected by generating docs automatically --------- Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com> * Feature more simulators (#21) * CoinToss simulator implemented. * Replaced the old CuStateVec simulator (C API) with a version using the Python API. * Updated README with installation instructions for CuStateVec. --------- Co-authored-by: PabloAndresCQ <pablo.andres-martinez@cambridgequantum.com> Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com> * Cumulative development update (#54) * Added .sim_name to QOps. Added angle info to QOp.angle * Added code to identify Clifford gates from more general gates * Added conversion to Clifford support for RZ , RZZ, and R1XY * Tweaking generic machine to clear state * Add test of operation type before running qsims. * Adding general Instr type and list types * Adding slr code * Updated linting/formatting * Moving slr down to reduce nesting * fix slr __version__ * Creating a slr.std folder to hold common extension to core to the DSL * Fixing std import * Adding in duration for MOps in PyPMIR * Modifying qargs in mops appropriately. * Moving the old cuquantum code to cuquantum_old for now... * Updating actions/setup-python from v4 to v5 * Adding tests of SLR and gate name resolving + some fixes due to those * Update .pre-commit-config.yaml Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com> * Apply suggestions from code review Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com> * Updating pre-commit / running ruff/black * Updating the docs using autodoc * Changing PHIR test to only have bits set by 1 or 0 (not bool) --------- Co-authored-by: Ciaran Ryan-Anderson <ciaran.ryan-anderson@quantinuum.com> Co-authored-by: Ciarán Ryan-Anderson <70174051+qciaran@users.noreply.github.com> Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com> * Bumping version number to 0.5.0.dev10 * Feat hybrid noise (#60) * Allows noise model to generate hybrid errors (classical and quantum instructions) * Adding internal cinterp registers for error models * removing internally generated measurements from results * Converts conditionals into COps --------- Co-authored-by: Ciaran Ryan-Anderson <ciaran.ryan-anderson@quantinuum.com> * version bump 0.5.0.dev11 * Adding specific error messaging and enforced maximum duration to WASM calls (#62) Preventing infinite looping of WASM calls and providing additional details to users when WASM errors occur. --------- Co-authored-by: Ciarán Ryan-Anderson <70174051+qciaran@users.noreply.github.com> * 64 bit signed arithmetic support (#57) * feat: add support for negative integers to phir * feat: add hypothesis-enabled unit tests for BinArray2 Also, clamp only for unsigned integer types * lint: fix typos and exclude cuquantum_old * feat: replace BinArray with BinArray2 * fix: set BinArray2's value correctly, or it can convert to ndarray * build: bump patch version to distinguish in testing * feat: partition data_types into signed and unsigned also make size optional for signed integer type * build: update to correct phir version Co-authored-by: Ciarán Ryan-Anderson <70174051+qciaran@users.noreply.github.com> --------- Co-authored-by: Ciarán Ryan-Anderson <ciaranra@gmail.com> * cuStateVec bugfixes and slight refactor (#64) * Updated argument names for new API (cuStateVec 1.6.0) * Bumped up version requirements * Fixing a bug in CuStateVec in the implementation of the RYY gate * Refactor of state.vector so that it returns a numpy array for easier testing and integration * Adding some of the changes from Dominic's PR #58 * Added more bindings requested by @dlucchetti * Bumping version number to 0.6.0.dev3 (#65) * Adding a numpy-based basic statevector simulator for more exhaustive testing (#55) * Adding a basic numpy statevector simulator * Adding more exhaustive tests against BasicSV * Adding a reset method * [feature] Adding support for QuEST and Qulacs statevector simulators (#68) * Added Qulacs simulator * Added wrapper for QuEST * Updated readme with simulator installation instructions * Adding tests for HybridEngine on statevector simulators * Supporting new statevector sims on HybridEngine * Fixed a bug in CuStateVec relating to HybridEngine * [feature] Adding support for MPS simulation (#63) * Adding an MPS simulator * Adding tests for MPS * Using non-destructive measurements * Added a reset method to MPS * Including MPS as a qsim backend for HybridEngine * Adding more bindings for initialisation that are needing for the tests * Allowing users to provide parameters for the MPS simulation from HybridEngine * Add HybridEngine tests for MPS * Bumping version number to 0.6.0.dev4 * [Bugfixes] Solving some issues for qemulator MPS release (#73) * Added angles vs angle parameter handling to hybrid_engine_old * The reset methods in simulators must return self. * If import fails, create dummy NoneType simulator * Updated bindings of CoinToss * Removed filter of simulation parameters, since it is not necessary * Using a more sensible import approach in the test file * Debug message converted to info message. * Bump to 0.6.0.dev5 * Feat qeclib steane (#75) * Initial dump of qeclib code + SLR updates * Add teleportation/application of the Tdg gate to Steane code class. * fix register naming bug (#70) * Add qasm regression tests * Refactor qasm generation * Removed some test print statements * Use `default_rus_limit` in `Steane` class (#74) * use default_rus_limit * Revert "use default_rus_limit" This reverts commit c186dd9. * set rus_limit to None by default * Allow passing ancillas to `Steane` class (#72) * allow ancilla recycling in Steane class * raise error if ancilla register is too small * add only new variables * Revert "add only new variables" This reverts commit a0d8e4f. * Fixing regression qasm issues * lint fixes --------- Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com> Co-authored-by: Michael A. Perlin <mika.perlin@gmail.com> * Typo fixed in the implementation of `p` and `tdg` in `steane_class.py` (#76) * Typo fixed * Another typo in definition of tdg * Fixing regression issue due to typo fix + fixing inconsistent creg use --------- Co-authored-by: Ciaran Ryan-Anderson <ciaran.ryan-anderson@quantinuum.com> * fix Steane.prep_tdg_plus_state (#78) * Fixing measurement noise causing only 0 measurement * adding llvmlite requirement and gen qir file * adding llvmlite requirement and gen qir file * starting with basic structure for QIR support * starting with basic structure for QIR support * adding generator base class * adding generator base class * Some progress, circular refs causing issues * Some progress, circular refs causing issues * more stuff * more stuff * reworking generation workflow * reworking generation workflow * changes towards adding measurement support * changes towards adding measurement support * cx gate * cx gate * syntax fixes, test runs * syntax fixes, test runs * Measure supported * Measure supported * fleshing out documentation bettter * fleshing out documentation bettter * adding result tagging * adding result tagging * cleanup dead code * cleanup dead code * working * working * clean up results handling into another method, slightly * clean up results handling into another method, slightly * refactored into easier method * refactored into easier method * Result class working * Result class working * correct code generation for bell example * correct code generation for bell example * progress * progress * fixing icmp usage; conditionals * fixing icmp usage; conditionals * updates * updates * test changes * test changes * fixed comparison rhs code * fixed comparison rhs code * Fixing If block back to standard * Fixing If block back to standard * Adding gate decomposition, handling for adj in QIR * Adding gate decomposition, handling for adj in QIR * Reworking decomposition, added barrier * First stage of converting old general color code construction to new form * Add code block class * Finishing out gates * Move qeclib/color488 to correct new place * refactoring Steane and Qubit to classmethod * new surface stub * Add initial surface code plotting for new qeclib * Adding license notice * polishing fig gen * polish mz() * Switching to *qargs for PhysicalQubits * refactoring surface code * linting * Refactoring surface code and visualization * Added direct surface patch visualization * refactoring to smaller files * Simplifying code * further simplification/refactoring * test added + small polishing * Improved flexibility of visualization * Small polishing of visualization * Rough draft implementation of classical operator support is added. Will try to extract a program with classical operations to QIR as test of rough draft code, but existing tests work. * First binary operator test passed. * Compiled steane successfully * Merged successfully * Fixed some linting * ruff unsafe fixes applied * Linter happy :) * Removing failing asserts from QIR tests * Precommit happy after tests use qir variable * Trying to remove circular QReg import in gen_qasm.py. * Hopefully getting QIR testing supported in CI :D * Ruff ruff * Let's try to install LLVM in workflows, surely nothing could go wrong. * Things went wrong. * Weird yaml spacing issues in emacs * PyCharm any better??? * Github happy now? * Fixing circular import issues * Black linting fix * some qasm tests failing but overall fixed many tests * some qasm tests failing but overall fixed many tests * Adding a method to generate bitcode * Adding SX, SXdg, and SY + fixing a qir test * Introduces CReg size check for QIR + linting * fixing test regex issue * hopefully fixes pecos.slr issue with optional QIR/LLVM * Making sure the llvm module gets a fresh context each time * explicit initalization of llvmlite.binding.initialize on QIR conversion object creation * Using binding.shutdown() at the end of each compilation to prevent new Qubit types from being introduced * Getting permute working for both QASM and QIR (#130) * Getting permute working for both QASM and QIR * Attempting to fix Issue #116 * Add some QASMGenerator arguments back * Moved new qasm functionality from slr_converter.py to gen_qasm.py and moving SLR tests together. * Refactor to simplify gen_qir.py * linting * removed conditional statement in _create_qgate_call focused on unrolling set of args as it missed corner cases where the set of qargs and size of desired arg is the same * Fixing F'd F gates * Commenting decompositions * F4dg experiment * fixed RZ call on qir gate mapping * Reduce requirements for numpy... * Removing pyquest as it has been causing some issues... * Add StateVecRs as a fallback for "state-vector" in Python PECOS. * Python cleanup... * More cleaning * More cleaning * More cleaning * More cleaning * improved simulation output with formatter * Refactor new result code into module * Using BitVec as the basic creg data type in pecos-qasm * Simplifying byte_message/ * More cleaning * Fix QIR testing? * Simplify the parser for pecos-qasm * Adding const folding * adding run_qasm_sim to Python * lint * Make lint helping * Update some docs + cleanup of ByteMessage to use .add_outcomes and .outcomes for measurement result related things * Simplify ByteMessage * Update builder pattern Python doc * Removing biased measurement noise since biased depolarizing noise give equivalent behavior * Update p_idle_linear_rate to use validate_non_negative + switched p_idle_coherent_to_incoherent_factor` to be 1.5 by default * Add binary output formatting to qasm_sim * lint * Improve qasm_sim Python API * Add config to qasm_sim * Fixing some qasm include issues * Fixed issue with quadratic idling sometimes issuing gates with no qubits * Fix permute issue? * Improve general noise config * Changed general noise model parameter from p2_idle_quadratic_rate to p2_idle, which is just linear noise * Fixed recursive Permute issue * Refactoring noise configuration for qasm_sim + making noise builders return unboxed noise models * Added scaling to p_idle_linear_rate (fix #143) * Correcting mistake from previous commit: p_idle_linear_rate needs not be a probability, the product of it with the duration in seconds is what needs to be a probability. * Fix `with_p_average` scaling (#148) * Removed sqrt and changed names so that they match the with_average pattern (assuming typo) * Fixed problem with quadratic idling * Rust needs help with types * Fix naming issues * Qasm wasmtime (#150) * Add .wasm() to qasm_sim() in crates/pecos-qasm * Add wasm() to pecos-rslib * Minimal Rust wrapper for PCG * Add TODO to the rng_model.py * Renaming clibs/ to clib/ since a library is already a collection of things * Fixing more clibs to clib references * Resolving maturin build failure due to not including C files for sdist * Remove sdist building for pecos-rslib due to external C source issues. Users can just use the repo to build from source. * Adding external LDPC decoders project support in PECOS * Update color code --------- Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com> Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com> Co-authored-by: nealerickson-qtm <146495165+nealerickson-qtm@users.noreply.github.com> Co-authored-by: Michael A. Perlin <mika.perlin@gmail.com> Co-authored-by: Pete Campora <petecampora@gmail.com> Co-authored-by: Neal Erickson <neal.erickson@quantinuum.com> Co-authored-by: Jonhas Colina <jonhas.colina@quantinuum.com> Co-authored-by: PabloAndresCQ <pablo.andresmartinez@quantinuum.com>
1 parent 0c49566 commit 50ff838

File tree

495 files changed

+56785
-8736
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

495 files changed

+56785
-8736
lines changed

.github/workflows/python-release.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,15 @@ jobs:
9696
working-directory: python/pecos-rslib
9797
target: ${{ matrix.architecture == 'aarch64' && (matrix.os == 'macos-latest' && 'aarch64-apple-darwin' || 'aarch64-unknown-linux-gnu') || (matrix.os == 'macos-latest' && 'x86_64-apple-darwin' || '') }}
9898
manylinux: auto
99+
before-script-linux: |
100+
if command -v yum &> /dev/null; then
101+
yum install -y openssl-devel
102+
elif command -v apt-get &> /dev/null; then
103+
apt-get update && apt-get install -y libssl-dev pkg-config
104+
else
105+
echo "No supported package manager found"
106+
exit 1
107+
fi
99108
100109
- name: Restore README.md
101110
if: always()

.github/workflows/python-test.yml

Lines changed: 70 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,9 @@ env:
99
on:
1010
push:
1111
branches: [ "master", "development", "dev" ]
12-
# # Comment out paths to force run on all pushes
13-
# paths:
14-
# - 'python/**'
15-
# - '.github/workflows/python-test.yml'
16-
# - '.typos.toml'
17-
# - 'ruff.toml'
18-
# - '.pre-commit-config.yaml'
1912
pull_request:
2013
branches: [ "master", "development", "dev" ]
21-
# # Comment out paths to force run on all PRs
22-
# paths:
23-
# - 'python/**'
24-
# - '.github/workflows/python-test.yml'
25-
# - '.typos.toml'
26-
# - 'ruff.toml'
27-
# - '.pre-commit-config.yaml'
14+
workflow_dispatch:
2815

2916
concurrency:
3017
group: ${{ github.workflow }}-${{ github.ref }}
@@ -51,6 +38,12 @@ jobs:
5138
with:
5239
python-version: ${{ matrix.python-version }}
5340

41+
- name: Set up Visual Studio environment on Windows
42+
if: runner.os == 'Windows'
43+
uses: ilammy/msvc-dev-cmd@v1
44+
with:
45+
arch: x64
46+
5447
- name: Install the latest version of uv
5548
uses: astral-sh/setup-uv@v4
5649
with:
@@ -62,48 +55,70 @@ jobs:
6255
- name: Cache Rust
6356
uses: Swatinem/rust-cache@v2
6457
with:
65-
workspaces: python/pecos-rslib
66-
67-
- name: Generate lockfile and install dependencies
68-
run: |
69-
uv lock --project .
70-
uv sync --project .
58+
workspaces: python/pecos-rslib
7159

72-
- name: Install pecos rng build dependencies
60+
- name: Build and test PECOS (Windows)
61+
if: runner.os == 'Windows'
62+
shell: pwsh
7363
run: |
74-
uv pip install build nanobind scikit-build-core cmake ninja
75-
76-
- name: Build PECOS RNG
77-
run: |
78-
export NANOBIND_CMAKE_DIR=$(uv run -- python -m nanobind --cmake_dir)
79-
export NANOBIND_DIR=$(uv run -- python -m nanobind --include_dir)
80-
cd clib/pecos-rng && mkdir build && cd build/ && cmake .. -DCMAKE_PREFIX_PATH=$NANOBIND_CMAKE_DIR
81-
cmake --build . && cd ..
82-
uv pip install .
83-
84-
- name: Install pecos-rslib with maturin
64+
# Find MSVC link.exe and create cargo config
65+
$vsWhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
66+
$vsPath = & $vsWhere -latest -property installationPath
67+
$linkPath = Get-ChildItem -Path "$vsPath\VC\Tools\MSVC" -Recurse -Filter "link.exe" |
68+
Where-Object { $_.FullName -like "*\bin\Hostx64\x64\*" } |
69+
Select-Object -First 1 -ExpandProperty FullName
70+
71+
if ($linkPath) {
72+
Write-Host "Found MSVC link.exe at: $linkPath"
73+
74+
# Create .cargo directory and config
75+
New-Item -ItemType Directory -Force -Path .cargo | Out-Null
76+
77+
# Create config with escaped path
78+
$escapedPath = $linkPath.Replace('\', '/')
79+
"[target.x86_64-pc-windows-msvc]" | Out-File -FilePath ".cargo\config.toml" -Encoding UTF8
80+
"linker = `"$escapedPath`"" | Out-File -FilePath ".cargo\config.toml" -Encoding UTF8 -Append
81+
82+
Write-Host "Created .cargo\config.toml:"
83+
Get-Content .cargo\config.toml
84+
} else {
85+
Write-Error "Could not find MSVC link.exe"
86+
exit 1
87+
}
88+
89+
# Build and test
90+
make build
91+
make pytest-all
92+
93+
- name: Build and test PECOS (non-Windows)
94+
if: runner.os != 'Windows'
8595
run: |
86-
cd python/pecos-rslib
87-
uv run maturin develop --uv
88-
89-
- name: Install quantum-pecos
90-
run: |
91-
cd python/quantum-pecos
92-
uv pip install -e .
93-
94-
- name: Run pre-commit checks
95-
run: uv run pre-commit run --all-files --show-diff-on-failure
96-
97-
- name: Install test dependencies
98-
run: |
99-
cd python/quantum-pecos
100-
uv pip install -e .[all,test] # Install with both all and test extras
101-
uv pip install pytest pytest-cov # Explicitly install test requirements
102-
103-
- name: Run standard tests
104-
run: |
105-
uv run pytest ./python/tests --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
106-
107-
- name: Run optional dependency tests
96+
# On macOS, set up minimal environment for matplotlib compatibility
97+
if [[ "${{ runner.os }}" == "macOS" ]]; then
98+
# Set matplotlib backend to avoid GUI issues
99+
export MPLBACKEND=Agg
100+
export MATPLOTLIB_INTERACTIVE=false
101+
102+
# Try to fix matplotlib segfault by limiting threading
103+
export OPENBLAS_NUM_THREADS=1
104+
export MKL_NUM_THREADS=1
105+
export NUMEXPR_NUM_THREADS=1
106+
export OMP_NUM_THREADS=1
107+
108+
# Disable macOS System Integrity Protection library validation
109+
# This can help with library loading issues
110+
export DYLD_LIBRARY_PATH=""
111+
112+
# Force matplotlib to use bundled libraries instead of system ones
113+
export MPLCONFIGDIR=$PWD/.matplotlib
114+
mkdir -p $MPLCONFIGDIR
115+
fi
116+
117+
# Build and test
118+
make build
119+
make pytest-all
120+
121+
- name: Run linting
108122
run: |
109-
uv run pytest ./python/tests --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html -m optional_dependency
123+
# Run all linting checks
124+
make lint # Rust checks + Python pre-commit

.github/workflows/rust-test.yml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ jobs:
139139
with:
140140
version: "14.0"
141141
directory: ${{ runner.temp }}/llvm
142-
env: true
142+
env: false # Don't set CC/CXX - we'll use MSVC for C++ compilation
143143

144144
- name: Setup LLVM Path (Windows)
145145
if: matrix.os == 'windows-latest'
@@ -149,6 +149,21 @@ jobs:
149149
# Display LLVM_PATH environment variable set by the action
150150
Write-Host "LLVM_PATH environment variable: $env:LLVM_PATH"
151151
152+
# Ensure we're using MSVC for C++ compilation, not LLVM clang
153+
Write-Host "Ensuring MSVC is used for C++ compilation..."
154+
if (Test-Path env:CC) {
155+
Write-Host "Removing CC environment variable (was: $env:CC)"
156+
Remove-Item Env:CC -ErrorAction SilentlyContinue
157+
}
158+
if (Test-Path env:CXX) {
159+
Write-Host "Removing CXX environment variable (was: $env:CXX)"
160+
Remove-Item Env:CXX -ErrorAction SilentlyContinue
161+
}
162+
163+
# Clear these from GITHUB_ENV too
164+
echo "CC=" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
165+
echo "CXX=" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
166+
152167
# Add LLVM bin directory to PATH for this and subsequent steps
153168
$llvmBinDir = Join-Path -Path $env:LLVM_PATH -ChildPath "bin"
154169
@@ -214,6 +229,12 @@ jobs:
214229
}
215230
}
216231
232+
- name: Set up Visual Studio environment on Windows
233+
if: matrix.os == 'windows-latest'
234+
uses: ilammy/msvc-dev-cmd@v1
235+
with:
236+
arch: x64
237+
217238
- name: Compile tests
218239
run: cargo test --no-run
219240

.github/workflows/test-docs-examples.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,23 @@ jobs:
4141
with:
4242
workspaces: python/pecos-rslib
4343

44+
- name: Install LLVM
45+
uses: KyleMayes/install-llvm-action@v2
46+
with:
47+
version: "14.0"
48+
env: True
49+
50+
- name: Configure LLVM
51+
run: |
52+
echo "LLVM_CONFIG=$LLVM_PATH/bin/llvm-config" >> "$GITHUB_ENV"
53+
echo "LLVM_SYS_140_PREFIX=$LLVM_PATH" >> "$GITHUB_ENV"
54+
# Disable LTO to avoid gold linker plugin issues
55+
echo "CFLAGS=-fno-lto" >> "$GITHUB_ENV"
56+
echo "CXXFLAGS=-fno-lto" >> "$GITHUB_ENV"
57+
echo "LDFLAGS=-fno-lto" >> "$GITHUB_ENV"
58+
# Test LLVM installation
59+
"$LLVM_PATH/bin/llvm-config" --version
60+
4461
- name: Generate lockfile and install dependencies
4562
run: |
4663
uv lock --project .
@@ -60,7 +77,10 @@ jobs:
6077
run: |
6178
uv run python scripts/docs/test_working_examples.py
6279
80+
# TODO: Re-enable documentation code examples testing once documentation is updated
81+
# Currently skipped due to outdated code examples with missing imports and API changes
6382
- name: Test all code examples
83+
if: false # Temporarily disabled - see TODO above
6484
run: |
6585
uv run python scripts/docs/test_code_examples.py
6686

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ repos:
2525
args: []
2626

2727
- repo: https://github.com/astral-sh/ruff-pre-commit
28-
rev: v0.11.11
28+
rev: v0.12.4
2929
hooks:
3030
- id: ruff-check
3131
args: [--fix, --exit-non-zero-on-fix]
@@ -36,7 +36,7 @@ repos:
3636
- id: black
3737

3838
- repo: https://github.com/keewis/blackdoc
39-
rev: v0.3.9
39+
rev: v0.4.1
4040
hooks:
4141
- id: blackdoc
4242
additional_dependencies:

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.13
1+
3.12

0 commit comments

Comments
 (0)