Commit Graph

779 Commits

Author SHA1 Message Date
Zanie Blue 591f38c25e
Bump version to v0.6.0 (#11496)
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2025-02-14 11:55:54 -06:00
Aria Desires 9138b35c66 Create `main.py` instead of `hello.py` in `uv init` (#10369)
Initially it seemed like `app.py` might be slightly more desirable but
people seem to overwhelmingly favour `main.py` as a good "generic" name.

Fixes #7782
2025-02-13 16:17:49 -06:00
Zanie Blue 61fcdfb2e4 Allow `-p` to use complex Python version requests in `uv pip compile` (#11486)
Closes #11285
Closes https://github.com/astral-sh/uv/pull/11437

This changes `-p` from an alias of `--python-version` to `--python`
while retaining backwards compatibility for `--python-version`-like
fallback behavior when the requested version, e.g., `-p 3.12`, cannot be
found.

This was initially implemented with a hidden `--python-legacy` flag
which allows us to special case the short `-p` flag — unlike the
implementation in #11437. However, after further discussion, we decided
the behavior difference between `-p` and `--python` would be confusing
so now `-p` is an alias for `--python` and `--python` is special-cased
when a version is used.

Additionally, we now respect the `UV_PYTHON` environment variable, but
it is ignored when `--python-version` is set. If you want different
`--python-version` and `--python` values, you must do so explicitly. I
considered banning this, but it is valid for e.g. `--python pypy
--python-version 3.12`
2025-02-13 16:17:49 -06:00
Zanie Blue 4b49151c22 Respect `UV_PYTHON` in `uv python install` (#11487)
Unlike https://github.com/astral-sh/uv/pull/10222, this does not respect
`UV_PYTHON` in `uv python uninstall` (continuing to require an explicit
target there) which I think is simpler and matches our `.python-version`
file behavior.

---------

Co-authored-by: Choudhry Abdullah <cabdulla@trinity.edu>
Co-authored-by: Choudhry Abdullah <choudhry347@choudhrys-air-2.trinity.local>
Co-authored-by: Aria Desires <aria.desires@gmail.com>
2025-02-13 16:17:49 -06:00
Zanie Blue 5765e4bdee Set `UV` to the uv executable path (#11326) 2025-02-13 16:17:49 -06:00
Charlie Marsh ceb22fcfe5
Support `--active` for PEP 723 script environments (#11433)
## Summary

See: https://github.com/astral-sh/uv/pull/11361#discussion_r1948851085
2025-02-13 13:40:21 -06:00
Zanie Blue e38ac4900d
Bump version to 0.5.31 (#11459) 2025-02-12 14:45:22 -06:00
Charlie Marsh 792dc9d1c5
Add `uv sync --script` (#11361)
## Summary

The environment is located at a stable path within the cache, based on
the script's absolute path.

If a lockfile exists for the script, then we use our standard lockfile
semantics (i.e., update the lockfile if necessary, etc.); if not, we
just do a `uv pip sync` (roughly).

Example usage:

```
❯ uv init --script hello.py
Initialized script at `hello.py`

❯ uv add --script hello.py requests
Updated `hello.py`

❯ cargo run sync --script hello.py
Using script environment at: /Users/crmarsh/.cache/uv/environments-v1/hello-84e289fe3f6241a0
Resolved 5 packages in 3ms
Installed 5 packages in 12ms
 + certifi==2025.1.31
 + charset-normalizer==3.4.1
 + idna==3.10
 + requests==2.32.3
 + urllib3==2.3.0
```

Closes https://github.com/astral-sh/uv/issues/6637.
2025-02-12 16:02:16 +00:00
Lewis 0b4a349173
Update scripts docs with package indexes (#11443)
## Summary

The [current scripts docs
page](https://docs.astral.sh/uv/guides/scripts/) doesn't include detail
on how to use a custom package index when setting up a script. I believe
this might be because it didn't use to work (see #6688 ) but it now does
(thanks for that, by the way! 😄)

Given it's a useful feature, I suggest adding a quick example to the
scripts page, with the details of authentication, etc. left to the main
`indexes.md` doc.

I'd also suggests that this closes #6688, though it doesn't actually add
that feature - that appears to have already been done :)

## Test Plan

No testing is needed, I think!

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-02-12 07:52:22 -06:00
Valentin Oliver Loftsson 5e15881dcc
Update alternative-indexes.md to use `UV_INDEX` instead of `UV_EXTRA_INDEX_URL` (#11381)
<!--
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

Use `UV_INDEX` instead of the deprecated `UV_EXTRA_INDEX_URL`.

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

## Test Plan

It is a minor documentation change.
<!-- How was it tested? -->
2025-02-11 09:19:20 -05:00
Charlie Marsh ca49495e4b
Bump version to v0.5.30 (#11405) 2025-02-10 21:42:31 +00:00
Alex Lowe ac06e1318a
Add `NO_BINARY` and `NO_BINARY_PACKAGE` environment variables (#11399)
<!--
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

This adds `NO_BINARY` and `NO_BINARY_PACKAGE` environment variables to
the uv CLI, allowing the user to specify packages to build from source
using environment variables. Its not a complete fix for #4291 as it does
not handle the `pip` subcommand.

## Test Plan

This was tested by running `uv sync` with various `UV_NO_BINARY` and
`UV_NO_BINARY_PACKAGE` environment variables set and checking that the
correct set of packages were compiled rather than taken from pre-built
wheels.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-02-10 21:11:46 +00:00
konsti 768da2091b
Fix windows installation instructions mismatch (#11380)
See #7106

Fixes #11378
2025-02-10 21:42:50 +01:00
Tai 07d3e5085a
Fix broken anchors in readme and docs index (#11338)
<!--
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've just fixed some broken anchors after browing ux doc site.

## Test Plan

- `index.md`: based on `mkdocs serve` log
- `readme.md`: manual check

## Aside

Do you manually keep `readme.md` and `index.md` partially sync? I've
tried
checking pre-commit and other scripts but found no way to port my edits
from one
to the other.

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

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-02-08 15:21:08 +00:00
konsti 96ac4b72b1
Add docs for `uv tool install --editable` (#11280)
I also moved it down a bit below the more important options

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2025-02-07 22:56:54 +00:00
Zanie Blue 03616ebb68
Add note about available versions (#11331)
ref https://github.com/astral-sh/uv/issues/11243#issuecomment-2644104492
2025-02-07 16:10:05 -06:00
Aria Desires 5c4b6d436c
cleanup some dependency-group docs (#11284)
Some additional details, more mentioning of related flags, and some
minor rewordings to avoid misconceptions I had from the current docs.

Closes #11205
2025-02-07 15:40:59 +00:00
Charlie Marsh 8335a6d816
Add `uv sync --dry-run` (#11299)
## Summary

Allows users to understand how the environment will change prior to
committing.

Closes https://github.com/astral-sh/uv/issues/11282.
2025-02-06 23:52:49 +00:00
samsja 5ce48cf799
add pip install setuptools in flash-attn docs (#11271)
## Summary

I followed the docs to install flash-attn with uv and got the following
issue
```uv sync
Resolved 27 packages in 12ms
  × Failed to build `flash-attn==2.7.4.post1`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)

      [stderr]
      Traceback (most recent call last):
        File "<string>", line 8, in <module>
      ModuleNotFoundError: No module named 'setuptools'

      hint: This usually indicates a problem with the package or the build environment.
```

installing setuptools before running uv sync as done with torch helps
fix it.
## Test Plan

I tested locally before it failed to install, after it worked
2025-02-05 20:59:56 -05:00
Zanie Blue ca73c47543
Bump version to 0.5.29 (#11267) 2025-02-05 19:59:29 -05:00
Avasam b83e25a911
Update bad shell assumptions from "Shell autocompletion" page (#11202)
<!--
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

- PowerShell isn't Windows-only
- Bash/Elvish isn't UNIX-only
- PowerShell profile won't necessarily exist
- Extracted the `echo $SHELL` tip to a tip tooltip

The new PowerShell lines are taken directly from
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.5#how-to-create-a-profile

Note that the "Standalone installer" commands are unaffected. Running
the Linux one through PowerShell worked just fine.

## Test Plan

Look at the page generated from this PR
<!-- How was it tested? -->
2025-02-05 17:33:48 -06:00
Zanie Blue c64965273f
Misc. improvements to the documentation (#11255) 2025-02-05 17:22:09 -06:00
Zanie Blue 7ec68e1dda
Allow opt-in to `.python-version` in `uv init` with `--pin-python` (#11265)
For use with `--bare`
2025-02-05 17:21:58 -06:00
Zanie Blue 239f3d76b9
Allow the project `VIRTUAL_ENV` warning to be silenced with `--no-active` (#11251)
Follow-up to https://github.com/astral-sh/uv/pull/11189

Closes https://github.com/astral-sh/uv-pre-commit/issues/36
2025-02-05 19:44:46 +00:00
Zanie Blue 2105b8a89d
Minor touchups to the Docker provenance docs (#11252) 2025-02-05 17:09:15 +00:00
Zanie Blue 1f963d1b89
Move content from the `mkdocs.public.yml` into the template (#11246)
Closes https://github.com/astral-sh/uv/issues/11242
2025-02-05 16:13:46 +00:00
Zanie Blue acbbb2b82a
Add `--bare` option to `uv init` (#11192)
People are looking for a less opinionated version of `uv init`. The goal
here is to create a `pyproject.toml` and nothing else. With the `--lib`
or `--package` flags, we'll still configure a build backend but we won't
create the source tree. This disables things like the default
`description`, author behavior, and VCS.

See

- https://github.com/astral-sh/uv/issues/8178
- https://github.com/astral-sh/uv/issues/7181
- https://github.com/astral-sh/uv/issues/6750
2025-02-05 10:12:27 -06:00
Zanie Blue 989b103171
Add support for respecting `VIRTUAL_ENV` in project commands via `--active` (#11189)
I think `UV_PROJECT_ENVIRONMENT` is too complicated for use-cases where
the user wants to sync to the active environment. I don't see a
compelling reason not to make opt-in easier. I see a lot of questions
about how to deal with this warning in the issue tracker, but it seems
painful to collect them here for posterity.

A notable behavior here — we'll treat this as equivalent to
`UV_PROJECT_ENVIRONMENT` so... if you point us to a valid virtual
environment that needs to be recreated for some reason (e.g., new Python
version request), we'll happily delete it and start over.
2025-02-05 10:12:19 -06:00
Charlie Marsh fea00dcdd5
Bump version to v0.5.28 (#11228) 2025-02-04 20:28:43 -05:00
Martijn Pieters 04374b03cc
Docs on how to verify uv docker image attestations (#11140)
As [requested by
@zanieb](https://github.com/astral-sh/uv/pull/8685#issuecomment-2627556992).
2025-02-04 15:38:19 -06:00
konsti d9907f6fda
Update resolver internals docs (#11098)
Since the resolver internals docs were written, we added a lot more
features to the resolver, which should be documented.

As usual, these docs are not targeted at regular users, but should give
interested readers an insight into the internals of uv and help advanced
users with especially hard resolver problems.
2025-02-04 13:06:27 +00:00
FishAlchemist 49b85d2e65
Add ``last updated`` for document (#11164)
## Summary

![image](https://github.com/user-attachments/assets/75431f9f-debe-435d-a02e-d216be7a3a01)

![image](https://github.com/user-attachments/assets/2d1b895e-4878-410e-90ff-ff8e932cbf24)
Display the last document update time, excluding any automatically
generated parts of the document, while ensuring that Google can
accurately read and recognize the webpage's time.

Note that I do not have permission to update
``requirements-insiders.txt``


Google time info
*
https://developers.google.com/search/blog/2019/03/help-google-search-know-best-date-for
*
https://developers.google.com/search/docs/appearance/structured-data/article#amp

Similar https://github.com/astral-sh/uv/pull/11162
Closes #11148
## Test Plan
uvx --with-requirements docs/requirements.txt -- mkdocs serve -f
mkdocs.public.yml --strict

![image](https://github.com/user-attachments/assets/6e8cd609-2e60-489c-97cc-fb28aa3204e0)
The correct format is actually ``2024-08-08T22:01:08Z``, but Google
Search happens to be lenient and accepts this format.

![image](https://github.com/user-attachments/assets/2ec8ce98-49ea-403b-bbd2-3d0d5630a562)
2025-02-03 22:28:47 -05:00
Zanie Blue 73e9928d40
Bump version to 0.5.27 (#11201) 2025-02-03 16:55:36 -06:00
Gregory Power f54979f2bc
add instructions for deactivating an environment (#11200)
## Summary

Add instructions for deactivating a virtual environment.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-02-03 22:16:41 +00:00
Zanie Blue 1be8ba7df1
Add best-practice flags to `pip install` example in troubleshooting guide (#11194) 2025-02-03 20:13:55 +00:00
Charlie Marsh 2dfeafbaa4
Set `UV_PYTHON` in Jupyter kernels (#11155)
## Summary

It turns out activating the kernel does not change `VIRTUAL_ENV`, so we
still install into the environment the Jupyter environment, rather than
the project environment.

Unfortunately, after this change, we do still show a warning on `uv
add`:

```
warning: `VIRTUAL_ENV=/Users/crmarsh/.cache/uv/archive-v0/3bddKDdYXuX2w57Fu6itL` does not match the project environment path `.venv` and will be ignored
```

`uv pip install` works without warning.

Closes #11154.
2025-02-01 16:54:34 -05:00
Charlie Marsh 1fae8dbf17
Add Git SHA locking behavior to docs (#11125)
## Summary

Closes https://github.com/astral-sh/uv/issues/11090.
2025-01-31 12:11:04 -06:00
Zanie Blue 5ef3d51390
Bump version to 0.5.26 (#11119) 2025-01-30 15:37:00 -06:00
Zanie Blue e0a19be825
Touch-ups to the Python install guide (#11116) 2025-01-30 13:56:53 -06:00
konsti 80d485d32a
Explain build frontend vs. build backend (#11094)
We regularly get questions why `uv build` is missing certain files or
using the wrong build tag, when that's done by the build backend and
part of the build backend's docs. I tried to clarify this difference and
to redirect users to look at the tool's docs instead of wondering why
uv's docs don't explain that.

---------

Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com>
Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-01-30 19:48:47 +00:00
Charlie Marsh 7531bb8669
Upgrade PyTorch version in documentation (#11114)
## Summary

PyTorch 2.6.0 is now GA!
2025-01-30 14:05:13 -05:00
Charlie Marsh 658ca89fb1
Use `sys_platform` in lieu of `platform_system` in PyTorch docs (#11113)
## Summary

This is what we use in the lockfile. I believe it's preferable, and it's
also more concise.
2025-01-30 19:01:52 +00:00
Charlie Marsh 9f8cd92bd3
Use positive (rather than negative) markers in PyTorch examples (#11112)
## Summary

Maybe slightly controversial because it's more verbose, but we really
want to limit these indexes to Linux and Windows, rather than ignoring
them on Darwin. E.g., we'd also want to ignore them on other platforms.

Further down, I use markers that look like this in the more complete
examples, so this feels more consistent.
2025-01-30 14:00:35 -05:00
Charlie Marsh 70507b7898
Add PyTorch XPU instructions to the PyTorch guide (#11109)
## Summary

Closes https://github.com/astral-sh/uv/issues/11079.
2025-01-30 13:48:52 -05:00
Zanie Blue 220821bc39
Add support for `uvx python` (#11076)
Supersedes https://github.com/astral-sh/uv/pull/7491
Closes https://github.com/astral-sh/uv/issues/7430

Thanks @mikeleppane for starting this implementation. I took a bit of a
different approach and it was easier to start over fresh, but I used
some of the test cases there.
2025-01-30 11:53:58 -06:00
Danilo Rezende eb8ffa4981
Update documentation for running in a container (#11052)
This PR rewords the instructions for using uv in a container. I'm a new
user and was somewhat confused by it, so I've rewritten it as I'd have
liked to have read it.

It makes it more clear what distroless means, to avoid confusion with
other projects that ship OS files with an image with its tag name clear
of qualifiers(`astral-sh/uv`, in this case). An example of that is
caddy, which ships with alpine.

This also modifies the original example to use a distroful image instead
of distroless one while #8635 doesn't get resolved.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-01-30 00:17:58 +00:00
Zanie Blue a3049ecf69
Fix broken link (#11081) 2025-01-29 19:41:18 +00:00
Zanie Blue 2ca51501ed
Shorten "Using existing Python versions" nav item so it fits on one line (#11077) 2025-01-29 19:04:11 +00:00
Florian Greinacher 9fc24b2ac5
docs: suggest copy linking for GitLab integration guide (#11067)
## Summary

Hardlinking does not work in that context and raises a warning.

Setting the link mode to copy makes the warning go away.

## Test Plan

Tested on gitlab.com and our self-hosted GitLab instance.

Before changing the link mode:

https://gitlab.com/fgreinacher/uv-test/-/jobs/8986967570

After changing the link mode:

https://gitlab.com/fgreinacher/uv-test/-/jobs/8987026307.

⚒️ with ❤️ by
[Siemens](https://opensource.siemens.com/)

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-01-29 17:58:14 +00:00
titipoco 3af3af5039
Fix typo in no-deps docs/comments/cli description (#11073)
## Summary
Fixes a recurring typo.

## Details
There's a typo appearing in a particular sentence...

> Ignore package dependencies, instead only add those packages
explicitly listed on the command line to the resulting **the**
requirements file.

... used in:
* `crates/uv-cli/src/lib.rs`
* `crates/uv-settings-src-settings.rs`
* `docs/reference/settings.md`
* `uv.schem.json`

Docs, comments and a CLI command description seem affected.

This PR fixes it.

---------

Co-authored-by: bujnok01 <bujnok01@heiway.net>
2025-01-29 11:55:40 -06:00