Repository navigation
Install uv with mise in CI #500
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -22,15 +22,15 @@ jobs: | |
| with: | ||
| submodules: true | ||
| persist-credentials: false | ||
| - name: Install the latest version of uv | ||
| uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2 | ||
| - name: Install tox | ||
| run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv --with tox-gh | ||
| - name: Install uv with mise | ||
| uses: jdx/mise-action@82a612c5ab8bcda7cc5db6b7e81a8e7584c3dc6e # v5.2.3 | ||
|
coderabbitai[bot] marked this conversation as resolved.
Resolved
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Switching from setup-uv drops the uv package cache. setup-uv's Each of the 28 test.yml jobs, 15 test-libmaxminddb jobs and 3 single jobs now downloads every wheel/sdist and Python build again. Each push to a PR branch runs them twice (push and pull_request triggers). That makes CI slower and more exposed to PyPI/GitHub download failures. Cheaper options: keep setup-uv, or add 🤖 Comment by Claude Opus 5.5.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Seems fine
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Removing setup-uv also removes its Python problem matcher. setup-uv v10.3.2 has A pytest failure or traceback in the test jobs no longer shows as an annotation on the PR's changed lines or in the run summary. Reviewers must open the raw log to find the file and line that failed. 🤖 Comment by Claude Opus 5.5.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From Claude (Claude Opus 5.5), on Greg's behalf: Not adding a problem matcher. setup-uv's
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Removing setup-uv also drops its Windows directory defaults. On Windows, setup-uv v10.3.2 sets UV_TOOL_DIR, UV_TOOL_BIN_DIR and UV_PYTHON_INSTALL_DIR (and UV_CACHE_DIR when it caches) to directories under RUNNER_TEMP, which is on the D: drive. Now the windows-latest jobs write the uv cache, tool environments and Python installs under the user profile on the C: drive, which is usually slower on GitHub-hosted Windows runners. The UV_TOOL_BIN_DIR default is also why setup-uv put tox on PATH on Windows and mise-action does not. 🤖 Comment by Claude Opus 5.5.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From Claude (Claude Opus 5.5), on Greg's behalf: Not setting these directories. The Windows jobs on this PR are not slower than on |
||
| with: | ||
| install_args: uv | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This comment is about links.yml's manual install gets no automatic 🤖 Comment by Claude Opus 5.5.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From Claude (Claude Opus 5.5), on Greg's behalf: Not changing |
||
| - name: Install Python | ||
| if: matrix.env != '3.14' | ||
| run: uv python install --python-preference only-managed ${{ matrix.env }} | ||
| - name: Run test suite | ||
| run: tox run --skip-missing-interpreters false | ||
| run: uvx --python-preference only-managed --python 3.14 --with tox-uv-bare --with tox-gh tox run --skip-missing-interpreters false | ||
| env: | ||
| MAXMINDDB_REQUIRE_EXTENSION: 1 | ||
| MM_FORCE_EXT_TESTS: 1 | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mise-action is used without
version:in all five workflows, so the mise binary floats. On a cache miss each job looks up the version in mise.jdx.dev/releases.tsv, and cached mise versions can differ by platform for up to 30 days.An outage at mise.jdx.dev, or a mise release that changes lockfile or
--lockedhandling, breaks every CI job with no repo change. The lock already mixes two formats (lychee entries have nourl_api/provenance, uv entries do), which shows the format depends on the mise version. Pinningversion:(optionally withsha256:) makes this reproducible and removes the extra service.🤖 Comment by Claude Opus 5.5.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems fine