Skip to content

Commit 79146a3

Browse files
Migrate to pyenv (#1995)
Co-authored-by: Julián González Calderón <[email protected]>
1 parent d78fcfa commit 79146a3

15 files changed

+163
-182
lines changed

.github/workflows/bench.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,15 @@ 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: Install python deps
27+
run: |
28+
make python-deps
29+
. cairo-vm-env/bin/activate
30+
echo PATH=$PATH >> $GITHUB_ENV
2831
- name: Run benchmark
2932
run: make benchmark-action
3033
- name: Store benchmark result

.github/workflows/fresh_run.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,21 @@ 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'
4850
run: softwareupdate --install-rosetta --agree-to-license
4951

5052
- name: Run make deps${{ matrix.deps_suffix }}
5153
id: deps
52-
run: make deps${{ matrix.deps_suffix }}
54+
run: |
55+
make deps${{ matrix.deps_suffix }}
56+
. cairo-vm-env/bin/activate
57+
echo PATH=$PATH >> $GITHUB_ENV
5358
5459
- name: Run make build
5560
id: build

.github/workflows/hyper_threading_benchmarks.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@ jobs:
1717
- name: Checkout PR
1818
uses: actions/checkout@v4
1919

20-
- name: Setup Python
21-
uses: actions/setup-python@v4
20+
- name: Install uv
21+
uses: astral-sh/setup-uv@v5
2222
with:
23-
python-version: '3.9'
23+
enable-cache: true
2424

2525
- name: Install Dependencies
2626
run: |
27-
pip install -r requirements.txt
2827
sudo apt update
2928
sudo apt-get install -y hyperfine
3029
@@ -74,6 +73,14 @@ jobs:
7473
name: hyper_threading_workflow_script
7574
path: ${{ github.workspace }}/
7675

76+
- name: Install python deps
77+
run: |
78+
uv python install 3.9.15
79+
uv venv --python 3.9.15 cairo-vm-env
80+
. cairo-vm-env/bin/activate
81+
uv pip install -r requirements.txt
82+
echo PATH=$PATH >> $GITHUB_ENV
83+
7784
- name: Compile programs
7885
run: make cairo_bench_programs
7986

.github/workflows/hyperfine.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,19 @@ 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
40+
uses: astral-sh/setup-uv@v5
4141
with:
42-
python-version: '3.9'
43-
44-
- name: Install Cairo compiler
42+
enable-cache: true
43+
- name: Install python deps
4544
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
46-
run: pip install -r requirements.txt
45+
run: |
46+
uv python install 3.9.15
47+
uv venv --python 3.9.15 cairo-vm-env
48+
. cairo-vm-env/bin/activate
49+
uv pip install -r requirements.txt
50+
echo PATH=$PATH >> $GITHUB_ENV
4751
4852
- name: Build programs
4953
if: ${{ steps.cache.outputs.cache-hit != 'true' }}

.github/workflows/iai_main.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,17 @@ 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: Install python deps
22+
run: |
23+
make python-deps
24+
. cairo-vm-env/bin/activate
25+
echo PATH=$PATH >> $GITHUB_ENV
2126
- name: Install test dependencies
2227
run: |
23-
pip install -r requirements.txt
2428
sudo apt update
2529
sudo apt install -y valgrind
2630
cargo install --version 0.3.1 iai-callgrind-runner

.github/workflows/iai_pr.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,24 @@ 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+
31+
- name: Install uv
3132
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
32-
uses: actions/setup-python@v4
33+
uses: astral-sh/setup-uv@v5
3334
with:
34-
python-version: '3.9'
35+
enable-cache: true
36+
- name: Install python deps
37+
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
38+
run: |
39+
uv python install 3.9.15
40+
uv venv --python 3.9.15 cairo-vm-env
41+
. cairo-vm-env/bin/activate
42+
uv pip install -r requirements.txt
43+
echo PATH=$PATH >> $GITHUB_ENV
44+
3545
- name: Install test dependencies
3646
if: ${{ steps.cache-iai-results.outputs.cache-hit != 'true' }}
3747
run: |
38-
pip install -r requirements.txt
3948
sudo apt update
4049
sudo apt install -y valgrind
4150
cargo install --version 0.3.1 iai-callgrind-runner
@@ -54,13 +63,19 @@ jobs:
5463
uses: dtolnay/[email protected]
5564
- name: Set up cargo cache
5665
uses: Swatinem/rust-cache@v2
57-
- name: Python3 Build
58-
uses: actions/setup-python@v4
66+
- name: Install uv
67+
uses: astral-sh/setup-uv@v5
5968
with:
60-
python-version: '3.9'
69+
enable-cache: true
70+
- name: Install python deps
71+
run: |
72+
uv python install 3.9.15
73+
uv venv --python 3.9.15 cairo-vm-env
74+
. cairo-vm-env/bin/activate
75+
uv pip install -r requirements.txt
76+
echo PATH=$PATH >> $GITHUB_ENV
6177
- name: Install test dependencies
6278
run: |
63-
pip install -r requirements.txt
6479
sudo apt update
6580
sudo apt install -y valgrind
6681
cargo install --version 0.3.1 iai-callgrind-runner

.github/workflows/rust.yml

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -73,21 +73,21 @@ jobs:
7373
- name: Restore timestamps
7474
uses: chetan/git-restore-mtime-action@v1
7575

76-
- name: Python3 Build
76+
- name: Install uv
7777
if: steps.cache-programs.outputs.cache-hit != 'true'
7878
&& matrix.program-target != 'cairo_1_test_contracts'
7979
&& matrix.program-target != 'cairo_2_test_contracts'
80-
uses: actions/setup-python@v4
80+
uses: astral-sh/setup-uv@v5
8181
with:
82-
python-version: '3.9'
83-
cache: 'pip'
84-
85-
- name: Install cairo-lang and deps
86-
if: |
87-
steps.cache-programs.outputs.cache-hit != 'true'
82+
enable-cache: true
83+
- name: Install python deps
84+
if: steps.cache-programs.outputs.cache-hit != 'true'
8885
&& matrix.program-target != 'cairo_1_test_contracts'
8986
&& matrix.program-target != 'cairo_2_test_contracts'
90-
run: pip install -r requirements.txt
87+
run: |
88+
make python-deps
89+
. cairo-vm-env/bin/activate
90+
echo PATH=$PATH >> $GITHUB_ENV
9191
9292
- name: Install cairo 1 compiler
9393
if: steps.cache-programs.outputs.cache-hit != 'true' && matrix.program-target == 'cairo_1_test_contracts'
@@ -443,16 +443,17 @@ jobs:
443443
cairo_programs/**/*.pie.zip
444444
key: ${{ matrix.program-target }}-reference-trace-cache-${{ hashFiles('cairo_programs/**/*.cairo', 'examples/wasm-demo/src/array_sum.cairo', 'Makefile', 'requirements.txt') }}
445445

446-
- name: Python3 Build
446+
- name: Install uv
447447
if: steps.trace-cache.outputs.cache-hit != 'true'
448-
uses: actions/setup-python@v4
448+
uses: astral-sh/setup-uv@v5
449449
with:
450-
python-version: '3.9'
451-
cache: 'pip'
452-
453-
- name: Install cairo-lang and deps
450+
enable-cache: true
451+
- name: Install python deps
454452
if: steps.trace-cache.outputs.cache-hit != 'true'
455-
run: pip install -r requirements.txt
453+
run: |
454+
make python-deps
455+
. cairo-vm-env/bin/activate
456+
echo PATH=$PATH >> $GITHUB_ENV
456457
457458
- name: Fetch programs
458459
if: steps.trace-cache.outputs.cache-hit != 'true'
@@ -805,15 +806,18 @@ jobs:
805806
with:
806807
fetch-depth: 0
807808

808-
- name: Python3 Build
809-
uses: actions/setup-python@v4
809+
- name: Install uv
810+
uses: astral-sh/setup-uv@v5
810811
with:
811-
python-version: '3.9'
812-
cache: 'pip'
812+
enable-cache: true
813+
- name: Install python deps
814+
run: |
815+
make python-deps
816+
. cairo-vm-env/bin/activate
817+
echo PATH=$PATH >> $GITHUB_ENV
813818
814-
- name: Install cairo-lang and deps
819+
- name: Install wasm-pack dep
815820
run: |
816-
pip install -r requirements.txt
817821
npm install -g wasm-pack
818822
819823
- name: Build wasm-demo
@@ -830,14 +834,15 @@ jobs:
830834
- name: Checkout
831835
uses: actions/checkout@v4
832836

833-
- name: Python3 Build
834-
uses: actions/setup-python@v4
837+
- name: Install uv
838+
uses: astral-sh/setup-uv@v5
835839
with:
836-
python-version: '3.9'
837-
cache: 'pip'
838-
839-
- name: Install cairo-lang and deps
840-
run: pip install -r requirements.txt
840+
enable-cache: true
841+
- name: Install python deps
842+
run: |
843+
make python-deps
844+
. cairo-vm-env/bin/activate
845+
echo PATH=$PATH >> $GITHUB_ENV
841846
842847
- name: Fetch release binary
843848
uses: actions/cache/restore@v3
@@ -869,14 +874,15 @@ jobs:
869874
- name: Checkout
870875
uses: actions/checkout@v4
871876

872-
- name: Python3 Build
873-
uses: actions/setup-python@v4
877+
- name: Install uv
878+
uses: astral-sh/setup-uv@v5
874879
with:
875-
python-version: '3.9'
876-
cache: 'pip'
877-
878-
- name: Install cairo-lang and deps
879-
run: pip install -r requirements.txt
880+
enable-cache: true
881+
- name: Install python deps
882+
run: |
883+
make python-deps
884+
. cairo-vm-env/bin/activate
885+
echo PATH=$PATH >> $GITHUB_ENV
880886
881887
- name: Fetch release binary
882888
uses: actions/cache/restore@v3
@@ -920,14 +926,15 @@ jobs:
920926
- name: Checkout
921927
uses: actions/checkout@v4
922928

923-
- name: Python3 Build
924-
uses: actions/setup-python@v4
929+
- name: Install uv
930+
uses: astral-sh/setup-uv@v5
925931
with:
926-
python-version: '3.9'
927-
cache: 'pip'
928-
929-
- name: Install cairo-lang and deps
930-
run: pip install -r requirements.txt
932+
enable-cache: true
933+
- name: Install python deps
934+
run: |
935+
make python-deps
936+
. cairo-vm-env/bin/activate
937+
echo PATH=$PATH >> $GITHUB_ENV
931938
932939
- name: Fetch release binary
933940
uses: actions/cache/restore@v3

.github/workflows/test_install.yml

Lines changed: 6 additions & 19 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
@@ -60,22 +59,10 @@ jobs:
6059
key: ${{ runner.os }}-install-${{ github.sha }}
6160
restore-keys: ${{ runner.os }}-install-
6261

63-
- name: Enable pip cache
64-
run: |
65-
mkdir -p ~/.cache/pip
66-
chown -v -R $USER ~/.cache
67-
chmod -v -R 770 ~/.cache
68-
ls -al ~/
69-
ls -al ~/.cache
70-
71-
# NOTE: we don't use install-python because lsb_release isn't installed
72-
- name: Cache Python dependencies
73-
uses: actions/cache@v4
62+
- name: Install uv
63+
uses: astral-sh/setup-uv@v5
7464
with:
75-
path: |
76-
~/.cache/pip/wheels
77-
key: ${{ runner.os }}-python-install-${{ github.sha }}
78-
restore-keys: ${{ runner.os }}-python-install-
65+
enable-cache: true
7966

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

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
#### Upcoming Changes
44

5+
* chore: Migrate from `pyenv` to `uv` [#1995](https://github.com/lambdaclass/cairo-vm/pull/1995)
6+
57
* chore: remove unused dependencies [#2111](https://github.com/lambdaclass/cairo-vm/pull/2111)
68

79
* chore: update Rust required version to 1.87.0 [#2100](https://github.com/lambdaclass/cairo-vm/pull/2100)

0 commit comments

Comments
 (0)