mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-03 10:33:49 +00:00
Add --group
support to uv add
and uv remove
(#8108)
Part of #8090 Adds the ability to add and remove dependencies from arbitrary groups using `uv add` and `uv remove`. Does not include resolving with the new dependencies — tackling that in #8110. Additionally, this does not yet resolve interactions with the existing `dev` group — we'll tackle that separately as well. I probably won't merge the stack until that design is resolved.
This commit is contained in:
parent
3c9d783e09
commit
4c0590ff6f
22 changed files with 653 additions and 124 deletions
|
@ -15,7 +15,7 @@ use uv_configuration::{
|
|||
ProjectBuildBackend, TargetTriple, TrustedHost, TrustedPublishing, VersionControlSystem,
|
||||
};
|
||||
use uv_distribution_types::{Index, IndexUrl, Origin, PipExtraIndex, PipFindLinks, PipIndex};
|
||||
use uv_normalize::{ExtraName, PackageName};
|
||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||
use uv_pep508::Requirement;
|
||||
use uv_pypi_types::VerbatimParsedUrl;
|
||||
use uv_python::{PythonDownloads, PythonPreference, PythonVersion};
|
||||
|
@ -2953,7 +2953,7 @@ pub struct AddArgs {
|
|||
pub requirements: Vec<PathBuf>,
|
||||
|
||||
/// Add the requirements as development dependencies.
|
||||
#[arg(long, conflicts_with("optional"))]
|
||||
#[arg(long, conflicts_with("optional"), conflicts_with("group"))]
|
||||
pub dev: bool,
|
||||
|
||||
/// Add the requirements to the specified optional dependency group.
|
||||
|
@ -2963,9 +2963,15 @@ pub struct AddArgs {
|
|||
///
|
||||
/// To enable an optional dependency group for this requirement instead, see
|
||||
/// `--extra`.
|
||||
#[arg(long, conflicts_with("dev"))]
|
||||
#[arg(long, conflicts_with("dev"), conflicts_with("group"))]
|
||||
pub optional: Option<ExtraName>,
|
||||
|
||||
/// Add the requirements to the specified local dependency group.
|
||||
///
|
||||
/// These requirements will not be included in the published metadata for the project.
|
||||
#[arg(long, conflicts_with("dev"), conflicts_with("optional"))]
|
||||
pub group: Option<GroupName>,
|
||||
|
||||
/// Add the requirements as editable.
|
||||
#[arg(long, overrides_with = "no_editable")]
|
||||
pub editable: bool,
|
||||
|
@ -3071,13 +3077,17 @@ pub struct RemoveArgs {
|
|||
pub packages: Vec<PackageName>,
|
||||
|
||||
/// Remove the packages from the development dependencies.
|
||||
#[arg(long, conflicts_with("optional"))]
|
||||
#[arg(long, conflicts_with("optional"), conflicts_with("group"))]
|
||||
pub dev: bool,
|
||||
|
||||
/// Remove the packages from the specified optional dependency group.
|
||||
#[arg(long, conflicts_with("dev"))]
|
||||
#[arg(long, conflicts_with("dev"), conflicts_with("group"))]
|
||||
pub optional: Option<ExtraName>,
|
||||
|
||||
/// Remove the packages from the specified local dependency group.
|
||||
#[arg(long, conflicts_with("dev"), conflicts_with("optional"))]
|
||||
pub group: Option<GroupName>,
|
||||
|
||||
/// Avoid syncing the virtual environment after re-locking the project.
|
||||
#[arg(long, env = EnvVars::UV_NO_SYNC, value_parser = clap::builder::BoolishValueParser::new(), conflicts_with = "frozen")]
|
||||
pub no_sync: bool,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue