What changed, and why it matters
This commit only changes how the project's automated build and test pipelines install Python tools. It swaps the Poetry package manager for the `uv` tool in GitHub Actions workflow files. There is no change to the actual Krux application code, wallet logic, or anything users interact with.
No security action needed. Reviewers may optionally verify that the new `uv`/`poe` commands reproduce the previous CI behavior and that the `pyproject.toml` pre-commit configuration referenced in the commit message is consistent.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff updates .github/workflows/docs.yml and .github/workflows/tests.yml to use astral-sh/setup-uv@v4, uv python install, uv sync, and uv run instead of actions/setup-python@v5, pip, and poetry. It also aligns CI commands with the poe task runner (e.g., poe lint, poe i18n validate, poe test-simple). No source code, firmware, cryptography, or dependency versions in the project itself are modified.
Changed components
.github/workflows/docs.yml.github/workflows/tests.ymlInspect captured patch +44 / −46
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 0195873..20c039f 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -12,18 +12,16 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: recursive
- - name: Setup Python
- uses: actions/setup-python@v5
+ - name: Install uv
+ uses: astral-sh/setup-uv@v4
with:
- python-version: '3.11'
- - name: Install dependencies
- run: |
- python3 -m pip install --upgrade pip
- python3 -m pip install poetry
+ enable-cache: true
+ - name: Set up Python
+ run: uv python install 3.12
- name: Install docs dependencies
- run: poetry install --extras docs
+ run: uv sync --frozen --python 3.12 --extra docs
- name: Build docs
- run: poetry run mkdocs build
+ run: uv run --python 3.12 mkdocs build
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index d6c69e0..8d3ba91 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -52,20 +52,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - name: Setup Python
- uses: actions/setup-python@v5
with:
- python-version: ${{ matrix.py-version }}
- - name: Install dependencies
- run: |
- python3 -m pip install --upgrade pip
- python3 -m pip install pylint
+ submodules: recursive
+ - name: Install uv
+ uses: astral-sh/setup-uv@v4
+ with:
+ enable-cache: true
+ - name: Set up Python
+ run: uv python install ${{ matrix.py-version }}
+ - name: Sync dependencies
+ run: uv sync --frozen --python ${{ matrix.py-version }}
- name: Lint
- run: |
- pylint firmware/font/*.py
- pylint firmware/scripts/*.py
- pylint i18n/*.py
- pylint src
+ run: uv run --python ${{ matrix.py-version }} poe lint
check-translations:
strategy:
@@ -76,12 +74,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - name: Setup Python
- uses: actions/setup-python@v5
with:
- python-version: ${{ matrix.py-version }}
+ submodules: recursive
+ - name: Install uv
+ uses: astral-sh/setup-uv@v4
+ with:
+ enable-cache: true
+ - name: Set up Python
+ run: uv python install ${{ matrix.py-version }}
+ - name: Sync dependencies
+ run: uv sync --frozen --python ${{ matrix.py-version }}
- name: Validate translations
- run: cd i18n && python3 i18n.py validate
+ run: uv run --python ${{ matrix.py-version }} poe i18n validate
run-tests:
strategy:
@@ -94,18 +98,16 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: recursive
- - name: Setup Python
- uses: actions/setup-python@v5
+ - name: Install uv
+ uses: astral-sh/setup-uv@v4
with:
- python-version: ${{ matrix.py-version }}
- - name: Install dependencies
- run: |
- python3 -m pip install --upgrade pip
- python3 -m pip install poetry
- - name: Install project and its dependencies
- run: poetry install
+ enable-cache: true
+ - name: Set up Python
+ run: uv python install ${{ matrix.py-version }}
+ - name: Sync dependencies
+ run: uv sync --frozen --python ${{ matrix.py-version }}
- name: Run tests
- run: poetry run pytest --cache-clear tests
+ run: uv run --python ${{ matrix.py-version }} poe test-simple
coverage:
runs-on: ubuntu-latest
@@ -113,19 +115,17 @@ jobs:
- uses: actions/checkout@main
with:
submodules: recursive
- - name: Setup Python
- uses: actions/setup-python@v5
+ - name: Install uv
+ uses: astral-sh/setup-uv@v4
with:
- # no need to use many coverages
- python-version: 3.12.13
- - name: Install dependencies
- run: |
- python3 -m pip install --upgrade pip
- python3 -m pip install poetry
- - name: Install project and its dependencies
- run: poetry install
+ enable-cache: true
+ - name: Set up Python
+ # no need to use many coverages
+ run: uv python install 3.12.13
+ - name: Sync dependencies
+ run: uv sync --frozen --python 3.12.13
- name: Build coverage file
- run: poetry run pytest --cache-clear --cov src/krux --cov-report xml tests
+ run: uv run --python 3.12.13 pytest --cache-clear --cov src/krux --cov-report xml tests
- name: Upload coverage reports to Codecov with GitHub Action
uses: codecov/codecov-action@v5
with:
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.