Commit Graph

266 Commits

Author SHA1 Message Date
Zanie Blue e86c52d39c
Add note about trampoline tests on aarch64 (#8643)
Similar to https://github.com/astral-sh/uv/pull/8642, not sure why this
is incomplete.

We'll see if it works.
2024-10-28 19:53:23 +00:00
Zanie Blue 7948441121
Actually perform checks on alternate trampoline platforms (#8642)
It seems unintentional that we basically did nothing on these
alternative platforms? It seems like an artifact from some previous
change.

I'm not sure it's worth running Clippy multiple times. We could also
just reduce the matrix here.
2024-10-28 14:12:36 -05:00
Hamir Mahal dff507702b
fix: usage of `a deprecated Node.js version` in CI (#8506)
## Summary

[`ci.yml`](https://github.com/astral-sh/uv/blob/main/.github/workflows/ci.yml)
uses
[`gabrielfalcao/pyenv-action@v18`](https://github.com/gabrielfalcao/pyenv-action/),
which [uses `a deprecated Node.js
version`](https://github.com/astral-sh/uv/actions/runs/11483963555).

This pull request aims to remove any usage of `a deprecated Node.js
version` from
[`ci.yml`](https://github.com/astral-sh/uv/blob/main/.github/workflows/ci.yml).

<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan

I attempted to test this but [canceled the run on my
fork](https://github.com/hamirmahal/uv/actions/runs/11484989508/job/31964058415)
after it waited for a runner for over 10 minutes with no result.

<!-- How was it tested? -->

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-23 22:28:34 -04:00
Zanie Blue 76bcb89571
Use native Windows runner for trampoline checks (#8469)
As in https://github.com/astral-sh/uv/pull/8182 and #8468
2024-10-22 12:28:31 -05:00
Zanie Blue dc32b26afb
Replace `cargo xwin clippy` with native clippy run on Windows again (#8468)
Adds #8181 again

This failure is taking up way too much time and cache misses are feeling
frequent.
2024-10-22 11:28:19 -05:00
Zanie Blue ab16bf0a8c
Set `UV_LINK_MODE=copy` for Windows test runs (#8350)
Cherry-picked from #8347 

Might fix https://github.com/astral-sh/uv/issues/6940 — I'm not seeing a
failure over there after this change. I think there may be some problem
with concurrent reads of junctioned files on the DevDrive? It's really
hard to say.

We might lose some important test coverage with this change. I'm not
sure what to do about that either.
2024-10-20 13:37:41 -05:00
Zanie Blue d296e7270a
Run release builds for `macos-x86_64` on `macos-14` runners (#8327) 2024-10-18 11:01:52 -04:00
Zanie Blue c8cbd62a30
Patch Python executable name for Windows free-threaded builds (#8310)
A temporary fix for https://github.com/astral-sh/uv/issues/8298 while we
wait for my slower upstream fix at
https://github.com/indygreg/python-build-standalone/pull/373

I think we'll want this machinery anyway to ensure that the various
executable names are available? Otherwise we need to special-case all
the `python` names in `uv run`?

We don't have unit test coverage of managed downloads, so I added an
[integration
test](https://github.com/astral-sh/uv/actions/runs/11394150653/job/31703956805?pr=8310)
similar to what we have for Linux.
2024-10-17 18:27:55 -05:00
Zanie Blue 16b77e7fd4
Add a FreeBSD build to CI (#8269)
Playing with this because it's interesting and I learned about this cool
firecracker action.

Related #3370
2024-10-17 15:24:21 +00:00
konsti e0a2bc92cd
Reuse packages in test publish script (#8257) 2024-10-17 11:44:19 +02:00
Charlie Marsh cf7dbaa7a7
Update to `cargo-dist` v0.23.0 (#8270)
## Summary

Closes https://github.com/astral-sh/uv/issues/8242.
2024-10-16 16:25:03 -04:00
Zanie Blue b851ced09e
Fix selection of free-threaded interpreters during default Python discovery (#8239)
Closes https://github.com/astral-sh/uv/issues/8228

e.g., on this branch

```
❯ uv python install 3.13t 3.13
❯ cargo build
❯ cargo run -q --bin uvx -- --from build python -c "import sys; print(sys.base_prefix)"
/Users/zb/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none
❯ cargo run -q --bin uvx -- -p 3.13 --from build python -c "import sys; print(sys.base_prefix)"
/Users/zb/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none
❯ cargo run -q --bin uvx -- -p 3.13t --from build python -c "import sys; print(sys.base_prefix)"
/Users/zb/.local/share/uv/python/cpython-3.13.0+freethreaded-macos-aarch64-none
```

and on main

```
❯ cargo build
❯ cargo run -q --bin uvx -- --from build python -c "import sys; print(sys.base_prefix)"
Installed 3 packages in 12ms
/Users/zb/.local/share/uv/python/cpython-3.13.0+freethreaded-macos-aarch64-none
```

I want to add more test coverage around this, but I've noticed the
free-threaded discovery tests are a bit off as-is and it'll be a bigger
task. I think the recent bugs around discovery indicate we should invest
more into that test framework.
2024-10-16 14:44:32 -05:00
konsti 0c5d05d9e1
Don't run publish tests from fork (#8168)
Only the astral-sh/uv repository has the secrets.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-14 16:46:41 -04:00
Zanie Blue 5f33915e03
Add support for managed installs of free-threaded Python (#8100)
Closes https://github.com/astral-sh/uv/issues/7193

```

❯ cargo run -q -- python uninstall 3.13t
Searching for Python versions matching: Python 3.13t
Uninstalled Python 3.13.0 in 231ms
 - cpython-3.13.0+freethreaded-macos-aarch64-none
❯ cargo run -q -- python install 3.13t
Searching for Python versions matching: Python 3.13t
Installed Python 3.13.0 in 3.54s
 + cpython-3.13.0+freethreaded-macos-aarch64-none
❯ cargo run -q -- python install 3.12t
Searching for Python versions matching: Python 3.12t
error: No download found for request: cpython-3.12t-macos-aarch64-none
❯ cargo run -q -- python install 3.13rc3t
Searching for Python versions matching: Python 3.13rc3t
Found existing installation for Python 3.13rc3t: cpython-3.13.0+freethreaded-macos-aarch64-none
❯ cargo run -q -- run -p 3.13t python -c "import sys; print(sys.base_prefix)"
/Users/zb/.local/share/uv/python/cpython-3.13.0+freethreaded-macos-aarch64-none
```
2024-10-14 15:18:52 -05:00
samypr100 db0f0aec09
fix(ci): adjust xwin timeout and revert xwin jobs being disabled (#8187)
## Summary

Reverts #8181 and #8182.

The fix is in b849f0f, which extends the run timeout to allow xwin to
download the Windows SDK files, which can take 10+ minutes.

Closes https://github.com/rust-cross/cargo-xwin/issues/127

## Test Plan

Existing CI should pass.

## Notes

xwin jobs will take a long time the first time due to cache re-warming.
2024-10-14 15:14:46 -05:00
Zanie Blue cc9767ca1e
Disable `cargo xwin clippy` in trampoline job (#8182)
See https://github.com/rust-cross/cargo-xwin/issues/127
2024-10-14 18:29:57 +00:00
Zanie Blue 581fab6597
Replace `cargo xwin clippy` with native clippy run on Windows temporarily (#8181)
We can't have CI blocked by this. If this doesn't work or is
exceptionally slow, I'll remove the job entirely.
2024-10-14 13:19:33 -05:00
Zanie Blue 163c90184f
Fix mkdocs workflow (#8174)
GitHub changed these environments to "externally managed" (or something
changed with the setup-python action?)
2024-10-14 09:45:13 -05:00
Jo 6d868c076c
Use `uv publish` to publish itself (#8065) 2024-10-12 20:18:00 +02:00
samypr100 12a76690b2
ci(docker): support python 3.13 images (#8105)
## Summary

Closes https://github.com/astral-sh/uv/issues/8066#event-14593331489
2024-10-10 14:39:07 -05:00
Tim Felgentreff 5a8f0ad705
Update to GraalPy 24.1, remove workaround for 24.0 (#8095)
## Summary

Update CI config to test against GraalPy 24.1, which makes a workaround
in the CI config unnecessary.

## Test Plan

The updated CI config is tested.
2024-10-10 17:17:22 +02:00
Mathieu Kniewallner 36fedf7ac7
chore(renovate): move out of deprecated options (#8055) 2024-10-09 14:48:19 -05:00
konsti 1e6c64074d
Add codeberg integration test for uv publish (#8043) 2024-10-09 15:02:26 +02:00
sobolevn 56521937b7
Add shellcheck CI (#7888)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->

## Summary

I started learning `uv` by inspecting the source code.
I've noticed that your shell scripts are very good! Which is rare!

## Test Plan

I propose to add `shellcheck` to the CI.
It is a great tool to help finding bugs and style issues in shell code.

Techincal details:
- This CI job will only run when any `.sh` files are changed (or the job
definition file)
- It takes just several seconds even on local machine:
```
» time shellcheck -S style **/*.sh
shellcheck -S style **/*.sh  0.02s user 0.05s system 61% cpu 0.123 total
```

- It is easy to use, for example: I just fixed the single problem you
had in your code with `# shellcheck disable=SC1091`
- I am using this tool for around 8 years now and didn't have any
issues. Examples:
ca899f3b69/.github/workflows/test.yml (L22-L27)
and
https://github.com/wemake-services/wemake-django-template/blob/master/.github/workflows/shellcheck.yml

But, I understand that build / lint tools are very subjective. So, feel
free to close :)
2024-10-08 13:58:00 -05:00
Zanie Blue cd582cacab
Fix GitHub Actions integration test (#8013)
Fixes bug noted in https://github.com/astral-sh/uv/pull/8012

GitHub upgraded the 3.12 Python version so the path changed!
2024-10-08 17:53:56 +00:00
Zanie Blue 38beb2b24f
Show verbose output during integration tests (#7982) 2024-10-07 18:39:22 +00:00
Zanie Blue 0176b6f0bb
Show verbose logs during smoke test (#7984) 2024-10-07 13:28:54 -05:00
Zanie Blue 247f66249e
Ignore `UV_CACHE_DIR` during tests (#7927)
Exploring an alternative to https://github.com/astral-sh/uv/pull/7895
2024-10-04 15:12:05 +00:00
sobolevn ff1a896dd0
Ignore `UV_CACHE_DIR` in `help` tests (#7895) 2024-10-04 09:41:25 -05:00
samypr100 c708cc82fa
chore(ci): bump macos-12 intel runner to macos-13 intel runner (#7877)
## Summary

Closes https://github.com/astral-sh/uv/issues/6972

This is not breaking since `MACOSX_DEPLOYMENT_TARGET` will stay the same
(currently defaulting to 10.12) so a
`uv-x.y.z-py3-none-macosx_10_12_x86_64.whl` will still be built
2024-10-03 13:00:58 +01:00
Charlie Marsh 14507a1793
Add `uv-` prefix to all internal crates (#7853)
## Summary

Brings more consistency to the repo and ensures that all crates
automatically show up in `--verbose` logging.
2024-10-01 20:15:32 -04:00
Mathieu Kniewallner 04c79aff0a
chore(renovate): enable `regex` manager (#7820)
## Summary

Investigated
https://github.com/astral-sh/uv/pull/7807#issuecomment-2384080360, and
the reason why the PR mentioned in the comment did not work in the end
is because we only opt-in for specific managers in Renovate
configuration. By enabling
[regex](https://docs.renovatebot.com/modules/manager/regex/) manager, we
should now get proper updates to documentation references.

## Test Plan

Tested enabling specific managers (including `regex` one) in
https://github.com/mkniewallner/mkv-playground/pull/18, and Renovate was
still able to detect regex dependencies.
2024-09-30 17:28:19 -04:00
Aarni Koskela 23b010c08f
Docker: put uv and uvx in a single layer (#7697)
## Summary

Copy both `uv` and `uvx` into place in a single Dockerfile command.
[`COPY` supports multiple sources when the destination is a
directory.](https://docs.docker.com/engine/reference/builder/#copy)

As it is, e.g. `ghcr.io/astral-sh/uv:0.4.16-python3.12-bookworm-slim`
has this (screenshot from [Dive](https://github.com/wagoodman/dive)):

<img width="377" alt="Screenshot 2024-09-26 at 10 11 24"
src="https://github.com/user-attachments/assets/1ca6a0d5-95fd-4210-9a4f-0afa2300b63f">

and less layers is a Good Thing.

## Test Plan

I hope the CI pipeline will take care of testing – I couldn't get the
Docker build to finish on my machine right away (SIGKILL, so out of
memory, I guess 😄)
2024-09-26 09:19:14 -05:00
konsti f5601e2610
Clean up "performance allocators" and "performance flate2" backends (#7686)
Co-authored-by: Amos Wenger <amos@bearcove.net>
2024-09-25 15:41:40 +00:00
konsti da328379c1
Don't show deploy notification when we don't need to (#7665) 2024-09-24 19:42:13 +02:00
konsti 205bf8cabe
Implement trusted publishing (#7548)
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-09-24 16:07:20 +00:00
konsti 1995d20298
Add `uv publish`: Basic upload with username/password or keyring (#7475)
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-09-24 15:33:06 +00:00
Bas Schoenmaeckers 77c2496f47
Allow creating venv with free-threaded python builds (#7431)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->

## Summary

closes #4828

First iteration for an implementation. I need to add more tests but
wanted your opinion on the implementation first.

<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan
Currently tested using the following command but will add tests shortly:

```console
D:\repo\uv> cargo run venv -p 3.13t && .venv\Scripts\python.exe
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.52s
     Running `target\debug\uv.exe venv -p 3.13t`
Using Python 3.13.0rc1 interpreter at: C:\Users\bschoen\AppData\Local\Programs\Python\Python313\python3.13t.exe
Creating virtualenv at: .venv
Activate with: .venv\Scripts\activate
Python 3.13.0rc1 experimental free-threading build (tags/v3.13.0rc1:e4a3e78, Jul 31 2024, 21:06:58) [MSC v.1940 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
```

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-09-23 17:36:16 -05:00
Zanie Blue 47eeef5c09
Explicitly create the DevDrive tmpdir before use (#7644)
A suggested solution to #6940 — unfortunately only time will tell if it
works.
2024-09-23 12:59:22 -05:00
renovate[bot] 734a8cec81
Update astral-sh/setup-uv action to v3 (#7633) 2024-09-22 21:00:49 -04:00
Mathieu Kniewallner 2144c8bd40
chore(renovate): update GitHub Actions major versions in docs (#7584)
## Summary

Originally wanted to update the reference to `astral-sh/setup-uv` in
https://docs.astral.sh/uv/guides/integration/github/, but thought it
could be nice to automate those updates through Renovate. The custom
manager will look for any major version GitHub Action reference in any
Markdown file in `docs` directory, and raise a PR to update it.

Possible improvements:
- We could separate those updates from updating the actions updates for
uv's own GitHub Actions workflow, which would end up raising 2 different
PRs instead of grouping them (example of the current behaviour without
this improvement in
https://github.com/mkniewallner/mkv-playground/pull/4 where we update
the doc reference at the same time as a real dependency usage in a
workflow).
- ~Should the PRs be raised immediately, to handle the update as soon as
possible, instead of waiting for the regular weekly Monday schedule?
This would ensure that `astral-sh/setup-uv` references are handled as
early as possible.~ done in
6af7f45750

## Test Plan

I've tested that with
00ddfb6900/renovate.json5
and
00ddfb6900/docs/integeration/foo.md,
where Renovate raised 2 PRs:
- https://github.com/mkniewallner/mkv-playground/pull/13
- https://github.com/mkniewallner/mkv-playground/pull/4

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-09-20 14:58:40 -05:00
samypr100 b918557ae7
ci(docker): improve release tagging order and display on ghcr.io (#7568)
## Summary

Closes https://github.com/astral-sh/uv/issues/7458

This change adds a new job at the end of docker publish which adds
annotations the primary image digests in order to make ghcr.io rank
`ghcr.io/astral-sh/uv` at the top once again. The solution is to
annotate the index at the end during a re-publish to make ghcr.io
consider it a more updated entry than the others and rank it at the top
once again.

## Test Plan

Tested on release run on my own fork
* Packages: https://github.com/samypr100/uv/pkgs/container/uv will show
`ghcr.io/astral-sh/uv` first once again
* Run: https://github.com/samypr100/uv/actions/runs/10951404736
2024-09-20 14:05:51 -05:00
Zanie Blue 398f13824e
Add integration test for `UV_PROJECT_ENVIRONMENT` (#7591)
[Example](https://github.com/astral-sh/uv/actions/runs/10963662204/job/30445673572?pr=7591)

Test for #7585
2024-09-20 14:03:42 -05:00
bluss 7a25a82fc9
Move uvx shell completion to uvx --generate-shell-completion (#7511)
## Summary

Because a problem was found with Powershell and combining the generated
completion scripts for uv and uvx, let's try separating uv and uvx
command completion scripts.

The generated powershell script template can be seen in clap_complete
source, and it starts with `using` directives, which makes it impossible
(apparently) to concatenate two of those script outputs.

As a side effect, this is available under `uv tool run
--generate-shell-completion` too.

Fixes #7482

## Test Plan

- `eval "$(cargo run --bin uvx -- --generate-shell-completion bash)"`
- Test Powershell
2024-09-20 01:27:25 +00:00
Zanie Blue b8f9ee3b4d
Bump version to 0.4.13 (#7558) 2024-09-19 20:43:56 +00:00
konsti 4fdf5fc73f
Use a single lint task in CI (#7540) 2024-09-19 13:32:08 +02:00
Zanie Blue 4611412757
Allow Python pre-releases to be used if they are first on the `PATH` (#7470)
Closes https://github.com/astral-sh/uv/issues/7469
2024-09-18 10:19:10 -05:00
Charlie Marsh c87ce7aaf8
Run `cargo upgrade` (#7448)
Co-authored-by: konstin <konstin@mailbox.org>
2024-09-17 12:39:58 +02:00
Zanie Blue f22e5ef69a
Avoid selecting prerelease Python installations without opt-in (#7300)
Similar to our semantics for packages with pre-release versions.

We will not use prerelease versions unless there are only prerelease
versions available, a specific version is requested,
or the prerelease version is found in a reasonable source (active
environment, explicit path, etc. but not `PATH`).

For example, `uv python install 3.13 && uv run python --version` will no
longer use `3.13.0rc2` unless that is the only Python version available,
`--python 3.13` is used, or that's the Python version that is present in
`.venv`.
2024-09-11 15:49:33 -05:00
Zanie Blue ebd73d83f8
Allow explicitly requesting an system interpreter version in `check_system_python` (#7306)
Needed for #7300
2024-09-11 19:41:42 +00:00