Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 30 additions & 27 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@ jobs:
UV_HTTP_RETRIES: 5
run: |
cargo nextest run \
--cargo-profile fast-build \
--features python-patch,native-auth,secret-service \
--workspace \
--status-level skip --failure-output immediate-final --no-fail-fast -j 20 --final-status-level slow
Expand Down Expand Up @@ -316,6 +317,7 @@ jobs:
UV_HTTP_RETRIES: 5
run: |
cargo nextest run \
--cargo-profile fast-build \
--no-default-features \
--features python,python-managed,pypi,git,performance,crates-io,native-auth,apple-native \
--workspace \
Expand Down Expand Up @@ -371,6 +373,7 @@ jobs:
shell: bash
run: |
cargo nextest run \
--cargo-profile fast-build \
--no-default-features \
--features python,pypi,python-managed,native-auth,windows-native \
--workspace \
Expand Down Expand Up @@ -539,15 +542,15 @@ jobs:
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0

- name: "Build"
run: cargo build
run: cargo build --profile fast-build

- name: "Upload binary"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: uv-linux-libc-${{ github.sha }}
path: |
./target/debug/uv
./target/debug/uvx
./target/fast-build/uv
./target/fast-build/uvx
retention-days: 1

build-binary-linux-aarch64:
Expand All @@ -566,15 +569,15 @@ jobs:
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0

- name: "Build"
run: cargo build
run: cargo build --profile fast-build

- name: "Upload binary"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: uv-linux-aarch64-${{ github.sha }}
path: |
./target/debug/uv
./target/debug/uvx
./target/fast-build/uv
./target/fast-build/uvx
retention-days: 1

build-binary-linux-musl:
Expand All @@ -598,15 +601,15 @@ jobs:
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0

- name: "Build"
run: cargo build --target x86_64-unknown-linux-musl --bin uv --bin uvx
run: cargo build --profile fast-build --target x86_64-unknown-linux-musl --bin uv --bin uvx

- name: "Upload binary"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: uv-linux-musl-${{ github.sha }}
path: |
./target/x86_64-unknown-linux-musl/debug/uv
./target/x86_64-unknown-linux-musl/debug/uvx
./target/x86_64-unknown-linux-musl/fast-build/uv
./target/x86_64-unknown-linux-musl/fast-build/uvx
retention-days: 1

build-binary-macos-aarch64:
Expand All @@ -624,15 +627,15 @@ jobs:

- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
- name: "Build"
run: cargo build --bin uv --bin uvx
run: cargo build --profile fast-build --bin uv --bin uvx

- name: "Upload binary"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: uv-macos-aarch64-${{ github.sha }}
path: |
./target/debug/uv
./target/debug/uvx
./target/fast-build/uv
./target/fast-build/uvx
retention-days: 1

build-binary-macos-x86_64:
Expand All @@ -650,15 +653,15 @@ jobs:

- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
- name: "Build"
run: cargo build --bin uv --bin uvx
run: cargo build --profile fast-build --bin uv --bin uvx

- name: "Upload binary"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: uv-macos-x86_64-${{ github.sha }}
path: |
./target/debug/uv
./target/debug/uvx
./target/fast-build/uv
./target/fast-build/uvx
retention-days: 1

build-binary-windows-x86_64:
Expand Down Expand Up @@ -686,15 +689,15 @@ jobs:

- name: "Build"
working-directory: ${{ env.UV_WORKSPACE }}
run: cargo build --bin uv --bin uvx
run: cargo build --profile fast-build --bin uv --bin uvx

- name: "Upload binary"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: uv-windows-x86_64-${{ github.sha }}
path: |
${{ env.UV_WORKSPACE }}/target/debug/uv.exe
${{ env.UV_WORKSPACE }}/target/debug/uvx.exe
${{ env.UV_WORKSPACE }}/target/fast-build/uv.exe
${{ env.UV_WORKSPACE }}/target/fast-build/uvx.exe
retention-days: 1

