Commit Graph

7187 Commits

Author SHA1 Message Date
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.
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
Jan Lukány 374d4af488
docs: fix typo (#8554)
## Summary

Fix of a typo `many` -> `may` in documentation.

## Test Plan

Building the documentation locally using the instructions in
contribution guideline:
https://github.com/lukany/uv/blob/docs/fix-typo-in-defining-index/CONTRIBUTING.md#documentation
2024-10-25 09:05:38 -04:00
konsti 3eda248ef5
Always attach URL to network errors (#8444) 2024-10-25 09:10:18 +00:00
Charlie Marsh 58b5fd4aff
Add `tool.uv.sources` to the "Settings" reference (#8543)
## Summary

Closes https://github.com/astral-sh/uv/issues/8540.
2024-10-24 23:17:50 +00:00
Charlie Marsh 99a87464eb
Avoid duplicate `[tool.uv]` header in TOML examples (#8545)
## Summary

For example, in:

```toml
[tool.uv]
[[tool.uv.index]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu121"
```

We can just omit `[tool.uv]`.
2024-10-24 21:10:01 +00:00
Zanie Blue ec71fb1f75
Move the installation configuration docs to a separate page (#8546) 2024-10-24 16:04:21 -05:00
Zanie Blue f76781cf8e
Add reference to `uv build` and `uv publish` in the landing pages (#8542)
I don't include the `uv build` and `uv publish` commands in the `uv
init` project because they're not distributable by default :/
2024-10-24 15:56:54 -05:00
Zanie Blue ca6c3d0903
Fix heading level of "Script support" on docs landing page (#8544) 2024-10-24 15:56:48 -05:00
Zanie Blue f533fe8d8b
Use shared client for publish tests and increase read timeout (#8538)
Attempts to address the read timeout case in
https://github.com/astral-sh/uv/issues/8418
2024-10-24 14:24:57 -05:00
Charlie Marsh f4a3f97fe0
Fix dangling non-platform dependencies in `uv tree` (#8532)
## Summary

We were including dependencies that were only included by a dependency
that isn't relevant on the current platform (i.e., we were enforcing the
"current environment" at one level, but not transitively).

Closes https://github.com/astral-sh/uv/issues/8516.
2024-10-24 16:39:00 +00:00
Charlie Marsh 2651aee33f
Enforce lockfile schema versions (#8509)
## Summary

Historically, we haven't enforced schema versions. This PR adds a
versioning policy such that, if a uv version writes schema v2, then...

- It will always reject lockfiles with schema v3 or later.
- It _may_ reject lockfiles with schema v1, but can also choose to read
them, if possible.

(For example, the change we proposed to rename `dev-dependencies` to
`dependency-groups` would've been backwards-compatible: newer versions
of uv could still read lockfiles that used the `dev-dependencies` field
name, but older versions should reject lockfiles that use the
`dependency-groups` field name.)

Closes https://github.com/astral-sh/uv/issues/8465.
2024-10-24 12:23:56 -04:00
Zanie Blue b713877bdc
Add basic testing of managed Python installs (#8462)
With a change like https://github.com/astral-sh/uv/pull/8458, we really
need tests for these.

I'm just going to take the possible performance hit of these slow tests
and deal with optimizing them separately.
2024-10-24 11:18:20 -05:00
konsti 6caeb6aba1
Don't allow non-string email in authors (#8520) 2024-10-24 15:25:52 +00:00
Ed Morley a642676236
Fix `.netrc` typo in authentication docs (#8521)
Follow-up to #8511.
2024-10-24 07:58:39 -05:00