Skip to content

Commit ba85571

Browse files
committed
Migrate from pyenv to uv
1 parent 5c56712 commit ba85571

17 files changed

+138
-142
lines changed

.github/workflows/bench.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ jobs:
1919
with:
2020
components: rustfmt, clippy
2121
- uses: actions/checkout@v4
22-
- name: Python3 Build
23-
uses: actions/setup-python@v4
22+
- name: Install uv
23+
uses: astral-sh/setup-uv@v5
2424
with:
25-
python-version: '3.9'
26-
- name: Install test dependencies
27-
run: pip install -r requirements.txt
25+
enable-cache: true
26+
- name: Set python env
27+
run: uv python install 3.9.15 && uv python pin 3.9.15
28+
- name: Install python dependencies
29+
run: uv pip install -r requirements.txt
2830
- name: Run benchmark
2931
run: make benchmark-action
3032
- name: Store benchmark result

.github/workflows/cairo_1_programs.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ jobs:
1717
uses: Swatinem/rust-cache@v2
1818
- name: Checkout
1919
uses: actions/checkout@v4
20+
- name: Install uv
21+
uses: astral-sh/setup-uv@v5
22+
with:
23+
enable-cache: true
2024
- name: install corelib
2125
run: cd cairo1-run/ && make deps
2226
- name: Run tests

.github/workflows/fresh_run.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@ jobs:
4040
- name: Install Rust
4141
uses: dtolnay/[email protected]
4242

43-
- name: Install Pyenv
44-
uses: "gabrielfalcao/pyenv-action@v13"
43+
- name: Install uv
44+
uses: astral-sh/setup-uv@v5
45+
with:
46+
enable-cache: true
4547

4648
- name: Install Rosetta
4749
if: matrix.os_name == 'macos'

.github/workflows/hyper_threading_benchmarks.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,17 @@ jobs:
1414
with:
1515
ref: ${{ github.head_ref }}
1616

17-
- name: Setup Python
18-
uses: actions/setup-python@v4
17+
- name: Install uv
18+
uses: astral-sh/setup-uv@v5
1919
with:
20-
python-version: '3.9'
20+
enable-cache: true
21+
- name: Set python env
22+
run: uv python install 3.9.15 && uv python pin 3.9.15
23+
- name: Install python dependencies
24+
run: uv pip install -r requirements.txt
2125

2226
- name: Install Dependencies
2327
run: |
24-
pip install -r requirements.txt
2528
sudo apt update
2629
sudo apt-get install -y hyperfine
2730

.github/workflows/hyperfine.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ jobs:
3535
key: benchmarks-${{ matrix.branch }}-${{ hashFiles( 'cairo_programs/benchmarks/*.cairo' ) }}
3636
restore-keys: benchmarks-${{ matrix.branch }}-
3737

38-
- name: Install Python
38+
- name: Install uv
3939
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
40-
uses: actions/setup-python@v4
41-
with:
42-
python-version: '3.9'
43-
44-
- name: Install Cairo compiler
40+
uses: astral-sh/setup-uv@v5
41+
- name: Set python env
42+
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
43+
run: uv python install 3.9.15 && uv python pin 3.9.15
44+
- name: Install python dependencies
4545
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
46-
run: pip install -r requirements.txt
46+
run: uv pip install -r requirements.txt
4747

4848
- name: Build programs
4949
if: ${{ steps.cache.outputs.cache-hit != 'true' }}

.github/workflows/iai_main.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@ jobs:
1414
uses: dtolnay/[email protected]
1515
- name: Set up cargo cache
1616
uses: Swatinem/rust-cache@v2
17-
- name: Python3 Build
18-
uses: actions/setup-python@v4
17+
- name: Install uv
18+
uses: astral-sh/setup-uv@v5
1919
with:
20-
python-version: '3.9'
20+
enable-cache: true
21+
- name: Set python env
22+
run: uv python install 3.9.15 && uv python pin 3.9.15
23+
- name: Install python dependencies
24+
run: uv pip install -r requirements.txt
2125
- name: Install test dependencies
2226
run: |
23-
pip install -r requirements.txt
2427
sudo apt update
2528
sudo apt install -y valgrind
2629
cargo install --version 0.3.1 iai-callgrind-runner

.github/workflows/iai_pr.yml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,20 @@ jobs:
2727
- name: Set up cargo cache
2828
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
2929
uses: Swatinem/rust-cache@v2
30-
- name: Python3 Build
30+
- name: Install uv
3131
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
32-
uses: actions/setup-python@v4
32+
uses: astral-sh/setup-uv@v5
3333
with:
34-
python-version: '3.9'
34+
enable-cache: true
35+
- name: Set python env
36+
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
37+
run: uv python install 3.9.15 && uv python pin 3.9.15
38+
- name: Install python dependencies
39+
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
40+
run: uv pip install -r requirements.txt
3541
- name: Install test dependencies
3642
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
3743
run: |
38-
pip install -r requirements.txt
3944
sudo apt update
4045
sudo apt install -y valgrind
4146
cargo install --version 0.3.1 iai-callgrind-runner
@@ -54,13 +59,16 @@ jobs:
5459
uses: dtolnay/[email protected]
5560
- name: Set up cargo cache
5661
uses: Swatinem/rust-cache@v2
57-
- name: Python3 Build
58-
uses: actions/setup-python@v4
62+
- name: Install uv
63+
uses: astral-sh/setup-uv@v5
5964
with:
60-
python-version: '3.9'
65+
enable-cache: true
66+
- name: Set python env
67+
run: uv python install 3.9.15 && uv python pin 3.9.15
68+
- name: Install python dependencies
69+
run: uv pip install -r requirements.txt
6170
- name: Install test dependencies
6271
run: |
63-
pip install -r requirements.txt
6472
sudo apt update
6573
sudo apt install -y valgrind
6674
cargo install --version 0.3.1 iai-callgrind-runner