build-binary-windows-aarch64:
Expand Down Expand Up @@ -726,15 +729,15 @@ jobs:

- name: "Build"
working-directory: ${{ env.UV_WORKSPACE }}
run: cargo build --target aarch64-pc-windows-msvc
run: cargo build --profile fast-build --target aarch64-pc-windows-msvc

- name: "Upload binary"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: uv-windows-aarch64-${{ github.sha }}
path: |
${{ env.UV_WORKSPACE }}/target/aarch64-pc-windows-msvc/debug/uv.exe
${{ env.UV_WORKSPACE }}/target/aarch64-pc-windows-msvc/debug/uvx.exe
${{ env.UV_WORKSPACE }}/target/aarch64-pc-windows-msvc/fast-build/uv.exe
${{ env.UV_WORKSPACE }}/target/aarch64-pc-windows-msvc/fast-build/uvx.exe
retention-days: 1

build-binary-msrv:
Expand All @@ -759,10 +762,10 @@ jobs:
- name: "Install mold"
uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
- run: cargo +${MSRV} build
- run: cargo +${MSRV} build --profile fast-build
env:
MSRV: ${{ steps.msrv.outputs.value }}
- run: ./target/debug/uv --version
- run: ./target/fast-build/uv --version

build-binary-freebsd:
needs: determine_changes
Expand All @@ -783,7 +786,7 @@ jobs:
chmod +x cross
mv cross /usr/local/bin/cross

cross build --target x86_64-unknown-freebsd
cross build --target x86_64-unknown-freebsd --profile fast-build

- name: Test in Firecracker VM
uses: acj/freebsd-firecracker-action@a5a3fc1709c5b5368141a5699f10259aca3cd965 # v0.6.0
Expand All @@ -797,8 +800,8 @@ jobs:
cat <<EOF > $include_path
target
target/x86_64-unknown-freebsd
target/x86_64-unknown-freebsd/debug
target/x86_64-unknown-freebsd/debug/uv
target/x86_64-unknown-freebsd/fast-build
target/x86_64-unknown-freebsd/fast-build/uv
EOF

rsync -r -e "ssh" \
Expand All @@ -808,7 +811,7 @@ jobs:
--exclude "*" \
. firecracker:
run-in-vm: |
mv target/x86_64-unknown-freebsd/debug/uv uv
mv target/x86_64-unknown-freebsd/fast-build/uv uv
chmod +x uv
./uv --version

Expand Down
15 changes: 6 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
[![image](https://img.shields.io/pypi/v/uv.svg)](https://pypi.python.org/pypi/uv)
[![image](https://img.shields.io/pypi/l/uv.svg)](https://pypi.python.org/pypi/uv)
[![image](https://img.shields.io/pypi/pyversions/uv.svg)](https://pypi.python.org/pypi/uv)
[![Actions status](https://github.com/astral-sh/uv/actions/workflows/ci.yml/badge.svg)](https://github.com/astral-sh/uv/actions)
[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](https://discord.gg/astral-sh)

An extremely fast Python package and project manager, written in Rust.
Expand Down Expand Up @@ -192,14 +191,12 @@ uv installs Python and allows quickly switching between versions.
Install multiple Python versions:

```console
$ uv python install 3.10 3.11 3.12
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
+ cpython-3.10.14-macos-aarch64-none
+ cpython-3.11.9-macos-aarch64-none
+ cpython-3.12.4-macos-aarch64-none
$ uv python install 3.12 3.13 3.14
Installed 3 versions in 972ms
~ cpython-3.12.12-macos-aarch64-none (python3.12)
+ cpython-3.13.9-macos-aarch64-none (python3.13)
~ cpython-3.14.0-macos-aarch64-none (python3.14)

```

Download Python versions as needed:
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ classifiers = [
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development :: Quality Assurance",
"Topic :: Software Development :: Testing",
Expand Down
Loading