encode/httpx (httpx)
### [`v0.28.0`](https://redirect.github.com/encode/httpx/blob/HEAD/CHANGELOG.md#0280-28th-November-2024)
[Compare Source](https://redirect.github.com/encode/httpx/compare/0.27.2...0.28.0)
The 0.28 release includes a limited set of deprecations.
**Deprecations**:
We are working towards a simplified SSL configuration API.
*For users of the standard `verify=True` or `verify=False` cases, or `verify=` case this should require no changes. The following cases have been deprecated...*
- The `verify` argument as a string argument is now deprecated and will raise warnings.
- The `cert` argument is now deprecated and will raise warnings.
Our revised [SSL documentation](docs/advanced/ssl.md) covers how to implement the same behaviour with a more constrained API.
**The following changes are also included**:
- The deprecated `proxies` argument has now been removed.
- The deprecated `app` argument has now been removed.
- JSON request bodies use a compact representation. ([#3363](https://redirect.github.com/encode/httpx/issues/3363))
- Review URL percent escape sets, based on WHATWG spec. ([#3371](https://redirect.github.com/encode/httpx/issues/3371), [#3373](https://redirect.github.com/encode/httpx/issues/3373))
- Ensure `certifi` and `httpcore` are only imported if required. ([#3377](https://redirect.github.com/encode/httpx/issues/3377))
- Treat `socks5h` as a valid proxy scheme. ([#3178](https://redirect.github.com/encode/httpx/issues/3178))
- Cleanup `Request()` method signature in line with `client.request()` and `httpx.request()`. ([#3378](https://redirect.github.com/encode/httpx/issues/3378))
astral-sh/uv (uv)
### [`v0.5.5`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#055)
[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.4...0.5.5)
##### Enhancements
- Add aliases for build backend requests ([#9294](https://redirect.github.com/astral-sh/uv/pull/9294))
- Avoid displaying empty paths ([#9312](https://redirect.github.com/astral-sh/uv/pull/9312))
- Allow constraints in `uv tool upgrade` ([#9375](https://redirect.github.com/astral-sh/uv/pull/9375))
- Remove conflict between `--no-sync` and `--frozen` in `uv run` ([#9400](https://redirect.github.com/astral-sh/uv/pull/9400))
- Respect dependency sources in overrides and constraints ([#9455](https://redirect.github.com/astral-sh/uv/pull/9455))
- Show an interpreter-focused message for `--target` and `--prefix` ([#9373](https://redirect.github.com/astral-sh/uv/pull/9373))
- Add `--no-extra` flag and setting ([#9387](https://redirect.github.com/astral-sh/uv/pull/9387))
- Add `uv export --prune` ([#9389](https://redirect.github.com/astral-sh/uv/pull/9389))
- Add dedicated error message for musl install attempts ([#9430](https://redirect.github.com/astral-sh/uv/pull/9430))
- Add various grammar changes to conflict error messages ([#9369](https://redirect.github.com/astral-sh/uv/pull/9369))
- Annotate default groups in conflict error messages ([#9368](https://redirect.github.com/astral-sh/uv/pull/9368))
- Report marker diagnostics during parsing, rather than evaluation ([#9338](https://redirect.github.com/astral-sh/uv/pull/9338))
- Use consistent formatting for build system errors ([#9340](https://redirect.github.com/astral-sh/uv/pull/9340))
- Use rich diagnostics for build failures ([#9335](https://redirect.github.com/astral-sh/uv/pull/9335))
##### Preview features
- Improve build backend excludes ([#9281](https://redirect.github.com/astral-sh/uv/pull/9281))
- Include PEP 639 `license-files` metadata during `uv publish` ([#9442](https://redirect.github.com/astral-sh/uv/pull/9442))
##### Performance
- Initialize rayon lazily ([#9435](https://redirect.github.com/astral-sh/uv/pull/9435))
- Migrate to PubGrub's arena for package names ([#9448](https://redirect.github.com/astral-sh/uv/pull/9448))
##### Bug fixes
- Allow dependency groups to include the containing package ([#9385](https://redirect.github.com/astral-sh/uv/pull/9385))
- Allow syncing to empty virtual environment directories ([#9427](https://redirect.github.com/astral-sh/uv/pull/9427))
- Allow system Python discovery with `--target` and `--prefix` ([#9371](https://redirect.github.com/astral-sh/uv/pull/9371))
- Don't warn when `--output-file` is empty ([#9417](https://redirect.github.com/astral-sh/uv/pull/9417))
- Fix Python interpreter discovery on non-glibc hosts ([#9005](https://redirect.github.com/astral-sh/uv/pull/9005))
- Fix `tool.uv.dependency-metadata.[].version` schema ([#9468](https://redirect.github.com/astral-sh/uv/pull/9468))
- Only respect preferences across the same indexes ([#9302](https://redirect.github.com/astral-sh/uv/pull/9302))
- Re-compile when `--compile` is passed to an install operation ([#9378](https://redirect.github.com/astral-sh/uv/pull/9378))
- Remove `--upgrade`, `--no-upgrade`, and `--upgrade-package` from `uv tool upgrade` ([#9318](https://redirect.github.com/astral-sh/uv/pull/9318))
- Remove dev dependencies in `--all-groups --no-dev` ([#9300](https://redirect.github.com/astral-sh/uv/pull/9300))
- Surface extras and group conflicts in `uv export` ([#9365](https://redirect.github.com/astral-sh/uv/pull/9365))
- Treat deprecated aliases as equivalent in marker algebra ([#9342](https://redirect.github.com/astral-sh/uv/pull/9342))
- Treat less compatible tags as lower priority in resolver ([#9339](https://redirect.github.com/astral-sh/uv/pull/9339))
##### Documentation
- Avoid referencing `scikit-build` (instead of `scikit-build-core`) ([#9320](https://redirect.github.com/astral-sh/uv/pull/9320))
- Expand entry points documentation ([#9329](https://redirect.github.com/astral-sh/uv/pull/9329))
- Fix example `pyproject.toml` in project concept documentation ([#9298](https://redirect.github.com/astral-sh/uv/pull/9298))
- Fix header level of "Conflicting dependencies" page ([#9330](https://redirect.github.com/astral-sh/uv/pull/9330))
- Touch-up the extension module guide ([#9293](https://redirect.github.com/astral-sh/uv/pull/9293))
- Update the dependencies documentation ([#9359](https://redirect.github.com/astral-sh/uv/pull/9359))
- Reference `--no-progress` option in related environment variable ([#9357](https://redirect.github.com/astral-sh/uv/pull/9357))
### [`v0.5.4`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#054)
[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.3...0.5.4)
##### Enhancements
- Accept either singular or plural values for CLI requirements ([#9196](https://redirect.github.com/astral-sh/uv/pull/9196))
- Add `--all-groups` to `uv sync`, `uv run`, `uv export`, and `uv tree` ([#8892](https://redirect.github.com/astral-sh/uv/pull/8892))
- Add a progress bar to `uv tree --outdated` and `uv pip list --outdated` ([#9284](https://redirect.github.com/astral-sh/uv/pull/9284))
- Add retries for Python downloads ([#9274](https://redirect.github.com/astral-sh/uv/pull/9274))
- Use exponential backoff for publish retries ([#9276](https://redirect.github.com/astral-sh/uv/pull/9276))
- Add manylinux target triples up to glibc 2.40 ([#9234](https://redirect.github.com/astral-sh/uv/pull/9234))
##### Performance
- Parallelize network requests in `uv tree --outdated` ([#9280](https://redirect.github.com/astral-sh/uv/pull/9280))
- Use `zlib-rs` on all platforms ([#9264](https://redirect.github.com/astral-sh/uv/pull/9264))
##### Bug fixes
- Avoid validating extra and group sources in `build-system.requires` ([#9273](https://redirect.github.com/astral-sh/uv/pull/9273))
- Catch retries with wrapped `reqwest` errors ([#9253](https://redirect.github.com/astral-sh/uv/pull/9253))
- Sort hashes in `uv export` output ([#9237](https://redirect.github.com/astral-sh/uv/pull/9237))
- Strip `--index` and `--default-index` from command header ([#9288](https://redirect.github.com/astral-sh/uv/pull/9288))
##### Documentation
- Add breadcrumbs to the documentation ([#9242](https://redirect.github.com/astral-sh/uv/pull/9242))
- Add minimum version to PyTorch guide ([#9247](https://redirect.github.com/astral-sh/uv/pull/9247))
- Add support for anchor redirects with client-side js ([#9212](https://redirect.github.com/astral-sh/uv/pull/9212))
- Improve content on project configuration ([#9235](https://redirect.github.com/astral-sh/uv/pull/9235))
- Improve the project creation documentation ([#9236](https://redirect.github.com/astral-sh/uv/pull/9236))
- Move the integration guides into the "Guides" section as a collapsed group ([#9245](https://redirect.github.com/astral-sh/uv/pull/9245))
- Reorganize the project concept documentation ([#9121](https://redirect.github.com/astral-sh/uv/pull/9121))
- Use the full screen height for the main content to stabilize the nav ([#9153](https://redirect.github.com/astral-sh/uv/pull/9153))
##### Error messages
- Add dedicated warning for empty stdin ([#9256](https://redirect.github.com/astral-sh/uv/pull/9256))
### [`v0.5.3`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#053)
[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.2...0.5.3)
This release includes support for conflicting optional dependencies and dependency groups in the uv resolver, including the ability to specify dependency sources (like index assignment) on a per-extra or per-group basis.
For example, you can now select CPU-only vs. GPU-enabled PyTorch builds at runtime by defining conflicting extras in a `pyproject.toml`, and assigning different extras to different PyTorch indexes:
```toml
[project]
name = "project"
version = "0.1.0"
requires-python = ">=3.12.0"
[project.optional-dependencies]
```
### [`v0.5.2`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#052)
[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.1...0.5.2)
##### Enhancements
- Hide `--no-system` from `uv pip tree` CLI ([#9040](https://redirect.github.com/astral-sh/uv/pull/9040))
- Allow configuration of Python and PyPy install mirrors in `uv.toml` ([#8695](https://redirect.github.com/astral-sh/uv/pull/8695))
- Allow passing Python download mirrors to `uv python install` ([#8695](https://redirect.github.com/astral-sh/uv/pull/8695))
- Add support for specifying conflicting extras and dependency groups ([#8976](https://redirect.github.com/astral-sh/uv/pull/8976), [#9096](https://redirect.github.com/astral-sh/uv/pull/9096))
- Consistent colon usage in build failure errors ([#8994](https://redirect.github.com/astral-sh/uv/pull/8994))
- Show full derivation chain when encountering build failures ([#9108](https://redirect.github.com/astral-sh/uv/pull/9108))
- Show link we failed on parsing index pages ([#9118](https://redirect.github.com/astral-sh/uv/pull/9118))
- Remove duplicate log when searching for interpreters ([#9092](https://redirect.github.com/astral-sh/uv/pull/9092))
- Update uv development status classifier to "Stable" on PyPI ([#8943](https://redirect.github.com/astral-sh/uv/pull/8943))
- Use rich diagnostic formatting for early build failures ([#9041](https://redirect.github.com/astral-sh/uv/pull/9041))
- Use rich diagnostic formatting for install failures ([#9043](https://redirect.github.com/astral-sh/uv/pull/9043))
##### Performance
- Avoid retraversing filesystem when testing exact glob matches ([#9022](https://redirect.github.com/astral-sh/uv/pull/9022))
##### Bug fixes
- Allow `--no-build` to validate lock ([#9024](https://redirect.github.com/astral-sh/uv/pull/9024))
- Allow default indexes to be marked as explicit ([#8990](https://redirect.github.com/astral-sh/uv/pull/8990))
- Avoid creating `.venv` in `uv add --frozen` and `uv add --no-sync` ([#8980](https://redirect.github.com/astral-sh/uv/pull/8980))
- Avoid duplicating first-entry comments in `uv add` ([#9109](https://redirect.github.com/astral-sh/uv/pull/9109))
- Defer reporting of build failures in resolver ([#9098](https://redirect.github.com/astral-sh/uv/pull/9098))
- Fix references to `--resolution-strategy` in error message output ([#8971](https://redirect.github.com/astral-sh/uv/pull/8971))
- Ignore virtual environments in parent directories when choosing Python version for new projects ([#9075](https://redirect.github.com/astral-sh/uv/pull/9075))
- Forward SIGTERM to child processes in `uv run` ([#8933](https://redirect.github.com/astral-sh/uv/pull/8933))
- Prefer Python executable names that match the request over default names ([#9066](https://redirect.github.com/astral-sh/uv/pull/9066))
- Prefer compatible to incompatible distributions when packages exist on multiple indexes ([#8961](https://redirect.github.com/astral-sh/uv/pull/8961))
- Publish: Ignore non-matching files ([#8986](https://redirect.github.com/astral-sh/uv/pull/8986))
- Revert `uv.lock` changes when `uv add` fails ([#9030](https://redirect.github.com/astral-sh/uv/pull/9030))
- Show file extensions on available commands when not `.exe` ([#9099](https://redirect.github.com/astral-sh/uv/pull/9099))
- Sort by name, then specifiers in `uv add` ([#9097](https://redirect.github.com/astral-sh/uv/pull/9097))
- Split after specifiers in `--with` requirements ([#9089](https://redirect.github.com/astral-sh/uv/pull/9089))
- Support multiple extras in universal pip compile output ([#8960](https://redirect.github.com/astral-sh/uv/pull/8960))
##### Preview features
- Build backend: Add tests for source tree -> source dist -> wheel conversions ([#9091](https://redirect.github.com/astral-sh/uv/pull/9091))
- Build backend: Switch to custom `glob-walkdir` implementation ([#9013](https://redirect.github.com/astral-sh/uv/pull/9013))
- Build backend: Add minimal wheel settings ([#9085](https://redirect.github.com/astral-sh/uv/pull/9085))
##### Documentation
- Add wget instructions for systems without curl ([#8630](https://redirect.github.com/astral-sh/uv/pull/8630))
- Fix `.env` file example in docs ([#9064](https://redirect.github.com/astral-sh/uv/pull/9064))
- Fix reference to `--resolution` in docs ([#8968](https://redirect.github.com/astral-sh/uv/pull/8968))
- Fix typo in GitLab integration docs ([#9047](https://redirect.github.com/astral-sh/uv/pull/9047))
- Update format of environment variable reference ([#9018](https://redirect.github.com/astral-sh/uv/pull/9018))
- Use Python syntax for `value_type` consistently ([#9017](https://redirect.github.com/astral-sh/uv/pull/9017))
- Use `[[index]]` API in configuration example ([#9065](https://redirect.github.com/astral-sh/uv/pull/9065))
- Mention how to use extras ([#8972](https://redirect.github.com/astral-sh/uv/pull/8972))
- Add some words about specifying conflicting extras/groups ([#9120](https://redirect.github.com/astral-sh/uv/pull/9120))
### [`v0.5.1`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#051)
[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.0...0.5.1)
##### Enhancements
- Allow installation of manylinux wheels on `riscv64` ([#8934](https://redirect.github.com/astral-sh/uv/pull/8934))
##### Bug fixes
- Build source distributions at top-level of cache ([#8905](https://redirect.github.com/astral-sh/uv/pull/8905))
- Allow non-registry dependencies in `uv pip list --outdated` ([#8939](https://redirect.github.com/astral-sh/uv/pull/8939))
- Compute superset of existing and required hashes when healing cache ([#8955](https://redirect.github.com/astral-sh/uv/pull/8955))
- Enable uv to replace and delete itself on Windows ([#8914](https://redirect.github.com/astral-sh/uv/pull/8914))
- Remove source distribution filename from cache ([#8907](https://redirect.github.com/astral-sh/uv/pull/8907))
- Respect `--index-url` in `uv pip list` ([#8942](https://redirect.github.com/astral-sh/uv/pull/8942))
- Respect comma-separated extras in `--with` ([#8946](https://redirect.github.com/astral-sh/uv/pull/8946))
##### Documentation
- Add uninstall note for previous versions ([#8937](https://redirect.github.com/astral-sh/uv/pull/8937))
- Remove some missed references to `~/.cargo/bin` ([#8936](https://redirect.github.com/astral-sh/uv/pull/8936))
- Split README's install code block into 3 ([#8853](https://redirect.github.com/astral-sh/uv/pull/8853))
### [`v0.5.0`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#050)
[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.4.30...0.5.0)
Since the launch of Python version, project, and tool management capabilities back in August, we've seen extraordinary adoption of uv. We've been iterating rapidly: adding new features, fixing bugs, and improving the user experience. Despite moving quickly, stability and compatibility have been a major focus — we've made thirty releases since our last breaking change. Consequently, we've accumulated various changes that improve correctness and user experience, but could break some workflows. This release contains those changes; many have been marked as breaking out of an abundance of caution. We expect most users to be able to upgrade without making changes.
##### Breaking
- **Use base executable to set virtualenv Python path** ([#8481](https://redirect.github.com/astral-sh/uv/pull/8481))
Previously, uv canonicalized the path to the Python executable when setting the Python path in created virtual environments. This behavior had several undesirable effects: it would bypass stabilized version directories (as constructed by Homebrew) and it was not consistent with the Python standard library's behavior. Now, uv uses the `sys._base_executable` path.
- **Use XDG (i.e. `~/.local/bin`) instead of the Cargo home directory in the installer** ([#8420](https://redirect.github.com/astral-sh/uv/pull/8420))
Previously, uv's installer used `$CARGO_HOME` or `~/.cargo/bin` for its target install directory. It's been a longstanding complaint that uv uses this directory, as there's no relationship to Cargo. Now, uv will be installed into `$XDG_BIN_HOME`, `$XDG_DATA_HOME/../bin`, or `~/.local/bin` (in that order). Note that `$UV_INSTALL_DIR` can always be used to override the target directory.
- **Discover and respect `.python-version` files in parent directories** ([#6370](https://redirect.github.com/astral-sh/uv/pull/6370))
Previously, uv only read `.python-version` files from the working directory. Now, uv will check parent directories for `.python-version` files; however uv will not search for `.python-version` files beyond project boundaries. The new behavior is better aligned with that of `pyenv` and Rye.
- **Error when disallowed settings are defined in `uv.toml`** ([#8550](https://redirect.github.com/astral-sh/uv/pull/8550))
Some settings can only be defined in the `pyproject.toml`. Previously, uv would ignore these settings when present in the `uv.toml`. Now, uv will error to avoid confusion about why the settings are not respected.
- **Implement PEP 440-compliant local version semantics** ([#8797](https://redirect.github.com/astral-sh/uv/pull/8797))
Previously, uv's implementation of local versions (e.g. `2.0+cpu`) was not compliant with the specification due to the technical complexity of implementing the local version semantics in the PubGrub algorithm. Thanks to the work of [@ericmarkmartin](https://redirect.github.com/ericmarkmartin), uv now has a spec-compliant implementation. Namely, uv will now allow a request for `torch==2.1.0` to install `torch@2.1.0+cpu` regardless of whether `torch@2.1.0` (without a local tag) actually exists.
- **Treat the base Conda environment as a system environment** ([#7691](https://redirect.github.com/astral-sh/uv/pull/7691))
Previously, uv would not distinguish between the base and other Conda environments. Now, uv uses `CONDA_DEFAULT_ENV` and the names `base` and `default` to determine if an environment active via `CONDA_PREFIX` is the base environment. If the base environment is active, the `--system` flag must be used to mutate it.
- **Do not allow pre-releases when the `!=` operator is used** ([#7974](https://redirect.github.com/astral-sh/uv/pull/7974))
Previously, uv would use the presence of a pre-release specifier in a version specifier as an opt-in to allow pre-release versions during resolution. The new behavior does not allow pre-releases when an inequals operator is used, e.g., `!= 2.0a1`.
- **Prefer `USERPROFILE` over `FOLDERID_Profile` when selecting a home directory on Windows** ([#8048](https://redirect.github.com/astral-sh/uv/pull/8048))
This change is a side-effect of switching from the `directories` crate to `etcetera` for determining canonical system paths. If `USERPROFILE` is not set, the behavior will be unchanged.
- **Improve interactions between color environment variables and CLI options** ([#8215](https://redirect.github.com/astral-sh/uv/pull/8215))
Previously, uv would respect the `FORCE_COLOR` and `NO_COLOR` environment variables over the `--color` flag. Now, when the `--color` flag is explicitly provided, uv will respect it over the environment variables.
- **Make `allow-insecure-host` a global option** ([#8476](https://redirect.github.com/astral-sh/uv/pull/8476))
Previously, this option was only available in some parts of uv. Now, `--allow-insecure-host` can be provided to any command. For consistency, the `allow-insecure-host` setting has been removed from the `[tool.uv.pip]` configuration in favor of `[tool.uv]`.
- **Only write `.python-version` files during `uv init` for workspace members if the version differs** ([#8897](https://redirect.github.com/astral-sh/uv/pull/8897))
Previously, uv would create a `.python-version` file for workspace members during `uv init`. Now, uv will only do so if the version differs from the `.python-version` file in the workspace root since uv will respect `.python-version` files in parent directories.
##### Enhancements
- Add `uv tree --outdated` ([#8893](https://redirect.github.com/astral-sh/uv/pull/8893))
- Add armv8l alias for armv7l to support arm 32-bit compatibility mode ([#8881](https://redirect.github.com/astral-sh/uv/pull/8881))
- Add support for `pip list --outdated` ([#8872](https://redirect.github.com/astral-sh/uv/pull/8872))
- Allow semicolons directly after direct URLs ([#8836](https://redirect.github.com/astral-sh/uv/pull/8836))
- Enable support for arbitrary git transports ([#8769](https://redirect.github.com/astral-sh/uv/pull/8769))
- Improve Python discovery source messages ([#8890](https://redirect.github.com/astral-sh/uv/pull/8890))
- Show dedicated error for trailing `;` on URL and path requirements ([#8835](https://redirect.github.com/astral-sh/uv/pull/8835))
- Add progress bar for `uv cache clean` ([#8857](https://redirect.github.com/astral-sh/uv/pull/8857))
- Warn on failure to query system configuration file ([#8829](https://redirect.github.com/astral-sh/uv/pull/8829))
##### Preview features
- Add support for building basic source distributions with the experimental uv build backend ([#8886](https://redirect.github.com/astral-sh/uv/pull/8886))
##### Bug fixes
- Respect dynamic version updates in `uv lock` ([#8867](https://redirect.github.com/astral-sh/uv/pull/8867))
- Respect fork markers in `--resolution-mode=lowest-direct` ([#8839](https://redirect.github.com/astral-sh/uv/pull/8839))
##### Documentation
- Add further examples of git+https support ([#8841](https://redirect.github.com/astral-sh/uv/pull/8841))
- Add installer variables to environment reference ([#8874](https://redirect.github.com/astral-sh/uv/pull/8874))
- Add note on private classifier ([#8783](https://redirect.github.com/astral-sh/uv/pull/8783))
- Update pip-and-uv strictness example ([#8822](https://redirect.github.com/astral-sh/uv/pull/8822))
- Fix `uv python install` docs to use an existing PyPy version ([#8845](https://redirect.github.com/astral-sh/uv/pull/8845))
- Document how to mimic `--verbose` with `RUST_LOG` ([#8858](https://redirect.github.com/astral-sh/uv/pull/8858))
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^0.27.0
->^0.28.0
^0.4.2
->^0.5.0
Release Notes
encode/httpx (httpx)
### [`v0.28.0`](https://redirect.github.com/encode/httpx/blob/HEAD/CHANGELOG.md#0280-28th-November-2024) [Compare Source](https://redirect.github.com/encode/httpx/compare/0.27.2...0.28.0) The 0.28 release includes a limited set of deprecations. **Deprecations**: We are working towards a simplified SSL configuration API. *For users of the standard `verify=True` or `verify=False` cases, or `verify=astral-sh/uv (uv)
### [`v0.5.5`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#055) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.4...0.5.5) ##### Enhancements - Add aliases for build backend requests ([#9294](https://redirect.github.com/astral-sh/uv/pull/9294)) - Avoid displaying empty paths ([#9312](https://redirect.github.com/astral-sh/uv/pull/9312)) - Allow constraints in `uv tool upgrade` ([#9375](https://redirect.github.com/astral-sh/uv/pull/9375)) - Remove conflict between `--no-sync` and `--frozen` in `uv run` ([#9400](https://redirect.github.com/astral-sh/uv/pull/9400)) - Respect dependency sources in overrides and constraints ([#9455](https://redirect.github.com/astral-sh/uv/pull/9455)) - Show an interpreter-focused message for `--target` and `--prefix` ([#9373](https://redirect.github.com/astral-sh/uv/pull/9373)) - Add `--no-extra` flag and setting ([#9387](https://redirect.github.com/astral-sh/uv/pull/9387)) - Add `uv export --prune` ([#9389](https://redirect.github.com/astral-sh/uv/pull/9389)) - Add dedicated error message for musl install attempts ([#9430](https://redirect.github.com/astral-sh/uv/pull/9430)) - Add various grammar changes to conflict error messages ([#9369](https://redirect.github.com/astral-sh/uv/pull/9369)) - Annotate default groups in conflict error messages ([#9368](https://redirect.github.com/astral-sh/uv/pull/9368)) - Report marker diagnostics during parsing, rather than evaluation ([#9338](https://redirect.github.com/astral-sh/uv/pull/9338)) - Use consistent formatting for build system errors ([#9340](https://redirect.github.com/astral-sh/uv/pull/9340)) - Use rich diagnostics for build failures ([#9335](https://redirect.github.com/astral-sh/uv/pull/9335)) ##### Preview features - Improve build backend excludes ([#9281](https://redirect.github.com/astral-sh/uv/pull/9281)) - Include PEP 639 `license-files` metadata during `uv publish` ([#9442](https://redirect.github.com/astral-sh/uv/pull/9442)) ##### Performance - Initialize rayon lazily ([#9435](https://redirect.github.com/astral-sh/uv/pull/9435)) - Migrate to PubGrub's arena for package names ([#9448](https://redirect.github.com/astral-sh/uv/pull/9448)) ##### Bug fixes - Allow dependency groups to include the containing package ([#9385](https://redirect.github.com/astral-sh/uv/pull/9385)) - Allow syncing to empty virtual environment directories ([#9427](https://redirect.github.com/astral-sh/uv/pull/9427)) - Allow system Python discovery with `--target` and `--prefix` ([#9371](https://redirect.github.com/astral-sh/uv/pull/9371)) - Don't warn when `--output-file` is empty ([#9417](https://redirect.github.com/astral-sh/uv/pull/9417)) - Fix Python interpreter discovery on non-glibc hosts ([#9005](https://redirect.github.com/astral-sh/uv/pull/9005)) - Fix `tool.uv.dependency-metadata.[].version` schema ([#9468](https://redirect.github.com/astral-sh/uv/pull/9468)) - Only respect preferences across the same indexes ([#9302](https://redirect.github.com/astral-sh/uv/pull/9302)) - Re-compile when `--compile` is passed to an install operation ([#9378](https://redirect.github.com/astral-sh/uv/pull/9378)) - Remove `--upgrade`, `--no-upgrade`, and `--upgrade-package` from `uv tool upgrade` ([#9318](https://redirect.github.com/astral-sh/uv/pull/9318)) - Remove dev dependencies in `--all-groups --no-dev` ([#9300](https://redirect.github.com/astral-sh/uv/pull/9300)) - Surface extras and group conflicts in `uv export` ([#9365](https://redirect.github.com/astral-sh/uv/pull/9365)) - Treat deprecated aliases as equivalent in marker algebra ([#9342](https://redirect.github.com/astral-sh/uv/pull/9342)) - Treat less compatible tags as lower priority in resolver ([#9339](https://redirect.github.com/astral-sh/uv/pull/9339)) ##### Documentation - Avoid referencing `scikit-build` (instead of `scikit-build-core`) ([#9320](https://redirect.github.com/astral-sh/uv/pull/9320)) - Expand entry points documentation ([#9329](https://redirect.github.com/astral-sh/uv/pull/9329)) - Fix example `pyproject.toml` in project concept documentation ([#9298](https://redirect.github.com/astral-sh/uv/pull/9298)) - Fix header level of "Conflicting dependencies" page ([#9330](https://redirect.github.com/astral-sh/uv/pull/9330)) - Touch-up the extension module guide ([#9293](https://redirect.github.com/astral-sh/uv/pull/9293)) - Update the dependencies documentation ([#9359](https://redirect.github.com/astral-sh/uv/pull/9359)) - Reference `--no-progress` option in related environment variable ([#9357](https://redirect.github.com/astral-sh/uv/pull/9357)) ### [`v0.5.4`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#054) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.3...0.5.4) ##### Enhancements - Accept either singular or plural values for CLI requirements ([#9196](https://redirect.github.com/astral-sh/uv/pull/9196)) - Add `--all-groups` to `uv sync`, `uv run`, `uv export`, and `uv tree` ([#8892](https://redirect.github.com/astral-sh/uv/pull/8892)) - Add a progress bar to `uv tree --outdated` and `uv pip list --outdated` ([#9284](https://redirect.github.com/astral-sh/uv/pull/9284)) - Add retries for Python downloads ([#9274](https://redirect.github.com/astral-sh/uv/pull/9274)) - Use exponential backoff for publish retries ([#9276](https://redirect.github.com/astral-sh/uv/pull/9276)) - Add manylinux target triples up to glibc 2.40 ([#9234](https://redirect.github.com/astral-sh/uv/pull/9234)) ##### Performance - Parallelize network requests in `uv tree --outdated` ([#9280](https://redirect.github.com/astral-sh/uv/pull/9280)) - Use `zlib-rs` on all platforms ([#9264](https://redirect.github.com/astral-sh/uv/pull/9264)) ##### Bug fixes - Avoid validating extra and group sources in `build-system.requires` ([#9273](https://redirect.github.com/astral-sh/uv/pull/9273)) - Catch retries with wrapped `reqwest` errors ([#9253](https://redirect.github.com/astral-sh/uv/pull/9253)) - Sort hashes in `uv export` output ([#9237](https://redirect.github.com/astral-sh/uv/pull/9237)) - Strip `--index` and `--default-index` from command header ([#9288](https://redirect.github.com/astral-sh/uv/pull/9288)) ##### Documentation - Add breadcrumbs to the documentation ([#9242](https://redirect.github.com/astral-sh/uv/pull/9242)) - Add minimum version to PyTorch guide ([#9247](https://redirect.github.com/astral-sh/uv/pull/9247)) - Add support for anchor redirects with client-side js ([#9212](https://redirect.github.com/astral-sh/uv/pull/9212)) - Improve content on project configuration ([#9235](https://redirect.github.com/astral-sh/uv/pull/9235)) - Improve the project creation documentation ([#9236](https://redirect.github.com/astral-sh/uv/pull/9236)) - Move the integration guides into the "Guides" section as a collapsed group ([#9245](https://redirect.github.com/astral-sh/uv/pull/9245)) - Reorganize the project concept documentation ([#9121](https://redirect.github.com/astral-sh/uv/pull/9121)) - Use the full screen height for the main content to stabilize the nav ([#9153](https://redirect.github.com/astral-sh/uv/pull/9153)) ##### Error messages - Add dedicated warning for empty stdin ([#9256](https://redirect.github.com/astral-sh/uv/pull/9256)) ### [`v0.5.3`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#053) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.2...0.5.3) This release includes support for conflicting optional dependencies and dependency groups in the uv resolver, including the ability to specify dependency sources (like index assignment) on a per-extra or per-group basis. For example, you can now select CPU-only vs. GPU-enabled PyTorch builds at runtime by defining conflicting extras in a `pyproject.toml`, and assigning different extras to different PyTorch indexes: ```toml [project] name = "project" version = "0.1.0" requires-python = ">=3.12.0" [project.optional-dependencies] ``` ### [`v0.5.2`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#052) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.1...0.5.2) ##### Enhancements - Hide `--no-system` from `uv pip tree` CLI ([#9040](https://redirect.github.com/astral-sh/uv/pull/9040)) - Allow configuration of Python and PyPy install mirrors in `uv.toml` ([#8695](https://redirect.github.com/astral-sh/uv/pull/8695)) - Allow passing Python download mirrors to `uv python install` ([#8695](https://redirect.github.com/astral-sh/uv/pull/8695)) - Add support for specifying conflicting extras and dependency groups ([#8976](https://redirect.github.com/astral-sh/uv/pull/8976), [#9096](https://redirect.github.com/astral-sh/uv/pull/9096)) - Consistent colon usage in build failure errors ([#8994](https://redirect.github.com/astral-sh/uv/pull/8994)) - Show full derivation chain when encountering build failures ([#9108](https://redirect.github.com/astral-sh/uv/pull/9108)) - Show link we failed on parsing index pages ([#9118](https://redirect.github.com/astral-sh/uv/pull/9118)) - Remove duplicate log when searching for interpreters ([#9092](https://redirect.github.com/astral-sh/uv/pull/9092)) - Update uv development status classifier to "Stable" on PyPI ([#8943](https://redirect.github.com/astral-sh/uv/pull/8943)) - Use rich diagnostic formatting for early build failures ([#9041](https://redirect.github.com/astral-sh/uv/pull/9041)) - Use rich diagnostic formatting for install failures ([#9043](https://redirect.github.com/astral-sh/uv/pull/9043)) ##### Performance - Avoid retraversing filesystem when testing exact glob matches ([#9022](https://redirect.github.com/astral-sh/uv/pull/9022)) ##### Bug fixes - Allow `--no-build` to validate lock ([#9024](https://redirect.github.com/astral-sh/uv/pull/9024)) - Allow default indexes to be marked as explicit ([#8990](https://redirect.github.com/astral-sh/uv/pull/8990)) - Avoid creating `.venv` in `uv add --frozen` and `uv add --no-sync` ([#8980](https://redirect.github.com/astral-sh/uv/pull/8980)) - Avoid duplicating first-entry comments in `uv add` ([#9109](https://redirect.github.com/astral-sh/uv/pull/9109)) - Defer reporting of build failures in resolver ([#9098](https://redirect.github.com/astral-sh/uv/pull/9098)) - Fix references to `--resolution-strategy` in error message output ([#8971](https://redirect.github.com/astral-sh/uv/pull/8971)) - Ignore virtual environments in parent directories when choosing Python version for new projects ([#9075](https://redirect.github.com/astral-sh/uv/pull/9075)) - Forward SIGTERM to child processes in `uv run` ([#8933](https://redirect.github.com/astral-sh/uv/pull/8933)) - Prefer Python executable names that match the request over default names ([#9066](https://redirect.github.com/astral-sh/uv/pull/9066)) - Prefer compatible to incompatible distributions when packages exist on multiple indexes ([#8961](https://redirect.github.com/astral-sh/uv/pull/8961)) - Publish: Ignore non-matching files ([#8986](https://redirect.github.com/astral-sh/uv/pull/8986)) - Revert `uv.lock` changes when `uv add` fails ([#9030](https://redirect.github.com/astral-sh/uv/pull/9030)) - Show file extensions on available commands when not `.exe` ([#9099](https://redirect.github.com/astral-sh/uv/pull/9099)) - Sort by name, then specifiers in `uv add` ([#9097](https://redirect.github.com/astral-sh/uv/pull/9097)) - Split after specifiers in `--with` requirements ([#9089](https://redirect.github.com/astral-sh/uv/pull/9089)) - Support multiple extras in universal pip compile output ([#8960](https://redirect.github.com/astral-sh/uv/pull/8960)) ##### Preview features - Build backend: Add tests for source tree -> source dist -> wheel conversions ([#9091](https://redirect.github.com/astral-sh/uv/pull/9091)) - Build backend: Switch to custom `glob-walkdir` implementation ([#9013](https://redirect.github.com/astral-sh/uv/pull/9013)) - Build backend: Add minimal wheel settings ([#9085](https://redirect.github.com/astral-sh/uv/pull/9085)) ##### Documentation - Add wget instructions for systems without curl ([#8630](https://redirect.github.com/astral-sh/uv/pull/8630)) - Fix `.env` file example in docs ([#9064](https://redirect.github.com/astral-sh/uv/pull/9064)) - Fix reference to `--resolution` in docs ([#8968](https://redirect.github.com/astral-sh/uv/pull/8968)) - Fix typo in GitLab integration docs ([#9047](https://redirect.github.com/astral-sh/uv/pull/9047)) - Update format of environment variable reference ([#9018](https://redirect.github.com/astral-sh/uv/pull/9018)) - Use Python syntax for `value_type` consistently ([#9017](https://redirect.github.com/astral-sh/uv/pull/9017)) - Use `[[index]]` API in configuration example ([#9065](https://redirect.github.com/astral-sh/uv/pull/9065)) - Mention how to use extras ([#8972](https://redirect.github.com/astral-sh/uv/pull/8972)) - Add some words about specifying conflicting extras/groups ([#9120](https://redirect.github.com/astral-sh/uv/pull/9120)) ### [`v0.5.1`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#051) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.5.0...0.5.1) ##### Enhancements - Allow installation of manylinux wheels on `riscv64` ([#8934](https://redirect.github.com/astral-sh/uv/pull/8934)) ##### Bug fixes - Build source distributions at top-level of cache ([#8905](https://redirect.github.com/astral-sh/uv/pull/8905)) - Allow non-registry dependencies in `uv pip list --outdated` ([#8939](https://redirect.github.com/astral-sh/uv/pull/8939)) - Compute superset of existing and required hashes when healing cache ([#8955](https://redirect.github.com/astral-sh/uv/pull/8955)) - Enable uv to replace and delete itself on Windows ([#8914](https://redirect.github.com/astral-sh/uv/pull/8914)) - Remove source distribution filename from cache ([#8907](https://redirect.github.com/astral-sh/uv/pull/8907)) - Respect `--index-url` in `uv pip list` ([#8942](https://redirect.github.com/astral-sh/uv/pull/8942)) - Respect comma-separated extras in `--with` ([#8946](https://redirect.github.com/astral-sh/uv/pull/8946)) ##### Documentation - Add uninstall note for previous versions ([#8937](https://redirect.github.com/astral-sh/uv/pull/8937)) - Remove some missed references to `~/.cargo/bin` ([#8936](https://redirect.github.com/astral-sh/uv/pull/8936)) - Split README's install code block into 3 ([#8853](https://redirect.github.com/astral-sh/uv/pull/8853)) ### [`v0.5.0`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#050) [Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.4.30...0.5.0) Since the launch of Python version, project, and tool management capabilities back in August, we've seen extraordinary adoption of uv. We've been iterating rapidly: adding new features, fixing bugs, and improving the user experience. Despite moving quickly, stability and compatibility have been a major focus — we've made thirty releases since our last breaking change. Consequently, we've accumulated various changes that improve correctness and user experience, but could break some workflows. This release contains those changes; many have been marked as breaking out of an abundance of caution. We expect most users to be able to upgrade without making changes. ##### Breaking - **Use base executable to set virtualenv Python path** ([#8481](https://redirect.github.com/astral-sh/uv/pull/8481)) Previously, uv canonicalized the path to the Python executable when setting the Python path in created virtual environments. This behavior had several undesirable effects: it would bypass stabilized version directories (as constructed by Homebrew) and it was not consistent with the Python standard library's behavior. Now, uv uses the `sys._base_executable` path. - **Use XDG (i.e. `~/.local/bin`) instead of the Cargo home directory in the installer** ([#8420](https://redirect.github.com/astral-sh/uv/pull/8420)) Previously, uv's installer used `$CARGO_HOME` or `~/.cargo/bin` for its target install directory. It's been a longstanding complaint that uv uses this directory, as there's no relationship to Cargo. Now, uv will be installed into `$XDG_BIN_HOME`, `$XDG_DATA_HOME/../bin`, or `~/.local/bin` (in that order). Note that `$UV_INSTALL_DIR` can always be used to override the target directory. - **Discover and respect `.python-version` files in parent directories** ([#6370](https://redirect.github.com/astral-sh/uv/pull/6370)) Previously, uv only read `.python-version` files from the working directory. Now, uv will check parent directories for `.python-version` files; however uv will not search for `.python-version` files beyond project boundaries. The new behavior is better aligned with that of `pyenv` and Rye. - **Error when disallowed settings are defined in `uv.toml`** ([#8550](https://redirect.github.com/astral-sh/uv/pull/8550)) Some settings can only be defined in the `pyproject.toml`. Previously, uv would ignore these settings when present in the `uv.toml`. Now, uv will error to avoid confusion about why the settings are not respected. - **Implement PEP 440-compliant local version semantics** ([#8797](https://redirect.github.com/astral-sh/uv/pull/8797)) Previously, uv's implementation of local versions (e.g. `2.0+cpu`) was not compliant with the specification due to the technical complexity of implementing the local version semantics in the PubGrub algorithm. Thanks to the work of [@ericmarkmartin](https://redirect.github.com/ericmarkmartin), uv now has a spec-compliant implementation. Namely, uv will now allow a request for `torch==2.1.0` to install `torch@2.1.0+cpu` regardless of whether `torch@2.1.0` (without a local tag) actually exists. - **Treat the base Conda environment as a system environment** ([#7691](https://redirect.github.com/astral-sh/uv/pull/7691)) Previously, uv would not distinguish between the base and other Conda environments. Now, uv uses `CONDA_DEFAULT_ENV` and the names `base` and `default` to determine if an environment active via `CONDA_PREFIX` is the base environment. If the base environment is active, the `--system` flag must be used to mutate it. - **Do not allow pre-releases when the `!=` operator is used** ([#7974](https://redirect.github.com/astral-sh/uv/pull/7974)) Previously, uv would use the presence of a pre-release specifier in a version specifier as an opt-in to allow pre-release versions during resolution. The new behavior does not allow pre-releases when an inequals operator is used, e.g., `!= 2.0a1`. - **Prefer `USERPROFILE` over `FOLDERID_Profile` when selecting a home directory on Windows** ([#8048](https://redirect.github.com/astral-sh/uv/pull/8048)) This change is a side-effect of switching from the `directories` crate to `etcetera` for determining canonical system paths. If `USERPROFILE` is not set, the behavior will be unchanged. - **Improve interactions between color environment variables and CLI options** ([#8215](https://redirect.github.com/astral-sh/uv/pull/8215)) Previously, uv would respect the `FORCE_COLOR` and `NO_COLOR` environment variables over the `--color` flag. Now, when the `--color` flag is explicitly provided, uv will respect it over the environment variables. - **Make `allow-insecure-host` a global option** ([#8476](https://redirect.github.com/astral-sh/uv/pull/8476)) Previously, this option was only available in some parts of uv. Now, `--allow-insecure-host` can be provided to any command. For consistency, the `allow-insecure-host` setting has been removed from the `[tool.uv.pip]` configuration in favor of `[tool.uv]`. - **Only write `.python-version` files during `uv init` for workspace members if the version differs** ([#8897](https://redirect.github.com/astral-sh/uv/pull/8897)) Previously, uv would create a `.python-version` file for workspace members during `uv init`. Now, uv will only do so if the version differs from the `.python-version` file in the workspace root since uv will respect `.python-version` files in parent directories. ##### Enhancements - Add `uv tree --outdated` ([#8893](https://redirect.github.com/astral-sh/uv/pull/8893)) - Add armv8l alias for armv7l to support arm 32-bit compatibility mode ([#8881](https://redirect.github.com/astral-sh/uv/pull/8881)) - Add support for `pip list --outdated` ([#8872](https://redirect.github.com/astral-sh/uv/pull/8872)) - Allow semicolons directly after direct URLs ([#8836](https://redirect.github.com/astral-sh/uv/pull/8836)) - Enable support for arbitrary git transports ([#8769](https://redirect.github.com/astral-sh/uv/pull/8769)) - Improve Python discovery source messages ([#8890](https://redirect.github.com/astral-sh/uv/pull/8890)) - Show dedicated error for trailing `;` on URL and path requirements ([#8835](https://redirect.github.com/astral-sh/uv/pull/8835)) - Add progress bar for `uv cache clean` ([#8857](https://redirect.github.com/astral-sh/uv/pull/8857)) - Warn on failure to query system configuration file ([#8829](https://redirect.github.com/astral-sh/uv/pull/8829)) ##### Preview features - Add support for building basic source distributions with the experimental uv build backend ([#8886](https://redirect.github.com/astral-sh/uv/pull/8886)) ##### Bug fixes - Respect dynamic version updates in `uv lock` ([#8867](https://redirect.github.com/astral-sh/uv/pull/8867)) - Respect fork markers in `--resolution-mode=lowest-direct` ([#8839](https://redirect.github.com/astral-sh/uv/pull/8839)) ##### Documentation - Add further examples of git+https support ([#8841](https://redirect.github.com/astral-sh/uv/pull/8841)) - Add installer variables to environment reference ([#8874](https://redirect.github.com/astral-sh/uv/pull/8874)) - Add note on private classifier ([#8783](https://redirect.github.com/astral-sh/uv/pull/8783)) - Update pip-and-uv strictness example ([#8822](https://redirect.github.com/astral-sh/uv/pull/8822)) - Fix `uv python install` docs to use an existing PyPy version ([#8845](https://redirect.github.com/astral-sh/uv/pull/8845)) - Document how to mimic `--verbose` with `RUST_LOG` ([#8858](https://redirect.github.com/astral-sh/uv/pull/8858))Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.