feat: add support for --no-extra flag and setting#9387
Merged
charliermarsh merged 9 commits intoastral-sh:mainfrom Nov 24, 2024
Merged
feat: add support for --no-extra flag and setting#9387charliermarsh merged 9 commits intoastral-sh:mainfrom
--no-extra flag and setting#9387charliermarsh merged 9 commits intoastral-sh:mainfrom
Conversation
Contributor
Author
|
Hello, uv maintainers, I managed to get the CI to pass, except for the |
Member
|
This looks good, but I think |
| } else if all_extras { | ||
| ExtrasSpecification::All | ||
| } else if extra.is_empty() { | ||
| ExtrasSpecification::None |
Member
There was a problem hiding this comment.
Maybe we filter extra in the else branch here, to remove anything in no_extra?
charliermarsh
approved these changes
Nov 24, 2024
Member
charliermarsh
left a comment
There was a problem hiding this comment.
Excellent PR, thank you!
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
Nov 28, 2024
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.5.4` -> `0.5.5` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.5.5`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#055) [Compare Source](astral-sh/uv@0.5.4...0.5.5) ##### Enhancements - Add aliases for build backend requests ([#​9294](astral-sh/uv#9294)) - Avoid displaying empty paths ([#​9312](astral-sh/uv#9312)) - Allow constraints in `uv tool upgrade` ([#​9375](astral-sh/uv#9375)) - Remove conflict between `--no-sync` and `--frozen` in `uv run` ([#​9400](astral-sh/uv#9400)) - Respect dependency sources in overrides and constraints ([#​9455](astral-sh/uv#9455)) - Show an interpreter-focused message for `--target` and `--prefix` ([#​9373](astral-sh/uv#9373)) - Add `--no-extra` flag and setting ([#​9387](astral-sh/uv#9387)) - Add `uv export --prune` ([#​9389](astral-sh/uv#9389)) - Add dedicated error message for musl install attempts ([#​9430](astral-sh/uv#9430)) - Add various grammar changes to conflict error messages ([#​9369](astral-sh/uv#9369)) - Annotate default groups in conflict error messages ([#​9368](astral-sh/uv#9368)) - Report marker diagnostics during parsing, rather than evaluation ([#​9338](astral-sh/uv#9338)) - Use consistent formatting for build system errors ([#​9340](astral-sh/uv#9340)) - Use rich diagnostics for build failures ([#​9335](astral-sh/uv#9335)) ##### Preview features - Improve build backend excludes ([#​9281](astral-sh/uv#9281)) - Include PEP 639 `license-files` metadata during `uv publish` ([#​9442](astral-sh/uv#9442)) ##### Performance - Initialize rayon lazily ([#​9435](astral-sh/uv#9435)) - Migrate to PubGrub's arena for package names ([#​9448](astral-sh/uv#9448)) ##### Bug fixes - Allow dependency groups to include the containing package ([#​9385](astral-sh/uv#9385)) - Allow syncing to empty virtual environment directories ([#​9427](astral-sh/uv#9427)) - Allow system Python discovery with `--target` and `--prefix` ([#​9371](astral-sh/uv#9371)) - Don't warn when `--output-file` is empty ([#​9417](astral-sh/uv#9417)) - Fix Python interpreter discovery on non-glibc hosts ([#​9005](astral-sh/uv#9005)) - Fix `tool.uv.dependency-metadata.[].version` schema ([#​9468](astral-sh/uv#9468)) - Only respect preferences across the same indexes ([#​9302](astral-sh/uv#9302)) - Re-compile when `--compile` is passed to an install operation ([#​9378](astral-sh/uv#9378)) - Remove `--upgrade`, `--no-upgrade`, and `--upgrade-package` from `uv tool upgrade` ([#​9318](astral-sh/uv#9318)) - Remove dev dependencies in `--all-groups --no-dev` ([#​9300](astral-sh/uv#9300)) - Surface extras and group conflicts in `uv export` ([#​9365](astral-sh/uv#9365)) - Treat deprecated aliases as equivalent in marker algebra ([#​9342](astral-sh/uv#9342)) - Treat less compatible tags as lower priority in resolver ([#​9339](astral-sh/uv#9339)) ##### Documentation - Avoid referencing `scikit-build` (instead of `scikit-build-core`) ([#​9320](astral-sh/uv#9320)) - Expand entry points documentation ([#​9329](astral-sh/uv#9329)) - Fix example `pyproject.toml` in project concept documentation ([#​9298](astral-sh/uv#9298)) - Fix header level of "Conflicting dependencies" page ([#​9330](astral-sh/uv#9330)) - Touch-up the extension module guide ([#​9293](astral-sh/uv#9293)) - Update the dependencies documentation ([#​9359](astral-sh/uv#9359)) - Reference `--no-progress` option in related environment variable ([#​9357](astral-sh/uv#9357)) </details> --- ### 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 MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolves #9333
This pull request introduces support for the
--no-extracommand-line flag and the correspondingno-extraUV setting.Behavior
--all-extrasis supplied, the specified extras in--no-extrawill be excluded from the installation.--all-extrasis not supplied,--no-extrahas no effect and is safely ignored.Test Plan
Since
ExtrasSpecification::from_argsandExtrasSpecification::extra_namesare the most important parts in the implementation, I added the following tests in theuv-configuration/src/extras.rsmodule:test_no_extra_full: Verifies behavior whenno_extraincludes the entire list of extras.test_no_extra_partial: Tests partial exclusion, ensuring only specified extras are excluded.test_no_extra_empty: Confirms that no extras are excluded ifno_extrais empty.test_no_extra_excessive: Ensures the implementation ignoresno_extravalues that don't match any available extras.test_no_extra_without_all_extras: Validates thatno_extrahas no effect when--all-extrasis not supplied.test_no_extra_without_package_extras: Confirms correct behavior when no extras are available in the package.test_no_extra_duplicates: Verifies that duplicate entries inpkg_extrasorno_extrado not cause errors.