Commit Graph

487 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:


https://github.com/astral-sh/uv/blob/3eda248ef5678fe07b5424fb4f256011800fbb15/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
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
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
Ed Morley a642676236 Fix .netrc typo in authentication docs (#8521)
Follow-up to #8511.
2024-10-24 07:58:39 -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
Charlie Marsh 1b9b9d56b3 Bump version to v0.4.26 (#8508) 2024-10-23 15:17:49 -04: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 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
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
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
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
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
Charlie Marsh 97eb6ab4aa Bump version to v0.4.25 (#8402) 2024-10-21 00:37:50 +00:00
Charlie Marsh e9f1161b95 Modify cache versioning to support backwards compatibility (#8386)
## Summary

Going forward, we're going to provide better versioning guarantees
around using the same cache across multiple uv versions, so this PR
updates the docs to reflect that. It also bumps the `sdists-` version to
fix the inconvenience demonstrated in
https://github.com/astral-sh/uv/issues/8367.

Closes https://github.com/astral-sh/uv/issues/8367.
2024-10-20 16:48:04 +00:00
Jo bcc52ed108 Add uv pip show --files (#8369)
## Summary

Resolves #8357
2024-10-20 12:13:41 -04:00
konsti e26eed10e4 Better missing self update feature (#8337) 2024-10-18 17:38:34 +00:00
Charlie Marsh d53d580221 Add support for UV_FROZEN and UV_LOCKED (#8340)
## Summary

Closes https://github.com/astral-sh/uv/issues/8321.
2024-10-18 13:37:49 -04:00
Vini Brasil 69d5e084d5 Allow dashes and underscores in custom index names (#8339)
Previously, `uv add --index` command threw an error when the index name
included characters like hyphens or underscores.

Closes #8315
2024-10-18 13:24:16 -04:00
Charlie Marsh a459052f44 Redact index sources in uv.lock (#8333)
## Summary

Closes https://github.com/astral-sh/uv/issues/8296.
2024-10-18 11:20:15 -04:00
Zanie Blue b9cd549138 Bump version to 0.4.24 (#8312) 2024-10-17 18:50:13 -05:00
Charlie Marsh 31441ef9db Correct pytorch-to-torch reference in docs (#8291) 2024-10-17 15:28:51 +00:00
Zanie Blue 83f835b0d0 Bump version to 0.4.23 (#8275)
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-17 14:26:39 +00: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
Charlie Marsh b87a755225 Add some additional notes to --index-url docs (#8267) 2024-10-16 14:57:53 -04:00
Charlie Marsh 7730861bc5 Allow users to incorporate Git tags into dynamic cache keys (#8259)
## Summary

You can now use `cache-keys = [{ git = { commit = true, tags = true }
}]` to include both the current commit and set of tags in the cache key.

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

Closes https://github.com/astral-sh/uv/issues/7997.
2024-10-16 11:13:29 -04:00
samypr100 319c0183c6 Add templates for popular build backends (#7857)
Co-authored-by: konstin <konstin@mailbox.org>
2024-10-16 14:19:59 +02:00
Jo ea0c32df8c docs: remove "Only a single source may be defined for each dependency" (#8243)
After #7745, mutiple sources are supported.
2024-10-16 08:19:44 -04:00
Charlie Marsh 9a76e47888 Allow multiple pinned indexes in tool.uv.sources (#7769)
## Summary

This PR lifts the restriction that a package must come from a single
index. For example, you can now do:

```toml
[project]
name = "project"
version = "0.1.0"
readme = "README.md"
requires-python = ">=3.12"
dependencies = ["jinja2"]

[tool.uv.sources]
jinja2 = [
    { index = "torch-cu118", marker = "sys_platform == 'darwin'"},
    { index = "torch-cu124", marker = "sys_platform != 'darwin'"},
]

[[tool.uv.index]]
name = "torch-cu118"
url = "https://download.pytorch.org/whl/cu118"

[[tool.uv.index]]
name = "torch-cu124"
url = "https://download.pytorch.org/whl/cu124"
```

The construction is very similar to the way we handle URLs today: you
can have multiple URLs for a given package, but they must appear in
disjoint forks. So most of the code is just adding that abstraction to
the resolver, following our handling of URLs.

Closes #7761.
2024-10-15 22:58:15 +00:00
Charlie Marsh 1925922770 Enable environment variable authentication for named indexes (#7741)
## Summary

This PR enables users to provide index credentials via named environment
variables.

For example, given an index named `internal` that requires a username
(`public`) and password
(`koala`), you can define the index (without credentials) in your
`pyproject.toml`:

```toml
[[tool.uv.index]]
name = "internal"
url = "https://pypi-proxy.corp.dev/simple"
```

Then set the `UV_INDEX_INTERNAL_USERNAME` and
`UV_INDEX_INTERNAL_PASSWORD`
environment variables, where `INTERNAL` is the uppercase version of the
index name:

```sh
export UV_INDEX_INTERNAL_USERNAME=public
export UV_INDEX_INTERNAL_PASSWORD=koala
```
2024-10-15 22:35:07 +00:00
Charlie Marsh 5b391770df Add support for named and explicit indexes (#7481)
## Summary

This PR adds a first-class API for defining registry indexes, beyond our
existing `--index-url` and `--extra-index-url` setup.

Specifically, you now define indexes like so in a `uv.toml` or
`pyproject.toml` file:

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

You can also provide indexes via `--index` and `UV_INDEX`, and override
the default index with `--default-index` and `UV_DEFAULT_INDEX`.

### Index priority

Indexes are prioritized in the order in which they're defined, such that
the first-defined index has highest priority.

Indexes are also inherited from parent configuration (e.g., the
user-level `uv.toml`), but are placed after any indexes in the current
project, matching our semantics for other array-based configuration
values.

You can mix `--index` and `--default-index` with the legacy
`--index-url` and `--extra-index-url` settings; the latter two are
merely treated as unnamed `[[tool.uv.index]]` entries.

### Index pinning

If an index includes a name (which is optional), it can then be
referenced via `tool.uv.sources`:

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

[tool.uv.sources]
torch = { index = "pytorch" }
```

If an index is marked as `explicit = true`, it can _only_ be used via
such references, and will never be searched implicitly:

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

[tool.uv.sources]
torch = { index = "pytorch" }
```

Indexes defined outside of the current project (e.g., in the user-level
`uv.toml`) can _not_ be explicitly selected.

(As of now, we only support using a single index for a given
`tool.uv.sources` definition.)

### Default index

By default, we include PyPI as the default index. This remains true even
if the user defines a `[[tool.uv.index]]` -- PyPI is still used as a
fallback. You can mark an index as `default = true` to (1) disable the
use of PyPI, and (2) bump it to the bottom of the prioritized list, such
that it's used only if a package does not exist on a prior index:

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

### Name reuse

If a name is reused, the higher-priority index with that name is used,
while the lower-priority indexes are ignored entirely.

For example, given:

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

[[tool.uv.index]]
name = "pytorch"
url = "https://test.pypi.org/simple"
```

The `https://test.pypi.org/simple` index would be ignored entirely,
since it's lower-priority than `https://download.pytorch.org/whl/cu121`
but shares the same name.

Closes #171.

## Future work

- Users should be able to provide authentication for named indexes via
environment variables.
- `uv add` should automatically write `--index` entries to the
`pyproject.toml` file.
- Users should be able to provide multiple indexes for a given package,
stratified by platform:
```toml
[tool.uv.sources]
torch = [
  { index = "cpu", markers = "sys_platform == 'darwin'" },
  { index = "gpu", markers = "sys_platform != 'darwin'" },
]
```
- Users should be able to specify a proxy URL for a given index, to
avoid writing user-specific URLs to a lockfile:
```toml
[[tool.uv.index]]
name = "test"
url = "https://private.org/simple"
proxy = "http://<omitted>/pypi/simple"
```
2024-10-15 18:24:23 -04:00
Charlie Marsh 34be3af84f Bump version to v0.4.22 (#8227) 2024-10-15 16:05:49 -04:00
konsti a131b1a9e6 Fix AWS CodeArtifact UV_PUBLISH_URL (#8222) 2024-10-15 16:08:19 +00:00
Charlie Marsh 855c1917e1 Respect [tool.uv.sources] in build requirements (#7172)
## Summary

We weren't respecting `tool.uv.sources` for `build-requires`.

Closes https://github.com/astral-sh/uv/issues/7147.
2024-10-15 15:31:04 +00:00
Charlie Marsh c5d9f55bc4 Bump version to v0.4.21 (#8188) 2024-10-14 20:44:43 +00:00
Aditya Pratap Singh 05446cd736 Include uvx installation in Docker examples (#8179)
closes #7947
2024-10-14 13:23:11 -05:00
pantheraleo-7 7e13100786 docs: correct typo in index.md (#8150)
This was added in [#5426](https://github.com/astral-sh/uv/pull/5426)

The output that a python shell was started, but the command will only
print out the version because of the `--version` flag.

I think the section `Download Python versions as needed` should be
reverted back to `Download Python versions on demand` or something
similar because that's what the command will do. It will download the
given version if not already installed.
2024-10-12 22:00:33 +01:00
bluss e67d87301a Implement uv tree --no-dev (#8109)
## Summary

Allow pruning dev-dependencies in uv tree.
This is not inherently in conflict with --invert, but this pruning is
not yet implemented there.
2024-10-12 13:10:56 +00:00
Adam Dangoor 9351652e32 Update dependencies.md with typo fix (stands -> standards) (#8142) 2024-10-12 13:53:36 +01: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