Commit Graph

4550 Commits

Author SHA1 Message Date
Charlie Marsh
bfa84cd1ab Fork when minimum Python version increases (#8628)
## Summary

This is a re-implementation of
https://github.com/astral-sh/uv/pull/4712, though is now seemingly much
simpler. This issue keeps coming up, and users have a workaround with
`tool.uv.environments`, but it's really a bug in the resolver.

Closes https://github.com/astral-sh/uv/issues/4668.
2024-10-28 09:48:04 -04:00
konsti
635223ef00 Hint about missing trusted publishing permission (#8632) 2024-10-28 11:26:46 +00:00
Simon Willison
572840dfe2 Update CLI documentation for --cache-dir (#8627)
Refs:
- #8626

## Summary

Current documentation incorrectly suggests that the macOS cache
directory location is `$HOME/Library/Caches/uv`, but that changed in:

- #5806

Updates docs to say this instead:

> <p>Defaults to <code>$HOME/.cache/uv</code> on macOS,
<code>$XDG_CACHE_HOME/uv</code> or <code>$HOME/.cache/uv</code> on
Linux, and <code>%LOCALAPPDATA%\uv\cache</code> on Windows. The <code>uv
cache dir</code> command will show the location of the cache
directory.</p>

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-28 02:01:21 +00:00
renovate[bot]
e7c3ef1b4f Update pre-commit dependencies (#8624) 2024-10-28 01:26:08 +00:00
renovate[bot]
f239f258c1 Update Rust crate tokio to v1.41.0 (#8623) 2024-10-28 01:25:09 +00:00
renovate[bot]
8216f871d4 Update Rust crate insta to v1.41.0 (#8622) 2024-10-28 01:20:21 +00:00
renovate[bot]
b7f3e7a7f8 Update Rust crate goblin to 0.9.0 (#8621) 2024-10-28 01:13:20 +00:00
renovate[bot]
be92a2bbef Update Rust crate thiserror to v1.0.65 (#8618) 2024-10-28 01:06:22 +00:00
renovate[bot]
6777a19d92 Update Rust crate syn to v2.0.85 (#8617) 2024-10-28 01:04:14 +00:00
renovate[bot]
454eb3cbaf Update Rust crate serde to v1.0.213 (#8616) 2024-10-28 01:01:59 +00:00
renovate[bot]
dd67763dd2 Update Rust crate rustix to v0.38.38 (#8615) 2024-10-28 01:01:21 +00:00
renovate[bot]
f2f5cd45dd Update Rust crate regex to v1.11.1 (#8614) 2024-10-28 00:59:38 +00:00
renovate[bot]
2161f34ef1 Update Rust crate proc-macro2 to v1.0.89 (#8613) 2024-10-27 20:56:46 -04:00
renovate[bot]
0a83f957fb Update Rust crate anyhow to v1.0.91 (#8612) 2024-10-27 20:56:33 -04:00
renovate[bot]
b896c1a853 Update Rust crate anstream to v0.6.17 (#8611) 2024-10-27 20:56:26 -04:00
Charlie Marsh
988ac749f4 Clarify requires-python requirement for dependencies (#8619)
## Summary

Closes https://github.com/astral-sh/uv/issues/8597.
2024-10-28 00:52:55 +00:00
Charlie Marsh
001d00ba26 Remove inverse-node tracking in uv tree (#8610)
## Summary

Just simplifying some of the representations.
2024-10-27 20:44:32 -04:00
Tim Chan
4caa1586fd feat: add environment variable to disable progress output (#8600)
The changes in this commit introduce the `UV_NO_PROGRESS` environment
variable as an alternative way to control progress output suppression in
uv-cli, equivalent to using the `--no-progress` flag. This enhancement
simplifies configuration in CI environments and automated scripts by
eliminating the need to detect whether the script is running in a CI
environment.

Previously, disabling progress output required either passing the
`--no-progress` flag directly or implementing script logic to detect CI
environments and conditionally add the flag. With this change, users can
now simply set `UV_NO_PROGRESS=true` in their environment to achieve the
same effect.

The changes include:

- Adding the `UV_NO_PROGRESS` environment variable to the `EnvVars`
struct in `crates/uv-static/src/env_vars.rs`.
- Updating the `GlobalArgs` struct in `crates/uv-cli/src/lib.rs` to
include a new `no_progress` field that is bound to the `UV_NO_PROGRESS`
environment variable.
- Adding documentation for the new `UV_NO_PROGRESS` environment variable
in `docs/configuration/environment.md`.
## Test Plan

After creating a uv project using `uv init` in a temp directory in this
project:
```
cargo run cache clean && cargo run venv && UV_NO_PROGRESS=false cargo run sync 
cargo run cache clean && cargo run venv && cargo run sync  
```
produce the expected default behavior 

```
cargo run cache clean && cargo run venv && UV_NO_PROGRESS=false cargo run sync  
```
produces the same behavior as having the `--no-progress` flag.
2024-10-27 15:14:12 -04:00
Vivien Maisonneuve
1e1b6ce186 Set LC_ALL=C in test commands (#8606) 2024-10-27 14:24:41 +00:00
Vivien Maisonneuve
c648150ff0 Remove unneeded return from Maturin project template (#8604)
## Summary

This PR removes an unnecessary `return` statement from Rust code in the
Maturin template. This makes the generated code more idiomatic and
prevents a Clippy warning.

## Test Plan

This change was tested both in unit tests and by manually creating a
Maturin project.
2024-10-27 09:15:27 -05:00
Zanie Blue
a09415f008 Fix Python install path in tests (#8578)
The shared arguments were resetting the `UV_PYTHON_INSTALL_DIR`,
breaking the intent of the test.

Added some uninstall tests too, needed later for #8571
2024-10-26 20:56:51 -05:00
Charlie Marsh
f23d9c1a21 Support cyclic dependencies in uv tree (#8564)
## Summary

Closes https://github.com/astral-sh/uv/issues/8551.
2024-10-26 13:30:42 -04:00
Charlie Marsh
5ef0e6c838 Ignore empty groups when validating lock (#8598)
## Summary

It turns out we were omitting empty dependency groups from the lockfile
metadata, which was then causing us to reject locks when empty groups
were defined.

We now include them (that section of the lock is meant to be a true
representation of the metadata, and an empty-but-defined group is
different from an absent group), though we can ignore them for
validation, since it doesn't affect any behavior.

Closes https://github.com/astral-sh/uv/issues/8581.
2024-10-26 17:29:07 +00:00
Magnus Markling
084ad2ed2b Remove duplicate word in error message (#8589)
## Summary

Remove duplicate word ("because" ) in error message.

## Test Plan

I ran all the tests locally.
2024-10-26 11:10:00 -05:00
Jo
0b02a8c28b uv init: Implies --package when using --build-backend (#8593)
## Summary

Closes #8568
2024-10-26 09:51:16 -05:00
Charlie Marsh
d362e03a81 Add more tests for non-[project] groups (#8575) 2024-10-25 19:08:29 +00:00
Charlie Marsh
36b729e927 Add error message when uv build is used with non-packaged projects (#8537)
## Summary

Closes https://github.com/astral-sh/uv/issues/8530.
0.4.27
2024-10-25 15:06:46 -04:00
Zanie Blue
4727acbc62 Bump version to 0.4.27 (#8573) 2024-10-25 19:06:06 +00:00
Charlie Marsh
dd0f696695 Allow [dependency-groups] in non-[project] projects (#8574)
## Summary

We already support `tool.uv.dev-dependencies` in the legacy
non-`[project]` projects. This adds equivalent support for
`[dependency-groups]`, e.g.:

```toml
[tool.uv.workspace]

[dependency-groups]
lint = ["ruff"]
```
2024-10-25 13:57:06 -05:00
Zanie Blue
4df9ab2b58 Fix inclusion or exclusion of dependencies 2024-10-25 13:27:37 -05:00
Zanie Blue
3014d28229 Add documentation for PEP 735 support (#8566)
This adds the minimal documentation I think we need to release PEP 735
support.

I want to add documentation on `include-group` and such but that can
come after.

I also want to restructure some of the project dependency documentation,
but that will be easier once this all lands in `main`.
2024-10-25 13:27:37 -05:00
Zanie Blue
73544098f3 Add a few more test cases for default-groups (#8572) 2024-10-25 13:27:37 -05:00
Zanie Blue
8262e91e2f Update reference documentation for PEP 735 (#8567)
Updates the CLI and setting documentation to reflect the PEP 735
changes.
2024-10-25 13:27:37 -05:00
Charlie Marsh
07b6887c08 Add to dependency-groups.dev in uv add --dev (#8570)
## Summary

`uv add --dev` now updates the `dependency-groups.dev` section, rather
than `tool.uv.dev-dependencies` -- unless the dependency is already
present in `tool.uv.dev-dependencies`.

`uv remove --dev` now removes from both `dependency-groups.dev` and
`tool.uv.dev-dependencies`.

`--dev` and `--group dev` are now treated equivalently in `uv add` and
`uv remove`.
2024-10-25 13:27:37 -05:00
Charlie Marsh
810b430031 Add --no-group support to CLI (#8477)
## Summary

Now that `default-groups` can include more than just `"dev"`, it makes
sense to allow users to remove groups with `--no-group`.
2024-10-25 13:27:37 -05:00
Charlie Marsh
291c4c496d Add support for default-groups (#8471)
This PR adds support for `tool.uv.default-groups`, which defaults to
`["dev"]` for backwards-compatibility. These represent the groups we
sync by default.
2024-10-25 13:27:37 -05:00
Charlie Marsh
2e028cd3b6 Rewrite some references to "optional groups" (#8454)
## Summary

We generally want to avoid references to "optional groups" now that
dependency groups are a first-class, standardized concept.
2024-10-25 13:27:37 -05:00
Charlie Marsh
5ab860be20 Rename dev dependencies to dependency groups in lockfile (#8391)
This is backwards compatible (we respect `dev-dependencies` as an
alias).

Part of https://github.com/astral-sh/uv/pull/8272.
2024-10-25 13:27:37 -05:00
Charlie Marsh
c7ccf88939 Error when --group includes non-existent groups (#8394)
## Summary

Part of https://github.com/astral-sh/uv/pull/8272.
2024-10-25 13:27:37 -05:00
Charlie Marsh
4d134a4ffe Error on duplicate PEP 735 dependency groups (#8390)
## Summary

Part of: https://github.com/astral-sh/uv/pull/8272.
2024-10-25 13:27:37 -05:00
Charlie Marsh
384f4459a1 Check dependency groups for credentials (#8393)
## Summary

We have to iterate over all user-defined dependencies here. We were
missing the new `[dependency-groups]` section.

Part of https://github.com/astral-sh/uv/pull/8272.
2024-10-25 13:27:37 -05:00
Zanie Blue
1bee82329c Add --group, --only-group, and --only-dev support to uv tree (#8338)
Part of #8090

Most of the heavy lifting is done in #8309

Includes `--only-dev` which appears to be missing as an oversight.
2024-10-25 13:27:37 -05:00
Zanie Blue
a71a0674f0 Add --group and --only-group to uv export (#8332)
Part of #8090

Most of the heavy lifting is done in #8309
2024-10-25 13:27:37 -05:00
Zanie Blue
39ca57f3c8 Add --group and --only-group to uv run (#8274)
Similar to #8110

Part of #8090
2024-10-25 13:27:37 -05:00
Zanie Blue
d2e1f180ef Refactor development dependency configuration (#8309)
Part of #8090
Unblocks https://github.com/astral-sh/uv/pull/8274

Refactors `DevMode` and `DevSpecification` into a shared type
`DevGroupsSpecification` that allows us to track if `--dev` was
implicitly or explicitly provided.
2024-10-25 13:27:37 -05:00
Zanie Blue
fc2e79c6ce Add support for reading and resolving include-group in dependency groups (#8266)
Part of #8090

Adds the ability to read group inclusions (`include-group = <name>`) in
the `pyproject.toml`. Resolves groups into concrete dependencies for
resolution.

See https://github.com/astral-sh/uv/pull/8110 for a bit more commentary
on deferred work.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-25 13:27:37 -05:00
Zanie Blue
2dc4fd0a19 Add --group and --only-group to uv sync and includes all groups in uv lock (#8110)
Part of #8090

Adds the ability to include a group (`--group`) in the sync or _only_
sync a group (`--only-group`). Includes all groups in the resolution,
which will have the same limitations as extras as described in #6981.

There's a great deal of refactoring of the "development" concept into
"groups" behind the scenes that I am continuing to defer here to
minimize the diff.

Additionally, this does not yet resolve interactions with the existing
`dev` group — we'll tackle that separately as well. I probably won't
merge the stack until that design is resolved. The current proposal is
that we'll just "combine' the `dev-dependencies` contents into the `dev`
group.
2024-10-25 13:27:37 -05:00
Zanie Blue
4c0590ff6f Add --group support to uv add and uv remove (#8108)
Part of #8090

Adds the ability to add and remove dependencies from arbitrary groups
using `uv add` and `uv remove`. Does not include resolving with the new
dependencies — tackling that in #8110.

Additionally, this does not yet resolve interactions with the existing
`dev` group — we'll tackle that separately as well. I probably won't
merge the stack until that design is resolved.
2024-10-25 13:27:37 -05:00
Zanie Blue
3c9d783e09 Add support for reading PEP 735 dependency groups (#8104)
Part of #8090

As a basic first step, we parse these groups defined in `pyproject.toml`
files.
2024-10-25 13:27:37 -05:00
Nathan McDougall
d2cd09bbd7 Update docs for --publish-url to avoid duplication. (#8561)
## Summary

These two sentences in the docs for `--publish-url` seem to basically be
duplicates:


3eda248ef5/crates/uv-cli/src/lib.rs (L4616-L4618)

I found the first to be easier to read, so this commit removes the
second.

## Test Plan

No tests, change is docs-only.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-10-25 13:55:33 +00:00