Commit Graph

374 Commits

Author SHA1 Message Date
eth3lbert e7a7a813fb
Implement `--show-version-specifiers` for `tool list` (#7050)
## Summary

Closes #6747 .

## Test Plan

```
cargo test --test tool_list
```
2024-09-05 02:15:18 +00:00
my1e5 86c8906d10
Update docs on `.python-version` file (#7051)
## Summary

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

* When displaying the file structure of a uv-managed project show the
`.python-version` file which is now created by default.
* Mention the purpose of the `.python-version` file in `Guides/Working
on projects/Project structure`
* In `Concepts/Python versions/Project python versions`, changed
sentence about `.python-version` file to reflect the fact it is included
by default so is likely to be present.
2024-09-04 19:22:34 -04:00
Ahmed Ilyas ff39950545
Allow multiple packages for `uv tool upgrade/uninstall` (#7037)
## Summary

Resolves https://github.com/astral-sh/uv/issues/6571

## Test Plan

`cargo test`
2024-09-04 17:18:52 -04:00
Ed Morley c1effd6b05
Misc projects docs grammar fixes (#7048)
Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-09-04 20:58:36 +00:00
Zanie Blue 42b6bfbad7
Bump version to 0.4.5 (#7044) 2024-09-04 16:56:10 -04:00
Zanie Blue 5ca3ded53b
Touchup to the project environment config section (#7038) 2024-09-04 15:02:35 -05:00
samypr100 bbaf664c51
docs: fix docker tag docs (#7041)
## Summary

Closes https://github.com/astral-sh/uv/issues/7029
2024-09-04 13:11:57 -05:00
Zanie Blue b2cb3bb2ae
Add project docs for `project.scripts` (#7010)
Closes https://github.com/astral-sh/uv/issues/6998

Common point of confusion because Poetry defines these in
`tool.poetry.scripts`
2024-09-04 12:16:31 -05:00
Mathieu Kniewallner 5cc76679e9
docs(configuration): clarify `uv.toml` precedence (#6986)
## Summary

Add a note in the documentation to clarify that `uv.toml` files take
precedence over `[tool.uv]` section in `pyproject.toml`, based on the
warning shown in the CLI:

```console
$ uv version
warning: Found both a `uv.toml` file and a `[tool.uv]` section in an adjacent `pyproject.toml`. The `[tool.uv]` section will be ignored in favor of the `uv.toml` file.
uv 0.4.2 (Homebrew 2024-09-01)
```
2024-09-04 15:57:41 +00:00
Charlie Marsh 724a93bfdb
Add documentation for `uv build` (#6991) 2024-09-04 15:53:14 +00:00
Charlie Marsh 7aed94bed2
Add `--package` support to `uv build` (#6990)
## Summary

This PR adds `--package` support to `uv build`, such that you can use
`--package` from anywhere in a workspace to build any member.

If a source directory is provided, we use that as the workspace root.

If a file is provided, we error.

For now, `uv build` only builds the current package, making it
semantically identical to `uv sync`.
2024-09-04 15:52:21 +00:00
Charlie Marsh 5d8e99045a
Support `uv build --wheel` from source distributions (#6898)
## Summary

This PR allows users to run `uv build --wheel ./path/to/source.tar.gz`
to build a wheel from a source distribution. This is also the default
behavior if you run `uv build ./path/to/source.tar.gz`. If you pass
`--sdist`, we error.
2024-09-04 15:30:32 +00:00
Charlie Marsh df84d25a7e
Implement `uv build` (#6895)
## Summary

This PR exposes uv's PEP 517 implementation via a `uv build` frontend,
such that you can use `uv build` to build source and binary
distributions (i.e., wheels and sdists) from a given directory.

There are some TODOs that I'll tackle in separate PRs:

- [x] Support building a wheel from a source distribution (rather than
from source) (#6898)
- [x] Stream the build output (#6912)

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

Closes https://github.com/astral-sh/uv/issues/1663.
2024-09-04 11:23:46 -04:00
Zanie Blue 1996067f81
Add note to `extra` and `all-extras` in `uv sync` help (#7013) 2024-09-04 15:05:21 +00:00
Zanie Blue dd2b2eb3fe
Fix available Docker image rendering and shorten list (#7017) 2024-09-04 08:47:34 -05:00
Charlie Marsh 3d75df6ab2
Bump version to v0.4.4 (#6988) 2024-09-04 00:30:38 +00:00
Zanie Blue 1fd27d768e
Add instructions for installing from Cargo (#6979) 2024-09-04 00:24:55 +00:00
Zanie Blue 88ba1e90a0
Add docs for `UV_PROJECT_ENVIRONMENT` (#6987) 2024-09-03 19:47:05 -04:00
Charlie Marsh 50d7b9c38a
Pin `.python-version` in `uv init` (#6869)
## Summary

I'm not convinced that the behavior is correct as-implemented. When the
user passes a `--python >=3.8` or we discover a `requires-python` from
the workspace, we're currently writing that request out to
`.python-version`. I would probably rather that we write the resolved
patch version?

Closes https://github.com/astral-sh/uv/issues/6821.
2024-09-03 19:43:50 -04:00
Zanie Blue 3e8d53c8eb
Document use of the `file://` scheme in Python installation mirrors (#6984)
Documenting https://github.com/astral-sh/uv/pull/6950
2024-09-03 18:38:16 -05:00
Zanie Blue 614839e88b
Add optional dependencies section to the lockfile document (#6982)
Closes https://github.com/astral-sh/uv/issues/6729
2024-09-03 19:37:36 -04:00
Zanie Blue 4a6bea5321
Fix outdated references to the help menu documentation in the first steps page (#6980) 2024-09-03 17:14:38 -05:00
Zanie Blue d87256bebe
Improve project handling in `uv venv` (#6835)
- Respect `UV_PROJECT_ENVIRONMENT` when in project root
- Add `--no-project` and `--no-workspace` to opt-out of above and
`requires-python` detection
- Rename `[NAME]` to `[PATH]` in CLI
2024-09-03 14:22:30 -05:00
eth3lbert c667588524
Show env option in CLI reference documentation (#6863)
## Summary

Closes #6469.

<img width="721" alt="image"
src="https://github.com/user-attachments/assets/be144e43-e02f-473e-921c-91cf00c3c8d3">
2024-09-03 12:10:49 -05:00
David Bern b7795024a8
docs `docker.md`: example to use bind mounts (#6921)
## Summary

Update the extended docker example to use bind mounts and avoid creating
extra layers and avoid copying files into layers

This is in line with the official Docker templates for Python
applications (you can try them out using `docker init`. I found them
very helpful!)
2024-09-03 09:36:54 -05:00
samypr100 37e25e2b1d
feat: introduce more docker tags for uv (#6053)
## Summary

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

This PR introduces additional images with the uv/uvx binaries from
scratch for both amd64/arm64 and make the mapping easy to configure by
generating the Dockerfile on the fly. This approach focuses on
minimizing CI time by taking advantage of dedicating a worker per
mapping (20-30s~ per job).

This PR also fixes `org.opencontainers.image.version` for all tags
(including the one from `scratch) to contain the right release version
instead of branch name `main` (default when no tag patterns are
specified).

For example, on release `x.y.z`, this will publish the following image
tags with format `ghcr.io/astral-sh/uv:{tag}` with manifests for both
amd64/arm64. This also include `x.y` tags for each respective additional
tag.

* From **scratch**: `latest`, `x.y.z`, `x.y` (currently being published)
* From **alpine:3.20**: `alpine`, `alpine3.20`, `x.y.z-alpine`,
`x.y.z-alpine3.20`
* From **debian:bookworm-slim**: `debian-slim`, `bookworm-slim`,
`x.y.z-debian-slim`, `x.y.z-bookworm-slim`
* From **buildpack-deps:bookworm**: `debian`, `bookworm`,
`x.y.z-debian`, `x.y.z-bookworm`
* From **python:3.12-alpine**: `python3.12-alpine`,
`x.y.z-python3.12-alpine`
* From **python:3.11-alpine**: `python3.11-alpine`,
`x.y.z-python3.11-alpine`
* From **python:3.10-alpine**: `python3.10-alpine`,
`x.y.z-python3.10-alpine`
* From **python:3.9-alpine**: `python3.9-alpine`,
`x.y.z-python3.9-alpine`
* From **python:3.8-alpine**: `python3.8-alpine`,
`x.y.z-python3.8-alpine`
* From **python:3.12-bookworm**: `python3.12-bookworm`,
`x.y.z-python3.12-bookworm`
* From **python:3.11-bookworm**: `python3.11-bookworm`,
`x.y.z-python3.11-bookworm`
* From **python:3.10-bookworm**: `python3.10-bookworm`,
`x.y.z-python3.10-bookworm`
* From **python:3.9-bookworm**: `python3.9-bookworm`,
`x.y.z-python3.9-bookworm`
* From **python:3.8-bookworm**: `python3.8-bookworm`,
`x.y.z-python3.8-bookworm`
* From **python:3.12-slim-bookworm**: `python3.12-slim-bookworm`,
`x.y.z-python3.12-slim-bookworm`
* From **python:3.11-slim-bookworm**: `python3.11-slim-bookworm`,
`x.y.z-python3.11-slim-bookworm`
* From **python:3.10-slim-bookworm**: `python3.10-slim-bookworm`,
`x.y.z-python3.10-slim-bookworm`
* From **python:3.9-slim-bookworm**: `python3.9-slim-bookworm`,
`x.y.z-python3.9-slim-bookworm`
* From **python:3.8-slim-bookworm**: `python3.8-slim-bookworm`,
`x.y.z-python3.8-slim-bookworm`
2024-09-03 08:44:01 -05:00
Charlie Marsh ccdf2d793b
Add `--no-hashes` to `uv export` (#6954)
## Summary

Closes https://github.com/astral-sh/uv/issues/6944.
2024-09-02 22:12:29 -04:00
Charlie Marsh b229230643
Use | for page separator in meta titles (#6953)
I generally prefer this style:

![Screenshot 2024-09-02 at 8 41
38 PM](https://github.com/user-attachments/assets/795dab85-b6c4-4278-913f-1d723379b225)
2024-09-03 00:42:59 +00:00
Charlie Marsh fe17797240
Update URL in structured schema (#6952) 2024-09-02 20:28:36 -04:00
Charlie Marsh 92e93da81d
Add `static` assets to docs pages (#6951)
## Summary

This PR points the docs towards the static assets that we use for
`astral.sh`, so that we can use shared assets for the Ruff and uv docs.
2024-09-02 20:00:30 -04:00
Charlie Marsh 47f4ca24b3
Bump version to v0.4.3 (#6947) 2024-09-02 17:18:57 -04:00
Charlie Marsh 736ccb950a
Bump version to v0.4.2 (#6916) 2024-09-01 13:37:27 -04:00
Ed Morley a5f1e1c765
Fix typos in docs, error messages and comments (#6910) 2024-09-01 11:37:43 +00:00
Mathieu Kniewallner c9e4395322
docs: add missing `console` highlights (#6900)
## Summary

Spotted a few missing `console` highlights in the documentation.
2024-08-31 19:04:19 -04:00
Mathieu Kniewallner fe5f085299
chore: run `cargo dev generate-all` on CI and locally (#6899)
## Summary

Noticed that running `cargo dev generate-all` on `main` produced changes
and saw that that the command is not run on the CI nor as a pre-commit
hook.

Not sure if having the command running as a pre-commit hook is something
we want, so I can remove it if you prefer. I find that nice to have as
it's probably easy to forget to run it, especially for new contributors
(and it will only run if there are changes in `uv_cli` or `uv_settings`
crates).

## Test Plan

- Added `cargo dev generate-all --mode check` on the CI, which produced
[this failing
job](https://github.com/astral-sh/uv/actions/runs/10648055597/job/29516699393)
- Ran `cargo dev generate-all` locally and committed the changes, which
produced [this succeeding
job](https://github.com/astral-sh/uv/actions/runs/10648076910/job/29516744942)
2024-08-31 19:03:53 -04:00
Ed Morley d2df51f5f5
Fix missing word in config files docs (#6901) 2024-08-31 22:33:59 +01:00
Charlie Marsh 83467f0a51
Fix typos (#6891) 2024-08-30 19:45:33 -04:00
David Cardozo 0510842e1b
fix: typo in alternative-indexes.md docs (#6877)
## Summary

Small typo on the guide for alternative index

## Test Plan

I rerun the documentation to see the typo gone.
2024-08-30 11:11:36 -04:00
Charlie Marsh 823f23e225
Bump version to v0.4.1 (#6870) 2024-08-30 10:07:06 -04:00
Den Kasyanov 0ceefb3c88
Update FastAPI integration docs (#6833) (#6850)
## Summary

- Fixed the directory structure and commands for the second scenario
#6833
- Added a headline "Migrating an existing FastAPI project" because the
first part looks like a migration scenario, but didn't have its own
section before.
- Added explicit `--app` flags to commands to emphasize that the
commands create an Application project. Although maybe unnecessary
considering that `--app` is now default.
- Added instructions for testing that the dev server and Docker image
work correctly
- Took the liberty of adding a `project` at the root of all directory
structures and appropriate commands.
- With explicitly defined root directory it is easier to differentiate
between the `project` root directory and FastAPI's `app` directory.
- Without it it could be less obvious for developers less familiar with
FastAPI. Had a similar issue when started using Django several years
ago.
- If I left `app` in the command, then after copying the **app
directory** from https://github.com/astral-sh/uv-fastapi-example the
path would be `app/app/...`.
- Cleaned up glyphs in tree sctructures that were copied from FastAPI
docs.

## Caveats

- On project initialization `hello.py` is created. It is not reflected
in directory structure trees in this PR and may be slightly confusing
for developers less familiar with uv.
- I believe it will be soon addressed in #6750 and after that the docs
will reflect actual directory structure.
2024-08-30 10:00:26 -04:00
Zanie Blue c91c99b35e
Drop old content from the FastAPI guide (#6851) 2024-08-29 22:22:37 -05:00
konsti a39eb61ade
Use windows registry to discover python (#6761)
Our current strategy of parsing the output of `py --list-paths` to get
the installed python versions on windows is brittle (#6524, missing
`py`, etc.) and it's slow (10ms last time i measured).

Instead, we should behave spec-compliant and read the python versions
from the registry following PEP 514.

It's not fully clear which errors we should ignore and which ones we
need to raise.

We're using the official rust-for-windows crates for accessing the
registry.

Fixes #1521
Fixes #6524
2024-08-29 22:48:22 +02:00
Shantanu 57cb9c2957
Add docs for inline exclude newer (#6831)
See https://github.com/astral-sh/uv/pull/6562
2024-08-29 15:44:47 -05:00
Zanie Blue 09e359f5ad
Add a link to the multiple index docs in the alternative index guide (#6826) 2024-08-29 15:27:48 -05:00
Charlie Marsh cbfc928a9c
Add `uv export --format requirements.txt` (#6778)
## Summary

The interface here is intentionally a bit more limited than `uv pip
compile`, because we don't want `requirements.txt` to be a system of
record -- it's just an export format. So, we don't write annotation
comments (i.e., which dependency is requested from which), we don't
allow writing extras, etc. It's just a flat list of requirements, with
their markers and hashes.

Closes #6007.

Closes #6668.

Closes #6670.
2024-08-29 17:46:42 +00:00
Franco Mariluis 670e9603ee
add docs for AWS CodeArtifact (#6816)
<!--
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 explicit information about using `uv` with AWS CodeArtifact
(both as an extra index to fetch private packages and also to publish
packages using `twine`).

## Test Plan

I'm currently using this setup with several private projects that use
CodeArtifact.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-08-29 12:40:41 -05:00
Charlie Marsh f2ce80589f
Omit `[pip]` section from configuration file docs (#6814)
## Summary

Closes https://github.com/astral-sh/uv/issues/6800.
2024-08-29 12:57:13 -04:00
my1e5 f956ab8fae
Update default `hello.py` to pass `ruff format` (#6811)
Closes https://github.com/astral-sh/uv/issues/6808
2024-08-29 10:31:52 -04:00
Zanie Blue aad00d22e4
Fix up reference to environment markers in resolver reference (#6773) 2024-08-28 18:00:43 -04:00
Zanie Blue 98577b52bf
Enumerate available Docker tags (#6768) 2024-08-28 13:51:23 -05:00
Charlie Marsh d9bd3bc7a5
Bump to v0.4.0 (#6764) 2024-08-28 17:29:16 +00:00
Charlie Marsh cef3d35405
Support `{package}@{version}` in `uv tool install` (#6762)
## Summary

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

Closes https://github.com/astral-sh/uv/issues/6535.
2024-08-28 12:40:49 -04:00
Zanie Blue 451eef31a6
Bind to the host to allow connections in FastAPI Docker example (#6753)
This wouldn't allow connections as written
2024-08-28 10:33:54 -05:00
Zanie Blue 37e29f1109
Update FastAPI guide for virtual projects and use `uv init` to create the `pyproject.toml` (#6752)
Follows https://github.com/astral-sh/uv/pull/6751

Matches https://github.com/astral-sh/uv-fastapi-example/pull/3
2024-08-28 10:33:46 -05:00
Zanie Blue 50c4341cc6
Remove build system from FastAPI guide (#6751)
Matches https://github.com/astral-sh/uv-fastapi-example/pull/2
2024-08-28 10:33:38 -05:00
Zanie Blue f96b4c7837
Add dependabot and renovate documentation page (#6236)
cc @mkniewallner

---------

Co-authored-by: Mathieu Kniewallner <mathieu.kniewallner@gmail.com>
2024-08-28 07:41:23 -05:00
Zanie Blue 75a5066e10
Improvements to the application and library documentation (#6726) 2024-08-27 23:15:12 +00:00
Charlie Marsh c1e831881b
Update workspace documentation to remove legacy virtual projects (#6720) 2024-08-27 17:31:12 -04:00
Zanie Blue d5d8375c7e
Update project documentation for the application / library concepts (#6718)
Follows https://github.com/astral-sh/uv/pull/6689 and
https://github.com/astral-sh/uv/pull/6585
2024-08-27 16:22:31 -05:00
Zanie Blue bc5b069a61
Add `--app` and `--lib` options to `uv init` (#6689)
Changes the `uv init` experience with a focus on working for more
use-cases out of the box.

- Adds `--app` and `--lib` options to control the created project style
- Changes the default from a library with `src/` and a build backend
(`--lib`) to an application that is not packaged (`--app`)
- Hides the `--virtual` option and replaces it with `--package` and
`--no-package`
- `--no-package` is not allowed with `--lib` right now, but it could be
in the future once we understand a use-case
- Creates a runnable project
- Applications have a `hello.py` file which you can run with `uv run
hello.py`
- Packaged applications, e.g., `uv init --app --package` create a
package and script entrypoint, which you can run with `uv run hello`
- Libraries provide a demo API function, e.g., `uv run python -c "import
name; print(name.hello())"` — this is unchanged

Closes #6471
2024-08-27 18:08:09 +00:00
Charlie Marsh eb14056e9c
Add support for virtual projects (#6585)
## Summary

The basic idea here is: any project can either be a package, or not
("virtual").

If a project is virtual, we don't build or install it.

A project is virtual if either of the following are true:

- `tool.uv.virtual = true` is set.
- `[build-system]` is absent.

The concept of "virtual projects" only applies to workspace member right
now; it doesn't apply to `path` dependencies which are treated like
arbitrary Python source trees.

TODOs that should be resolved prior to merging:

- [ ] Documentation
- [ ] How do we reconcile this with "virtual workspace roots" which are
a little different -- they omit `[project]` entirely and don't even have
a name?
- [x] `uv init --virtual` should create a virtual project rather than a
virtual workspace.
- [x] Running `uv sync` in a virtual project after `uv init --virtual`
shows `Audited 0 packages in 0.01ms`, which is awkward. (See:
https://github.com/astral-sh/uv/pull/6588.)

Closes https://github.com/astral-sh/uv/issues/6511.
2024-08-27 13:42:46 -04:00
Zanie Blue c56102bde3
Fix some broken links (#6705) 2024-08-27 17:24:49 +00:00
Charlie Marsh 6c62d9fbf1
Bump version to v0.3.5 (#6696) 2024-08-27 16:30:12 +00:00
Zanie Blue cee0d2daf5
Improve lockfile concept documentation, add coverage for upgrades (#6698) 2024-08-27 11:20:53 -05:00
konsti 18453ae79f
Add note about install python on alpine (#6677)
When not using a python base image and using alpine, you need to install
python by yourself. You should also pin the python version when doing
so; currently, i see only python 3.12 in the alpine repository.
2024-08-27 11:03:55 -05:00
Charlie Marsh d86075fc1e
Add support for `--trusted-host` (#6591)
## Summary

This PR revives https://github.com/astral-sh/uv/pull/4944, which I think
was a good start towards adding `--trusted-host`. Last night, I tried to
add `--trusted-host` with a custom verifier, but we had to vendor a lot
of `reqwest` code and I eventually hit some private APIs. I'm not
confident that I can implement it correctly with that mechanism, and
since this is security, correctness is the priority.

So, instead, we now use two clients and multiplex between them.

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

## Test Plan

Created self-signed certificate, and ran `python3 -m http.server --bind
127.0.0.1 4443 --directory . --certfile cert.pem --keyfile key.pem` from
the packse index directory.

Verified that `cargo run pip install
transitive-yanked-and-unyanked-dependency-a-0abad3b6 --index-url
https://127.0.0.1:8443/simple-html` failed with:

```
error: Request failed after 3 retries
  Caused by: error sending request for url (https://127.0.0.1:8443/simple-html/transitive-yanked-and-unyanked-dependency-a-0abad3b6/)
  Caused by: client error (Connect)
  Caused by: invalid peer certificate: Other(OtherError(CaUsedAsEndEntity))
```

Verified that `cargo run pip install
transitive-yanked-and-unyanked-dependency-a-0abad3b6 --index-url
'https://127.0.0.1:8443/simple-html' --trusted-host '127.0.0.1:8443'`
failed with the expected error (invalid resolution) and made valid
requests.

Verified that `cargo run pip install
transitive-yanked-and-unyanked-dependency-a-0abad3b6 --index-url
'https://127.0.0.1:8443/simple-html' --trusted-host '127.0.0.2' -n` also
failed.
2024-08-27 09:36:50 -04:00
Karim Abou Zeid 5ef0375204
Fix docs for disabling build isolation with `uv sync` (#6674)
Self-explanatory
2024-08-27 08:49:59 -04:00
Zanie Blue 563e292c14
Add development section to Docker guide and reference new example project (#6666) 2024-08-27 06:41:44 -05:00
Mathieu Kniewallner fd17f6d902
docs: use `python` to highlight requirements and use more content tabs (#6549)
## Summary

It appears that using `python` for code blocks containing requirements
works quite well.

![Screenshot from 2024-08-23
23-23-05](https://github.com/user-attachments/assets/38c92ef7-1f5e-40eb-8ea4-7024c8180bc4)

![Screenshot from 2024-08-23
23-23-31](https://github.com/user-attachments/assets/940dc7d5-22a8-4cd8-b54a-d56542d4345c)

Also using more content tabs for cases where we need to differentiate
macOS/Linux from Windows.

## Test Plan

Local run of the documentation.
2024-08-27 06:05:14 -05:00
Zanie Blue 680dcc344c
Improve consistency of directory lookup instructions in Docker (#6665) 2024-08-26 20:39:25 -05:00
Zanie Blue 3949e5d30e
Shift the order of some of the Docker guide content (#6664) 2024-08-26 20:13:14 -05:00
Damian Shaw e44dc089b9
Clarify package priority order in pip compatibility guide (#6619)
This is a minor documentation update to a recently added section
"Package priority" in the pip compatibility guide. The aim of this PR is
clear up two things which I think the current paragraph implies but I
don't think are (always) true:

1. That pip doesn't use provided order to prioritize resolution
2. That uv relies solely on provided order to prioritize resolution

What is true, at least for now, is pip has more heuristics than uv to
prioritize during resolution, and so I've tried to rework this to make
it clear why changing the order might help uv come to a different
resolution whereas for pip it might not make a difference.
2024-08-26 20:07:44 -04:00
konsti ae57d85dfb
Detect musl and error for musl pbs builds (#6643)
As described in #4242, we're currently incorrectly downloading glibc
python-build-standalone on musl target, but we also can't fix this by
using musl python-build-standalone on musl targets since the musl builds
are effectively broken.

We reintroduce the libc detection previously removed in #2381, using it
to detect which libc is the current one before we have a python
interpreter. I changed the strategy a big to support an empty `PATH`
which we use in the tests.

For simplicity, i've decided to just filter out the musl
python-build-standalone archives from the list of available archive,
given this is temporary. This means we show the same error message as if
we don't have a build for the platform. We could also add a dedicated
error message for musl.

Fixes #4242

## Test Plan

Tested manually.

On my ubuntu host, python downloads continue to pass:
```
target/x86_64-unknown-linux-musl/debug/uv python install
```

On alpine, we fail:
```
$ docker run -it --rm -v .:/io alpine /io/target/x86_64-unknown-linux-musl/debug/uv python install
  Searching for Python installations
  error: No download found for request: cpython-any-linux-x86_64-musl
```
2024-08-27 00:06:53 +00:00
Charlie Marsh 1ae2c3f142
Respect `tool.uv.environments` in `pip compile --universal` (#6663)
## Summary

We now respect the `environments` field in `uv pip compile --universal`,
e.g.:

```toml
[tool.uv]
environments = ["platform_system == 'Emscripten'"]
```

Closes https://github.com/astral-sh/uv/issues/6641.
2024-08-26 23:58:17 +00:00
Di-Is 154ea243d0
Add docs for `constraint-dependencies` and `override-dependencies` (#6596)
Add missing portions of documents reported in #6518 and #5248(Comment).

## Summary

<img width="600" alt="override"
src="https://github.com/user-attachments/assets/062f0036-8672-4c68-b21c-aebdeb79b58b">

<img width="600" alt="constraint"
src="https://github.com/user-attachments/assets/f5ef1aa2-0662-4352-a1a0-3af1127fb7fb">
2024-08-26 23:40:06 +00:00
Charlie Marsh 39f3cd2a94
Bump version to v0.3.4 (#6656) 2024-08-26 16:51:01 -04:00
2*yo 900056105a
[Doc] Fix using uv temporarily on docker (#6657)
<!--
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? -->

The following Dockerfile command fails:

```
[...]
RUN --mount=from=uv,source=/uv,target=/bin/uv \
    cd /opt/opencti-connector-webhook && \
    uv pip install --system -r requirements.txt && \
    apk del git build-base
[...]
```
Result 

```
yo@opencti:~/connectors/stream/webhook$ docker build -t opencti/connector-webhook:d .
[+] Building 1.0s (3/3) FINISHED                                                                                                                                            docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                  0.1s
 => => transferring dockerfile: 557B                                                                                                                                                  0.1s
 => ERROR [internal] load metadata for docker.io/library/uv:latest                                                                                                                    0.8s
 => [internal] load metadata for docker.io/library/python:3.11-alpine                                                                                                                 0.8s
------
 > [internal] load metadata for docker.io/library/uv:latest:
------
ERROR: failed to solve: uv: failed to resolve source metadata for docker.io/library/uv:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
```

Fix:

```
[...]
RUN --mount=from=ghcr.io/astral-sh/uv,source=/uv,target=/bin/uv \
    cd /opt/opencti-connector-webhook && \
    uv pip install --system -r requirements.txt && \
    apk del git build-base
[...]
```


## Test Plan

<!-- How was it tested? -->
```
$ docker --version
Docker version 26.0.0, build 2ae903e
$ date
Mon Aug 26 20:31:53 UTC 2024

$ docker build -t opencti/connector-webhook:e .
[+] Building 41.8s (13/13) FINISHED                                                                                                                                         docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                  0.0s
 => => transferring dockerfile: 587B                                                                                                                                                  0.0s
 => [internal] load metadata for ghcr.io/astral-sh/uv:latest                                                                                                                          0.5s
 => [internal] load metadata for docker.io/library/python:3.11-alpine                                                                                                                 0.5s
 => [internal] load .dockerignore                                                                                                                                                     0.1s
 => => transferring context: 2B                                                                                                                                                       0.0s
 => [stage-0 1/6] FROM docker.io/library/python:3.11-alpine@sha256:700b4aa84090748aafb348fc042b5970abb0a73c8f1b4fcfe0f4e3c2a4a9fcca                                                   0.0s
 => [internal] load build context                                                                                                                                                     0.1s
 => => transferring context: 130B                                                                                                                                                     0.0s
 => CACHED FROM ghcr.io/astral-sh/uv:latest@sha256:f6b18f4a7408c5244374b00c8832089258d130f7a77a38807348072e714ffa0c                                                                   0.0s
 => CACHED [stage-0 2/6] COPY src /opt/opencti-connector-webhook                                                                                                                      0.0s
 => CACHED [stage-0 3/6] RUN apk --no-cache add git build-base libmagic libffi-dev libxml2-dev libxslt-dev                                                                            0.0s
 => [stage-0 4/6] RUN --mount=from=ghcr.io/astral-sh/uv,source=/uv,target=/bin/uv     cd /opt/opencti-connector-webhook &&     uv pip install --system -r requirements.txt    38.3s
 => [stage-0 5/6] COPY entrypoint.sh /                                                                                                                                                0.1s
 => [stage-0 6/6] RUN chmod +x /entrypoint.sh                                                                                                                                         0.8s
 => exporting to image                                                                                                                                                                1.7s
 => => exporting layers                                                                                                                                                               1.6s
 => => writing image sha256:aa6810f883d104c838f35e848c0d7d8b4df5c7c3929f18a88b7139d0ec892a0b                                                                                          0.0s
 => => naming to docker.io/opencti/connector-webhook:e                                                                                                                                0.0s
```
2024-08-26 15:36:38 -05:00
Zanie Blue 430cd3006e
Add tip to use intermediate layers (#6650) 2024-08-26 15:14:47 -05:00
Zanie Blue 330f5adf34
Move `WORKDIR` directive in Docker examples (#6652) 2024-08-26 15:09:01 -05:00
Zanie Blue a2290ff360
Remove duplicate `WORKDIR` directive in Docker example (#6651) 2024-08-26 14:42:46 -05:00
Charlie Marsh 486c9848a1
Add docs for disabling build isolation with `uv sync` (#6607)
## Summary

This requires some care, so worth documenting the intended workflows.

Closes https://github.com/astral-sh/uv/issues/6437.
2024-08-26 18:21:43 +00:00
Charlie Marsh 023acbe4b0
Avoid un-strict syncing by-default for build isolation (#6606)
## Summary

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

Closes https://github.com/astral-sh/uv/issues/6599.
2024-08-26 14:04:58 -04:00
Charlie Marsh 5b3e654dc9
Show `--editable` on the `uv add` CLI (#6608)
## Summary

`false` is the default, so like other booleans, we should show the
non-default.
2024-08-25 15:01:39 +00:00
Charlie Marsh 4cbec958e1
Add FastAPI guide to overview (#6603) 2024-08-25 13:11:10 +00:00
Charlie Marsh 8ee53a9e38
Clarify need to include `pyproject.toml` with `--no-install-project` (#6581)
## Summary

See: https://github.com/astral-sh/uv/issues/6573
2024-08-24 09:45:23 -04:00
skykasko 8ca64de67e
Add example of reading script from stdin using echo (#6567)
As a non-shell-wizard, I was unfamiliar with the `EOF` syntax used in
the existing example (just above the one I added). I thought including
an example where the output of `echo` is piped to `uv run` might be more
accessible. As a bonus, it should work across more shells: the `EOF`
example doesn't work in fish because fish [doesn't support
heredocs](https://fishshell.com/docs/current/fish_for_bash_users.html#heredocs),
while the `echo` example does.

Feel free to ignore if unwanted.
2024-08-24 00:03:59 -05:00
Zanie Blue deea6025a1
Bump version to 0.3.3 (#6558) 2024-08-23 18:35:55 -05:00
Zeyad Moustafa 2419760356
docs: made `uvx` note more explict (#6546)
<!--
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 used `uvx` to test my code using `pytest` it was just before the
documentation and it worked pretty fine. But when I saw the docs I was
confused as it says:

> If you are running a tool in a project and the tool requires that your
project is installed, e.g., when using `pytest` or `mypy`, you'll want
to use `uv` run instead of `uvx`. Otherwise, the tool will be run in a
virtual environment that is isolated from your project.

So to make it simple if you don't recommend using `uvx` in this
situation then here is the pull request, and if not just close this pull
request. I said that I don't have to open an issue to discuss this as
it's so simple.

## Test Plan

None

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-08-23 17:17:37 -05:00
Zanie Blue 60fc2e7234
Add uv tool install example in Docker (#6547) 2024-08-23 17:09:15 -05:00
Zanie Blue 6cf5d13183
Include virtual environment interpreters in `uv python find` (#6521)
Previously, we excluded these and only looked at system interpreters.
However, it makes sense for this to match the typical Python discovery
experience. We could consider swapping the default... I'm not sure what
makes more sense. If we change the default (as written now) — this could
arguably be a breaking change.
2024-08-23 21:06:57 +00:00
Zanie Blue d1cbcb30e3
Add `uv sync --no-install-package` to skip installation of specific packages (#6540)
Extends #6538 / #6539
See #4028

Allows excluding arbitrary packages from the sync.
2024-08-23 20:48:04 +00:00
Zanie Blue ca50243174
Add `uv sync --no-install-workspace` to skip installation of all workspace members (#6539)
Extends #6538
See #4028

Another version of https://github.com/astral-sh/uv/pull/6398
2024-08-23 20:39:33 +00:00
konsti 4e82db093a
Document why we do lower bounds (#6516)
Document in the resolution concept documentation why we add lower bounds

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2024-08-23 20:28:39 +00:00
Zanie Blue be1599ebf6
Add `uv sync --no-install-project` to skip installation of the project (#6538)
See #4028

A smaller version of https://github.com/astral-sh/uv/pull/6398

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-08-23 20:19:47 +00:00
Zanie Blue e0abab8259
Add documentation for `uv python find` (#6527)
In part, for https://github.com/astral-sh/uv/pull/6521
2024-08-23 15:14:52 -05:00
Charlie Marsh 9d1cd8e48c
Add `UV_COMPILE_BYTECODE` environment variable (#6530)
## Summary

Closes https://github.com/astral-sh/uv/issues/6493.
2024-08-23 18:05:32 +00:00
T-256 d0dda3798d
docs: Use proper environment variables for Windows (#6433)
ref: https://github.com/astral-sh/uv/issues/6397#issuecomment-2304512872
2024-08-23 13:04:08 -05:00
Billy Doyle 3f147eeb06
doc: add stdin to guide (#6531)
<!--
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? -->
Document in guide stdin usage

alllll the easter eggs can do as well, but declined to keep consistent
with the other examples 😆

Additions to https://github.com/astral-sh/uv/pull/6481

```bash
$ uv run - <<EOF               
import antigravity
EOF
```

## Test Plan

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


https://github.com/astral-sh/uv/pull/6519#issuecomment-2307371063 new PR
2024-08-23 11:18:49 -05:00
Zanie Blue 4cdca06db2
Add `--no-project` alias for `uv python pin --no-workspace` (#6514)
This matches the other interfaces and seems like an oversight.
2024-08-23 16:08:27 +00:00
Charlie Marsh 57f833c302
Respect `-` as stdin channel for `uv run` (#6481)
## Summary

Closes https://github.com/astral-sh/uv/issues/6467.
2024-08-23 11:49:56 -04:00