From 384f4459a1ca8352ab85361674c7e16929863fc2 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sun, 20 Oct 2024 20:18:53 -0400 Subject: [PATCH] Check dependency groups for credentials (#8393) ## Summary We have to iterate over all user-defined dependencies here. We were missing the new `[dependency-groups]` section. Part of https://github.com/astral-sh/uv/pull/8272. --- crates/uv/src/commands/project/sync.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/uv/src/commands/project/sync.rs b/crates/uv/src/commands/project/sync.rs index 0e4b777b4..aa4fe9994 100644 --- a/crates/uv/src/commands/project/sync.rs +++ b/crates/uv/src/commands/project/sync.rs @@ -23,7 +23,7 @@ use uv_python::{PythonDownloads, PythonEnvironment, PythonPreference, PythonRequ use uv_resolver::{FlatIndex, Lock}; use uv_types::{BuildIsolation, HashStrategy}; use uv_warnings::warn_user; -use uv_workspace::pyproject::{Source, Sources, ToolUvSources}; +use uv_workspace::pyproject::{DependencyGroupSpecifier, Source, Sources, ToolUvSources}; use uv_workspace::{DiscoveryOptions, InstallTarget, MemberDiscovery, VirtualProject, Workspace}; use crate::commands::pip::loggers::{DefaultInstallLogger, DefaultResolveLogger, InstallLogger}; @@ -480,6 +480,21 @@ fn store_credentials_from_workspace(workspace: &Workspace) { .into_iter() .flat_map(|optional| optional.values()) .flatten(); + let dependency_groups = member + .pyproject_toml() + .dependency_groups + .as_ref() + .into_iter() + .flatten() + .flat_map(|(_, dependencies)| { + dependencies.iter().filter_map(|specifier| { + if let DependencyGroupSpecifier::Requirement(requirement) = specifier { + Some(requirement) + } else { + None + } + }) + }); let dev_dependencies = member .pyproject_toml() .tool @@ -491,6 +506,7 @@ fn store_credentials_from_workspace(workspace: &Workspace) { for requirement in dependencies .chain(optional_dependencies) + .chain(dependency_groups) .filter_map(|requires_dist| { LenientRequirement::::from_str(requires_dist) .map(Requirement::from)