9494 strategy :
9595 fail-fast : false
9696 matrix :
97- python-version : ["3.13", "3.13t", "graalpy-25.0 "]
97+ python-version : ["3.13", "3.13t", "graalpy3.12 "]
9898
9999 env :
100100 RUNS_ON : ubuntu-latest
@@ -103,28 +103,25 @@ jobs:
103103 - uses : actions/checkout@v5
104104
105105 - name : set up python ${{ matrix.python-version }}
106- uses : actions /setup-python@v6
106+ uses : astral-sh /setup-uv@v8.0.0
107107 with :
108108 python-version : ${{ matrix.python-version }}
109109
110110 - uses : dtolnay/rust-toolchain@stable
111111 - uses : Swatinem/rust-cache@v2
112112 - uses : taiki-e/install-action@cargo-llvm-cov
113113
114- - name : Install python dependencies
115- run : pip install -r crates/jiter-python/tests/requirements.txt
116-
117- - name : Build jiter-python
114+ - name : Install dependencies
118115 run : |
119116 source <(cargo llvm-cov show-env --export-prefix)
120117 cargo llvm-cov clean --workspace --profraw-only
121- pip install -e crates/jiter-python --config-settings=build-args='--profile dev'
118+ uv sync --group dev --all-packages
122119
123120 - name : Run tests
124121 run : |
125122 source <(cargo llvm-cov show-env --export-prefix)
126- pytest crates/jiter-python/tests
127- python crates/jiter-python/bench.py jiter jiter-cache --fast
123+ uv run pytest crates/jiter-python/tests
124+ uv run crates/jiter-python/bench.py jiter jiter-cache --fast
128125 env :
129126 RUST_BACKTRACE : 1
130127
@@ -143,7 +140,7 @@ jobs:
143140 steps :
144141 - uses : actions/checkout@v5
145142
146- - uses : actions /setup-python@v6
143+ - uses : astral-sh /setup-uv@v8.0.0
147144 with :
148145 python-version : " 3.13"
149146
@@ -153,7 +150,7 @@ jobs:
153150 cache-target : release
154151 bins : cargo-codspeed
155152
156- - run : python crates/jiter/benches/generate_big.py
153+ - run : uv run crates/jiter/benches/generate_big.py
157154
158155 - run : cargo codspeed build -F python -p jiter
159156
@@ -180,7 +177,7 @@ jobs:
180177 - if : steps.cache-rust.outputs.cache-hit != 'true'
181178 run : cargo install cargo-fuzz
182179 - run : |
183- # cargo fuzz defaults to musl targets, which is seeming incomatible with sanitizers according to CI failures
180+ # cargo fuzz defaults to musl targets, which is seemingly incompatible with sanitizers according to CI failures
184181 RUST_TARGET=$(rustc -Vv | grep host | cut -d ' ' -f 2)
185182 cargo fuzz run --target=$RUST_TARGET --fuzz-dir crates/fuzz compare_to_serde --release -- -max_total_time=300s
186183
@@ -200,7 +197,7 @@ jobs:
200197 run : cargo install cargo-fuzz
201198
202199 - run : |
203- # cargo fuzz defaults to musl targets, which is seeming incomatible with sanitizers according to CI failures
200+ # cargo fuzz defaults to musl targets, which is seemingly incompatible with sanitizers according to CI failures
204201 RUST_TARGET=$(rustc -Vv | grep host | cut -d ' ' -f 2)
205202 cargo fuzz run --target=$RUST_TARGET --fuzz-dir crates/fuzz compare_skip --release -- -max_total_time=300s
206203
@@ -209,11 +206,13 @@ jobs:
209206 steps :
210207 - uses : actions/checkout@v5
211208
212- - name : set up python
213- uses : actions/setup-python@v6
209+ - uses : astral-sh/setup-uv@v8.0.0
214210 with :
215211 python-version : " 3.13"
216212
213+ - name : Install dependencies
214+ run : uv sync --all-packages --group linting
215+
217216 - uses : dtolnay/rust-toolchain@stable
218217 with :
219218 components : rustfmt,clippy
@@ -380,12 +379,11 @@ jobs:
380379 steps :
381380 - uses : actions/checkout@v5
382381
383- - id : setup- python
384- name : set up python
385- uses : actions /setup-python@v6
382+ - name : set up python
383+ id : setup- python
384+ uses : astral-sh /setup-uv@v8.0.0
386385 with :
387386 python-version : ${{ matrix.interpreter }}
388- allow-prereleases : true
389387
390388 - name : install rust stable
391389 id : rust-toolchain
@@ -413,11 +411,11 @@ jobs:
413411 steps :
414412 - uses : actions/checkout@v5
415413
416- - id : setup- python
417- name : set up python
418- uses : actions /setup-python@v6
414+ - name : set up python
415+ id : setup- python
416+ uses : astral-sh /setup-uv@v8.0.0
419417 with :
420- python-version : 3.12
418+ python-version : ' 3.12'
421419
422420 - name : install rust nightly
423421 uses : dtolnay/rust-toolchain@master
@@ -439,10 +437,10 @@ jobs:
439437 actions-cache-folder : emsdk-cache
440438
441439 - name : install deps
442- run : pip install --upgrade pip maturin
440+ run : uv sync --group dev --all-packages
443441
444442 - name : build wheels
445- run : maturin build --release --target wasm32-unknown-emscripten --out dist -i 3.12
443+ run : uv run maturin build --release --target wasm32-unknown-emscripten --out dist -i 3.12
446444 working-directory : crates/jiter-python
447445
448446 - uses : actions/setup-node@v4
@@ -529,24 +527,25 @@ jobs:
529527 install : |
530528 set -x
531529 if command -v apt-get &> /dev/null; then
532- echo "installing python & pip with apt-get..."
530+ echo "installing python, pip and curl with apt-get..."
533531 apt-get update
534- apt-get install -y --no-install-recommends python3 python3-pip python3-venv git
532+ apt-get install -y --no-install-recommends python3 python3-pip python3-venv git curl
535533 else
536- echo "installing python & pip with apk..."
534+ echo "installing python, pip and curl with apk..."
537535 apk update
538- apk add python3 py3-pip git
536+ apk add python3 py3-pip git curl
539537 fi
538+ env : |
539+ UV_NO_PROGRESS: '1'
540540 run : |
541- cd crates/jiter-python
542541 set -x
543- # typing-extensions isn't automatically installed because of `--no-index --no-deps`
544- python3 -m venv venv
545- source venv/bin/activate
546- python3 -m pip install --upgrade pip -r tests/requirements.txt
547- python3 -m pip install jiter --no-index --no-deps --find-links dist --force-reinstall
548- python3 -m pytest
549- python3 -c 'import jiter; print(jiter.__version__)'
542+ curl -LsSf https://astral.sh/uv/install.sh | sh
543+ source $HOME/.local/bin/env # So that uv can be found once installed
544+ uv sync --group dev --no-install-package jiter
545+ cd crates/jiter-python
546+ uv pip install jiter --no-index --no-deps --find-links dist --force-reinstall
547+ uv run --no-sync pytest
548+ uv run --no-sync python -c 'import jiter; print(jiter.__version__)'
550549
551550 test-builds-os :
552551 name : test build on ${{ matrix.os }}
@@ -562,7 +561,8 @@ jobs:
562561 - uses : actions/checkout@v5
563562
564563 - name : set up python
565- uses : actions/setup-python@v6
564+ id : setup-python
565+ uses : astral-sh/setup-uv@v8.0.0
566566 with :
567567 python-version : " 3.13"
568568
@@ -575,11 +575,11 @@ jobs:
575575
576576 - name : run tests
577577 run : |
578- python3 -m pip install --upgrade pip -r tests/requirements.txt
579- python3 -m pip install jiter --no-index --no-deps --find-links dist --force-reinstall
580- python3 -m pytest
581- python3 -c 'import jiter; print(jiter.__version__)'
582- working-directory : crates/ jiter-python
578+ uv sync --group dev --no-install-package jiter
579+ cd crates/ jiter-python
580+ uv pip install jiter --no-index --no-deps --find-links dist --force-reinstall
581+ uv run pytest
582+ uv run python -c 'import jiter; print(jiter.__version__)'
583583
584584 # https://github.com/marketplace/actions/alls-green#why used for branch protection checks
585585 check :
0 commit comments