Commit Graph

4501 Commits

Author SHA1 Message Date
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
Jo 41462e5987
Fix a typo in `fetch-download-metadata.py` (#8515)
Fix this typo:

98523e2014/crates/uv-python/fetch-download-metadata.py (L399)

and removed an empty line in the `downloads.inc.mustache" template.
2024-10-24 07:33:14 -05:00
Andrey Bozhko b6883ed7fb
Fix typo in description of `--strict` flag (#8513)
<!--
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

<!-- What's the purpose of the change? What does it do, and why? -->
Fix the flag description: `to detect and with` --> `to detect packages
with`
2024-10-24 07:21:56 -05:00
tfsingh 98523e2014
Add support for `--dry-run` mode in `uv lock` (#7783)
This PR adds support for `uv lock --dry-run`, as described in issue
#6408.

One thing to note: this functionality, as implemented, isn't limited to
`-U` (if someone adds a dependency to the project's `pyproject.toml`,
the plan will include these changes).

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-24 03:21:55 +00:00
Charlie Marsh ede47c0793
Document `.netrc` environment variable and path (#8511)
## Summary

Closes https://github.com/astral-sh/uv/issues/8482.
2024-10-24 02:34:45 +00: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
Charlie Marsh 1b9b9d56b3
Bump version to v0.4.26 (#8508) 2024-10-23 15:17:49 -04:00
Jo 9540d6ad24
Use reinstall report formatting for `uv python install --reinstall` (#8487)
## Summary

Resolves #8456

## Test Plan

```console
$ cargo run -- python install 3.13
$ cargo run -- python install --reinstall 3.13
Searching for Python versions matching: Python 3.13
Found existing installation for Python 3.13: cpython-3.13.0-macos-aarch64-none
Installed Python 3.13.0 in 7.39s
 ~ cpython-3.13.0-macos-aarch64-none
```

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-23 18:53:33 +00:00
Charlie Marsh e9c08b1639
Rewrite `uv tree` to allow arbitrary `--package` includes (#8507)
## Summary

Previously, `uv tree --package` had some strange behavior due to how we
were computing the root nodes. This PR refactors the entire
implementation to use `petgraph` so we can do proper operations on a
graph structure.

Closes https://github.com/astral-sh/uv/issues/8382.
2024-10-23 18:43:26 +00:00
Jo 56f93d9cfc
`uv python install`: remove the existing version only after the new installation is downloaded successfully (#8485)
## Summary

This PR delays the removal of an existing version after downloading the
new version when running `uv python install --reinstall`.

If the download fails, we can keep the existing version working.

## Test Plan

```console
$ cargo run -- python install 3.13
$ cargo run -- python install --reinstall 3.13 # when downloading, `ctrl-c` to interrupt
$ cargo run -- python list
```
2024-10-23 14:43:09 -04:00
Charlie Marsh 9ca1f0003f
Fix `uv add` comment handling for empty arrays (#8504)
## Summary

Closes https://github.com/astral-sh/uv/issues/8496.
2024-10-23 16:14:58 +00:00
Charles Tapley Hoyt 109abf5037
Improve documentation of manually adding branch, rev, and tag (#8497)
Closes #8490 by improving the documentation to make it more obvious how
to manually edit the `pyproject.toml` if you want to explicitly set the
branch, rev (commit), or tag.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-23 16:12:01 +00:00
Charlie Marsh 72185baf70
Avoid rewriting `[[tool.uv.index]]` entries when credentials are provided (#8502)
## Summary

Instead of creating a new entry, we should reuse the existing entry (to
preserve decor); similarly, we should avoid overwriting fields that are
already "correct".

Closes https://github.com/astral-sh/uv/issues/8483.
2024-10-23 10:57:13 -04:00
Charlie Marsh 29193acc67
Improve error message for cache info serialization (#8500)
## Summary

We no longer need this struct; we bumped the cache bucket version
anyway, so the `Timestamp` variant is never encountered. This means we
get real Serde error messages.

Closes https://github.com/astral-sh/uv/issues/8488.
2024-10-23 13:17:31 +00:00
Charlie Marsh fa14ea44b9
Add docs example for URLs with `[tool.uv.dependency-metadata]` (#8484) 2024-10-23 02:19:14 +00:00
Charlie Marsh cc734ea2b6
Allow dependency metadata entries for direct URL requirements (#7846)
## Summary

This is part of making
https://github.com/astral-sh/uv/issues/7299#issuecomment-2385286341
better. You can now use `tool.uv.dependency-metadata` for direct URL
requirements. Unfortunately, you _must_ include a version, since we need
one to perform resolution.
2024-10-22 22:01:23 -04:00
Zanie Blue d6d6de8769
Upgrade `axoupdater` (#8475) 2024-10-22 20:46:01 -04:00
konsti c09edf9854
More specific workspaces recommendation (#8478)
Workspaces should be used over editable installs if the packages are all
part of the same repository.
2024-10-22 20:45:53 -04:00
Ahmed Ilyas 82df00a917
Support `--with-editable` in `uv tool install` (#8472)
## Summary

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

## Test Plan

`cargo test`

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-10-23 00:06:33 +00:00
Ahmed Ilyas 21b9254949
Suggest `--from` command when executable is available for `uvx` (#8473)
## Summary

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

## Test Plan

`cargo test`

<img width="545" alt="Screenshot 2024-10-22 at 20 17 35"
src="https://github.com/user-attachments/assets/286e0168-7f25-4c85-86a3-23c8bb66a5ff">
2024-10-22 14:16:10 -05: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 2f6fa082c4
Add `uv-dirs` to consolidate directory lookup methods (#8453)
I need the executable directory outside `uv-tool` and figured I should
consolidate these to a central location.
2024-10-22 11:33:25 -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
Charlie Marsh ff3ed3b797
Add type-based validation for index names (#8464)
## Summary

Also documents the normalization scheme.
2024-10-22 16:10:20 +00:00
Charlie Marsh 399d5ab50a
Replace dashes with underscores in index credential variables (#8452)
## Summary

Closes https://github.com/astral-sh/uv/issues/8448.
2024-10-22 09:37:55 -04:00
konsti 9a8ff85083
Don't build the maturin test (#8447) 2024-10-22 12:17:28 +00:00
konsti e7ae0f50d2
Respect allow insecure host in publish (#8440) 2024-10-22 13:36:18 +02:00
konsti 614013ed58
Add help page for build failures (#8286) 2024-10-22 13:35:54 +02:00
konsti 0dd4d017e3
Link to Dependency specifiers instead of PEP 508 (#8411)
The canonical source is
https://packaging.python.org/en/latest/specifications/dependency-specifiers/,
not PEP 508 anymore, so we should link there and use the new name.
2024-10-21 14:43:38 -04:00
Ben Beasley 40f842df09
Switch from a git snapshot to released rust-netrc 1.1.2 (#8424)
<!--
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

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

Before this PR (and since 651fe6f4e6) `uv`
depends on a git snapshot of `rust-netrc` at
544f3890b6,
with fixes from https://github.com/gribouille/netrc/pull/3 for
https://github.com/astral-sh/uv/issues/8003.

Since `rust-netrc` 0.1.2 was just released, and it includes those fixes
– plus an additional [change to support
`~`-expansion](ca0860c0a0)
– `uv` can go back to depending on published crates from crates.io.

## Test Plan

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

```
$ cargo build
$ cargo run python install
$ cargo test
```

I get

```

────────────────────────────────────────────────────────────────────────────────

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: sha
Source: crates/uv/tests/it/build.rs:1454
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Expression: snapshot
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   11    11 │ writing top-level names to src/project.egg-info/top_level.txt
   12    12 │ writing manifest file 'src/project.egg-info/SOURCES.txt'
   13    13 │ reading manifest file 'src/project.egg-info/SOURCES.txt'
   14    14 │ writing manifest file 'src/project.egg-info/SOURCES.txt'
         15 │+[CACHE_DIR]/builds-v0/[TMP]/pkg_resources.html
         16 │+  import pkg_resources
   15    17 │ running sdist
   16    18 │ running egg_info
   17    19 │ writing src/project.egg-info/PKG-INFO
   18    20 │ writing dependency_links to src/project.egg-info/dependency_links.txt
┈┈┈┈┈┈┈┈┈┈┈┈┼┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
   35    37 │ copying src/project.egg-info/top_level.txt -> project-0.1.0/src/project.egg-info
   36    38 │ Writing project-0.1.0/setup.cfg
   37    39 │ Creating tar archive
   38    40 │ removing 'project-0.1.0' (and everything under it)
         41 │+[CACHE_DIR]/builds-v0/[TMP]/pkg_resources.html
         42 │+  import pkg_resources
   39    43 │ Building wheel from source distribution...
   40    44 │ running egg_info
   41    45 │ writing src/project.egg-info/PKG-INFO
   42    46 │ writing dependency_links to src/project.egg-info/dependency_links.txt
   43    47 │ writing requirements to src/project.egg-info/requires.txt
   44    48 │ writing top-level names to src/project.egg-info/top_level.txt
   45    49 │ reading manifest file 'src/project.egg-info/SOURCES.txt'
   46    50 │ writing manifest file 'src/project.egg-info/SOURCES.txt'
         51 │+[CACHE_DIR]/builds-v0/[TMP]/pkg_resources.html
         52 │+  import pkg_resources
   47    53 │ running bdist_wheel
   48    54 │ running build
   49    55 │ running build_py
   50    56 │ creating build
┈┈┈┈┈┈┈┈┈┈┈┈┼┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
   73    79 │ adding 'project-0.1.0.dist-info/WHEEL'
   74    80 │ adding 'project-0.1.0.dist-info/top_level.txt'
   75    81 │ adding 'project-0.1.0.dist-info/RECORD'
   76    82 │ removing build/bdist.linux-x86_64/wheel
         83 │+[CACHE_DIR]/builds-v0/[TMP]/pkg_resources.html
         84 │+  import pkg_resources
   77    85 │ Successfully built dist/project-0.1.0.tar.gz and dist/project-0.1.0-py3-none-any.whl
────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
To update snapshots run `cargo insta review`
Stopped on the first failure. Run `cargo insta test` to run all snapshots.
thread 'build::sha' panicked at /home/ben/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.40.0/src/runtime.rs:548:9:
snapshot assertion for 'sha' failed in line 1454
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    build::sha

test result: FAILED. 1299 passed; 1 failed; 4 ignored; 0 measured; 0 filtered out; finished in 101.18s

error: test failed, to rerun pass `-p uv --test it`
```

The sole failure looks unrelated to me, and I can reproduce it on `main`
(currently e8b8daf0fb), so I conclude that
it has nothing to do with this change.
2024-10-21 14:43:07 -04:00
Charlie Marsh e8b8daf0fb
Fix `cache-keys` typo in `tags = true` (#8422)
Closes https://github.com/astral-sh/uv/issues/8421.
2024-10-21 17:35:22 +00:00
Amjith Ramanujam 351ad84eaf
Add support for system-level `uv.toml` configuration (#7851)
## Summary

Look for a system level uv.toml config file under `/etc/uv/uv.toml` or
`C:\ProgramData`.

This PR is to address #6742 and start a conversation. 

## Test Plan

This was tested locally manually on MacOS. I am happy to contribute
tests once we settle on the approach.

cc @thatch

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-21 17:33:02 +00:00
kkdamowang ec8eee0fde
Fix navigators in crates/README.md (#8408) 2024-10-21 10:45:07 +02:00
Charlie Marsh 3542251c76
Apply narrowing with upper bounds (#8403)
## Summary

If the user has an upper-bound in a `requires-python`, we don't
correctly narrow it during resolution. We should be narrowing based on
the intersection.

Closes #8297.
2024-10-21 01:03:50 +00:00
Charlie Marsh 97eb6ab4aa
Bump version to v0.4.25 (#8402) 2024-10-21 00:37:50 +00:00
renovate[bot] 451e3578ca
Update Rust crate syn to v2.0.82 (#8400) 2024-10-21 00:18:58 +00:00
renovate[bot] 13ba40493e
Update pre-commit dependencies (#8401) 2024-10-21 00:18:36 +00:00