.github/workflows/rust.yml

Lines changed: 47 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -75,21 +75,23 @@ jobs:
7575
- name: Restore timestamps
7676
uses: chetan/git-restore-mtime-action@v1
7777

78-
- name: Python3 Build
78+
- name: Install uv
7979
if: steps.cache-programs.outputs.cache-hit != 'true'
8080
&& matrix.program-target != 'cairo_1_test_contracts'
8181
&& matrix.program-target != 'cairo_2_test_contracts'
82-
uses: actions/setup-python@v4
82+
uses: astral-sh/setup-uv@v5
8383
with:
84-
python-version: '3.9'
85-
cache: 'pip'
86-
87-
- name: Install cairo-lang and deps
88-
if: |
89-
steps.cache-programs.outputs.cache-hit != 'true'
84+
enable-cache: true
85+
- name: Set python env
86+
if: steps.cache-programs.outputs.cache-hit != 'true'
87+
&& matrix.program-target != 'cairo_1_test_contracts'
88+
&& matrix.program-target != 'cairo_2_test_contracts'
89+
run: uv python install 3.9.15 && uv python pin 3.9.15
90+
- name: Install python dependencies
91+
if: steps.cache-programs.outputs.cache-hit != 'true'
9092
&& matrix.program-target != 'cairo_1_test_contracts'
9193
&& matrix.program-target != 'cairo_2_test_contracts'
92-
run: pip install -r requirements.txt
94+
run: uv pip install -r requirements.txt
9395

9496
- name: Install cairo 1 compiler
9597
if: steps.cache-programs.outputs.cache-hit != 'true' && matrix.program-target == 'cairo_1_test_contracts'
@@ -452,16 +454,17 @@ jobs:
452454
key: ${{ matrix.program-target }}-reference-trace-cache-${{ hashFiles('cairo_programs/**/*.cairo', 'examples/wasm-demo/src/array_sum.cairo') }}
453455
restore-keys: ${{ matrix.program-target }}-reference-trace-cache-
454456

455-
- name: Python3 Build
457+
- name: Install uv
456458
if: steps.trace-cache.outputs.cache-hit != 'true'
457-
uses: actions/setup-python@v4
459+
uses: astral-sh/setup-uv@v5
458460
with:
459-
python-version: '3.9'
460-
cache: 'pip'
461-
462-
- name: Install cairo-lang and deps
461+
enable-cache: true
462+
- name: Set python env
463463
if: steps.trace-cache.outputs.cache-hit != 'true'
464-
run: pip install -r requirements.txt
464+
run: uv python install 3.9.15 && uv python pin 3.9.15
465+
- name: Install python dependencies
466+
if: steps.trace-cache.outputs.cache-hit != 'true'
467+
run: uv pip install -r requirements.txt
465468

466469
- name: Fetch programs
467470
if: steps.trace-cache.outputs.cache-hit != 'true'
@@ -711,15 +714,17 @@ jobs:
711714
with:
712715
fetch-depth: 0
713716

714-
- name: Python3 Build
715-
uses: actions/setup-python@v4
717+
- name: Install uv
718+
uses: astral-sh/setup-uv@v5
716719
with:
717-
python-version: '3.9'
718-
cache: 'pip'
720+
enable-cache: true
721+
- name: Set python env
722+
run: uv python install 3.9.15 && uv python pin 3.9.15
723+
- name: Install python dependencies
724+
run: uv pip install -r requirements.txt
719725

720726
- name: Install cairo-lang and deps
721727
run: |
722-
pip install -r requirements.txt
723728
npm install -g wasm-pack
724729
725730
- name: Build wasm-demo
@@ -736,14 +741,14 @@ jobs:
736741
- name: Checkout
737742
uses: actions/checkout@v4
738743

739-
- name: Python3 Build
740-
uses: actions/setup-python@v4
744+
- name: Install uv
745+
uses: astral-sh/setup-uv@v5
741746
with:
742-
python-version: '3.9'
743-
cache: 'pip'
744-
745-
- name: Install cairo-lang and deps
746-
run: pip install -r requirements.txt
747+
enable-cache: true
748+
- name: Set python env
749+
run: uv python install 3.9.15 && uv python pin 3.9.15
750+
- name: Install python dependencies
751+
run: uv pip install -r requirements.txt
747752

748753
- name: Fetch release binary
749754
uses: actions/cache/restore@v3
@@ -775,14 +780,14 @@ jobs:
775780
- name: Checkout
776781
uses: actions/checkout@v4
777782

778-
- name: Python3 Build
779-
uses: actions/setup-python@v4
783+
- name: Install uv
784+
uses: astral-sh/setup-uv@v5
780785
with:
781-
python-version: '3.9'
782-
cache: 'pip'
783-
784-
- name: Install cairo-lang and deps
785-
run: pip install -r requirements.txt
786+
enable-cache: true
787+
- name: Set python env
788+
run: uv python install 3.9.15 && uv python pin 3.9.15
789+
- name: Install python dependencies
790+
run: uv pip install -r requirements.txt
786791

787792
- name: Fetch release binary
788793
uses: actions/cache/restore@v3
@@ -826,14 +831,14 @@ jobs:
826831
- name: Checkout
827832
uses: actions/checkout@v4
828833

829-
- name: Python3 Build
830-
uses: actions/setup-python@v4
834+
- name: Install uv
835+
uses: astral-sh/setup-uv@v5
831836
with:
832-
python-version: '3.9'
833-
cache: 'pip'
834-
835-
- name: Install cairo-lang and deps
836-
run: pip install -r requirements.txt
837+
enable-cache: true
838+
- name: Set python env
839+
run: uv python install 3.9.15 && uv python pin 3.9.15
840+
- name: Install python dependencies
841+
run: uv pip install -r requirements.txt
837842

838843
- name: Fetch release binary
839844
uses: actions/cache/restore@v3

.github/workflows/test_install.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ jobs:
2525
cache-directories: ./cairo/target/
2626

2727
# just to cache dependencies
28-
- name: Install python
29-
uses: actions/setup-python@v4
28+
- name: Install uv
29+
uses: astral-sh/setup-uv@v5
3030
with:
31-
python-version: '3.9'
32-
cache: 'pip'
31+
enable-cache: true
3332

3433
# NOTE: we do it in one step because GitHub cleans the PATH between steps
3534
- name: Install dependencies and compile project

Makefile

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -214,34 +214,26 @@ build-cairo-2-compiler:
214214
cargo-deps:
215215
cargo install --version 0.3.1 iai-callgrind-runner
216216
cargo install --version 1.1.0 cargo-criterion
217-
cargo install --version 0.6.1 flamegraph --locked
217+
cargo install --version 0.6.7 flamegraph --locked
218218
cargo install --version 1.19.0 hyperfine
219-
cargo install --version 0.9.49 cargo-nextest --locked
220-
cargo install --version 0.5.9 cargo-llvm-cov
221-
cargo install --version 0.12.1 wasm-pack --locked
219+
cargo install --version 0.9.92 cargo-nextest --locked
220+
cargo install --version 0.6.16 cargo-llvm-cov
221+
cargo install --version 0.13.1 wasm-pack --locked
222222

223223
cairo1-run-deps:
224224
cd cairo1-run; make deps
225225

226226
deps: create-proof-programs-symlinks cargo-deps build-cairo-1-compiler build-cairo-2-compiler cairo1-run-deps
227-
pyenv install -s pypy3.9-7.3.9
228-
PYENV_VERSION=pypy3.9-7.3.9 python -m venv cairo-vm-pypy-env
229-
. cairo-vm-pypy-env/bin/activate ; \
230-
pip install -r requirements.txt ; \
231-
pyenv install -s 3.9.15
232-
PYENV_VERSION=3.9.15 python -m venv cairo-vm-env
227+
uv python install 3.9.15 ; \
228+
uv venv --python 3.9.15 cairo-vm-env
233229
. cairo-vm-env/bin/activate ; \
234-
pip install -r requirements.txt ; \
230+
uv pip install -r requirements.txt ; \
235231

236232
deps-macos: create-proof-programs-symlinks cargo-deps build-cairo-1-compiler-macos build-cairo-2-compiler-macos cairo1-run-deps
237-
arch -x86_64 pyenv install -s pypy3.9-7.3.9
238-
PYENV_VERSION=pypy3.9-7.3.9 python -m venv cairo-vm-pypy-env
239-
. cairo-vm-pypy-env/bin/activate ; \
240-
CFLAGS=-I/opt/homebrew/opt/gmp/include LDFLAGS=-L/opt/homebrew/opt/gmp/lib pip install -r requirements.txt ; \
241-
pyenv install -s 3.9.15
242-
PYENV_VERSION=3.9.15 python -m venv cairo-vm-env
233+
uv python install 3.9.15 ; \
234+
uv venv --python 3.9.15 cairo-vm-env ; \
243235
. cairo-vm-env/bin/activate ; \
244-
CFLAGS=-I/opt/homebrew/opt/gmp/include LDFLAGS=-L/opt/homebrew/opt/gmp/lib pip install -r requirements.txt ; \
236+
CFLAGS=-I/opt/homebrew/opt/gmp/include LDFLAGS=-L/opt/homebrew/opt/gmp/lib uv pip install -r requirements.txt ; \
245237

246238
$(RELBIN):
247239
cargo build --release

0 commit comments

Comments
 (0)