diff --git a/Cargo.lock b/Cargo.lock index 6caf381303..63b06596ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4663,24 +4663,16 @@ name = "pixi" version = "0.51.0" dependencies = [ "ahash", - "anyhow", - "assert_matches", - "async-once-cell", "async-trait", - "barrier_cell", "chrono", "clap", "clap_complete", "clap_complete_nushell", "console 0.15.11", "console-subscriber", - "crossbeam-channel", - "csv", "ctrlc", - "dashmap", "deno_task_shell", "dialoguer", - "dirs", "dunce", "fake", "fancy_display", @@ -4690,7 +4682,6 @@ dependencies = [ "futures", "http 1.3.1", "human_bytes", - "humantime", "indexmap 2.10.0", "indicatif", "insta", @@ -4700,21 +4691,14 @@ dependencies = [ "miette 7.6.0", "minijinja", "nix 0.29.0", - "once_cell", "pathdiff", - "pep440_rs", "pep508_rs", - "percent-encoding", "pixi_allocator", - "pixi_build_discovery", - "pixi_build_frontend", - "pixi_build_type_conversions", "pixi_command_dispatcher", "pixi_config", "pixi_consts", - "pixi_default_versions", + "pixi_core", "pixi_git", - "pixi_glob", "pixi_manifest", "pixi_progress", "pixi_pty", @@ -4722,9 +4706,7 @@ dependencies = [ "pixi_record", "pixi_reporters", "pixi_spec", - "pixi_spec_containers", "pixi_test_utils", - "pixi_toml", "pixi_utils", "pixi_uv_conversions", "pypi_mapping", @@ -4733,17 +4715,14 @@ dependencies = [ "rattler_conda_types", "rattler_digest", "rattler_lock", - "rattler_menuinst", "rattler_networking", "rattler_repodata_gateway", "rattler_shell", "rattler_solve", "rattler_virtual_packages", - "rayon", "regex", "reqwest", "reqwest-middleware", - "rlimit", "rstest", "same-file", "self-replace", @@ -4751,7 +4730,6 @@ dependencies = [ "serde_json", "serde_with", "sha2", - "shlex", "signal-hook", "strsim", "tabwriter", @@ -4761,40 +4739,23 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tokio-util", - "toml-span", "toml_edit 0.22.27", "tracing", "tracing-subscriber", "typed-path", "url", - "uv-auth", - "uv-build-frontend", "uv-cache", - "uv-cache-info", "uv-client", "uv-configuration", - "uv-dispatch", "uv-distribution", - "uv-distribution-filename", - "uv-distribution-types", - "uv-git", - "uv-git-types", - "uv-install-wheel", "uv-installer", "uv-normalize", - "uv-pep440", "uv-pep508", "uv-pypi-types", "uv-python", - "uv-redacted", - "uv-requirements", "uv-requirements-txt", - "uv-resolver", "uv-types", - "uv-workspace", - "xxhash-rust", "zip 2.4.2", - "zstd", ] [[package]] @@ -4970,6 +4931,125 @@ dependencies = [ "url", ] +[[package]] +name = "pixi_core" +version = "0.1.0" +dependencies = [ + "ahash", + "anyhow", + "assert_matches", + "async-once-cell", + "async-trait", + "barrier_cell", + "chrono", + "console 0.15.11", + "crossbeam-channel", + "csv", + "dashmap", + "deno_task_shell", + "dialoguer", + "dirs", + "dunce", + "fake", + "fancy_display", + "fs-err", + "fs_extra", + "futures", + "http 1.3.1", + "human_bytes", + "humantime", + "indexmap 2.10.0", + "indicatif", + "insta", + "is_executable", + "itertools 0.14.0", + "libc", + "miette 7.6.0", + "once_cell", + "pathdiff", + "pep440_rs", + "pep508_rs", + "percent-encoding", + "pixi_build_discovery", + "pixi_build_frontend", + "pixi_build_type_conversions", + "pixi_command_dispatcher", + "pixi_config", + "pixi_consts", + "pixi_default_versions", + "pixi_git", + "pixi_glob", + "pixi_manifest", + "pixi_progress", + "pixi_pypi_spec", + "pixi_record", + "pixi_reporters", + "pixi_spec", + "pixi_spec_containers", + "pixi_test_utils", + "pixi_toml", + "pixi_utils", + "pixi_uv_conversions", + "pypi_mapping", + "pypi_modifiers", + "rattler", + "rattler_conda_types", + "rattler_digest", + "rattler_lock", + "rattler_menuinst", + "rattler_networking", + "rattler_repodata_gateway", + "rattler_shell", + "rattler_solve", + "rattler_virtual_packages", + "rayon", + "regex", + "reqwest", + "reqwest-middleware", + "rlimit", + "rstest", + "serde", + "serde_json", + "serde_with", + "shlex", + "tabwriter", + "tempfile", + "thiserror 2.0.12", + "tokio", + "toml-span", + "toml_edit 0.22.27", + "tracing", + "typed-path", + "url", + "uv-auth", + "uv-build-frontend", + "uv-cache", + "uv-cache-info", + "uv-client", + "uv-configuration", + "uv-dispatch", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-git", + "uv-git-types", + "uv-install-wheel", + "uv-installer", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-python", + "uv-redacted", + "uv-requirements", + "uv-requirements-txt", + "uv-resolver", + "uv-types", + "uv-workspace", + "xxhash-rust", + "zstd", +] + [[package]] name = "pixi_default_versions" version = "0.1.0" @@ -5226,6 +5306,7 @@ dependencies = [ "fs-err", "indicatif", "insta", + "is_executable", "itertools 0.14.0", "miette 7.6.0", "pep508_rs", @@ -5233,9 +5314,11 @@ dependencies = [ "pixi_consts", "rattler_conda_types", "rattler_networking", + "rattler_shell", "reqwest", "reqwest-middleware", "reqwest-retry", + "rlimit", "rstest", "serde", "serde_json", @@ -5246,6 +5329,7 @@ dependencies = [ "tracing", "tracing-subscriber", "url", + "uv-configuration", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 1f44d53839..ef12b799f3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ repository = "https://github.com/prefix-dev/pixi" [workspace.dependencies] ahash = "0.8.11" +anyhow = "1.0.97" assert_matches = "1.5.0" async-fd-lock = "0.2.0" async-once-cell = "0.5.4" @@ -71,6 +72,7 @@ percent-encoding = "2.3.1" pin-project-lite = "0.2.16" pyproject-toml = "0.13.4" rand = { version = "0.9.1", default-features = false } +rayon = "1.10.0" regex = "1.11.1" reqwest = { version = "0.12.12", default-features = false } reqwest-middleware = "0.4" @@ -166,6 +168,7 @@ xxhash-rust = "0.8.15" zip = { version = "2.4.2", default-features = false } zstd = { version = "0.13.3", default-features = false } +barrier_cell = { path = "crates/barrier_cell" } fancy_display = { path = "crates/fancy_display" } pixi_allocator = { path = "crates/pixi_allocator" } pixi_build_discovery = { path = "crates/pixi_build_discovery" } @@ -175,6 +178,7 @@ pixi_build_types = { path = "crates/pixi_build_types" } pixi_command_dispatcher = { path = "crates/pixi_command_dispatcher" } pixi_config = { path = "crates/pixi_config" } pixi_consts = { path = "crates/pixi_consts" } +pixi_core = { path = "crates/pixi_core" } pixi_default_versions = { path = "crates/pixi_default_versions" } pixi_git = { path = "crates/pixi_git" } pixi_glob = { path = "crates/pixi_glob" } @@ -231,9 +235,6 @@ performance = ["pixi_allocator"] [dependencies] ahash = { workspace = true } -assert_matches = { workspace = true } -async-once-cell = { workspace = true } -barrier_cell = { path = "crates/barrier_cell" } chrono = { workspace = true } clap = { workspace = true, features = [ "derive", @@ -248,93 +249,63 @@ clap_complete = { workspace = true } clap_complete_nushell = { workspace = true } console = { workspace = true, features = ["windows-console-colors"] } console-subscriber = { workspace = true, optional = true } -crossbeam-channel = { workspace = true } -csv = { workspace = true } -dashmap = { workspace = true } +ctrlc = { workspace = true } deno_task_shell = { workspace = true } dialoguer = { workspace = true } -dirs = { workspace = true } dunce = { workspace = true } fancy_display = { workspace = true } flate2 = { workspace = true } +fs-err = { workspace = true, features = ["tokio"] } fs_extra = { workspace = true } futures = { workspace = true } human_bytes = { workspace = true } -humantime = { workspace = true } indexmap = { workspace = true, features = ["serde"] } indicatif = { workspace = true } is_executable = { workspace = true } itertools = { workspace = true } miette = { workspace = true, features = ["fancy-no-backtrace"] } minijinja = { workspace = true, features = ["builtins"] } -once_cell = { workspace = true } pathdiff = { workspace = true } -rstest = { workspace = true } -uv-build-frontend = { workspace = true } -uv-distribution-filename = { workspace = true } -uv-distribution-types = { workspace = true } -uv-install-wheel = { workspace = true } - -pep440_rs = { workspace = true } pep508_rs = { workspace = true } -percent-encoding = { workspace = true } -rattler = { workspace = true, features = ["cli-tools", "indicatif"] } -rattler_conda_types = { workspace = true } -rattler_digest = { workspace = true } -rattler_lock = { workspace = true } -rattler_menuinst = { workspace = true } -rattler_networking = { workspace = true, default-features = false } -rattler_repodata_gateway = { workspace = true, features = [ - "sparse", - "gateway", -] } -rattler_shell = { workspace = true, features = ["sysinfo"] } -rattler_solve = { workspace = true, features = ["resolvo", "serde"] } -uv-git = { workspace = true } -uv-pep440 = { workspace = true } -uv-pep508 = { workspace = true } -uv-pypi-types = { workspace = true } - -anyhow = "1.0.97" -ctrlc = { workspace = true } -fs-err = { workspace = true, features = ["tokio"] } pixi_allocator = { workspace = true, optional = true } -pixi_build_discovery = { workspace = true } -pixi_build_frontend = { workspace = true } -pixi_build_type_conversions = { workspace = true } pixi_command_dispatcher = { workspace = true } pixi_config = { workspace = true } pixi_consts = { workspace = true } -pixi_default_versions = { workspace = true } +pixi_core = { workspace = true } pixi_git = { workspace = true } -pixi_glob = { workspace = true } pixi_manifest = { workspace = true, features = ["rattler_lock"] } pixi_progress = { workspace = true } pixi_pypi_spec = { workspace = true } pixi_record = { workspace = true } pixi_reporters = { workspace = true } pixi_spec = { workspace = true } -pixi_spec_containers = { workspace = true } -pixi_toml = { workspace = true } pixi_utils = { workspace = true, default-features = false } pixi_uv_conversions = { workspace = true } pypi_mapping = { workspace = true } pypi_modifiers = { workspace = true } +rattler = { workspace = true, features = ["cli-tools", "indicatif"] } +rattler_conda_types = { workspace = true } +rattler_digest = { workspace = true } +rattler_lock = { workspace = true } +rattler_networking = { workspace = true, default-features = false } +rattler_repodata_gateway = { workspace = true, features = [ + "sparse", + "gateway", +] } +rattler_shell = { workspace = true, features = ["sysinfo"] } +rattler_solve = { workspace = true, features = ["resolvo", "serde"] } rattler_virtual_packages = { workspace = true } -rayon = "1.10.0" regex = { workspace = true } reqwest = { workspace = true, features = [ "http2", "macos-system-configuration", ] } reqwest-middleware = { workspace = true } -rlimit = { workspace = true } same-file = { workspace = true } self-replace = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } serde_with = { workspace = true, features = ["indexmap"] } -shlex = { workspace = true } strsim = { workspace = true } tabwriter = { workspace = true, features = ["ansi_formatting"] } tar = { workspace = true } @@ -343,32 +314,23 @@ tempfile = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["macros", "rt-multi-thread", "signal"] } tokio-util = { workspace = true } -toml-span = { workspace = true } toml_edit = { workspace = true, features = ["serde"] } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } typed-path = { workspace = true } url = { workspace = true } -uv-auth = { workspace = true } uv-cache = { workspace = true } -uv-cache-info = { workspace = true } uv-client = { workspace = true } uv-configuration = { workspace = true } -uv-dispatch = { workspace = true } uv-distribution = { workspace = true } -uv-git-types = { workspace = true } uv-installer = { workspace = true } uv-normalize = { workspace = true } +uv-pep508 = { workspace = true } +uv-pypi-types = { workspace = true } uv-python = { workspace = true } -uv-redacted = { workspace = true } -uv-requirements = { workspace = true } uv-requirements-txt = { workspace = true } -uv-resolver = { workspace = true } uv-types = { workspace = true } -uv-workspace = { workspace = true } -xxhash-rust = { workspace = true } zip = { workspace = true, features = ["deflate", "time"] } -zstd = { workspace = true } [target.'cfg(unix)'.dependencies] libc = { workspace = true, default-features = false } diff --git a/clippy.toml b/clippy.toml index c2be4628f5..371ac89199 100644 --- a/clippy.toml +++ b/clippy.toml @@ -2,8 +2,8 @@ # This can cause false negatives for custom collections that use raw pointers internally. # See https://rust-lang.github.io/rust-clippy/master/index.html#/mutable_key_type ignore-interior-mutability = [ - "pixi::workspace::environment::Environment", - "pixi::workspace::solve_group::SolveGroup", + "pixi_core::workspace::environment::Environment", + "pixi_core::workspace::solve_group::SolveGroup", ] disallowed-methods = [ diff --git a/crates/pixi_core/Cargo.toml b/crates/pixi_core/Cargo.toml new file mode 100644 index 0000000000..b951313e79 --- /dev/null +++ b/crates/pixi_core/Cargo.toml @@ -0,0 +1,134 @@ +[package] +authors.workspace = true +edition.workspace = true +homepage.workspace = true +license.workspace = true +name = "pixi_core" +readme.workspace = true +repository.workspace = true +version = "0.1.0" + +[features] +slow_integration_tests = [] + +[dependencies] +ahash = { workspace = true } +anyhow = { workspace = true } +assert_matches = { workspace = true } +async-once-cell = { workspace = true } +barrier_cell = { workspace = true } +chrono = { workspace = true } +console = { workspace = true } +crossbeam-channel = { workspace = true } +csv = { workspace = true } +dashmap = { workspace = true } +deno_task_shell = { workspace = true } +dialoguer = { workspace = true } +dirs = { workspace = true } +dunce = { workspace = true } +fancy_display = { workspace = true } +fs-err = { workspace = true } +fs_extra = { workspace = true } +futures = { workspace = true } +human_bytes = { workspace = true } +humantime = { workspace = true } +indexmap = { workspace = true } +indicatif = { workspace = true } +is_executable = { workspace = true } +itertools = { workspace = true } +miette = { workspace = true } +once_cell = { workspace = true } +pathdiff = { workspace = true } +pep440_rs = { workspace = true } +pep508_rs = { workspace = true } +percent-encoding = { workspace = true } +pixi_build_discovery = { workspace = true } +pixi_build_frontend = { workspace = true } +pixi_build_type_conversions = { workspace = true } +pixi_command_dispatcher = { workspace = true } +pixi_config = { workspace = true } +pixi_consts = { workspace = true } +pixi_default_versions = { workspace = true } +pixi_git = { workspace = true } +pixi_glob = { workspace = true } +pixi_manifest = { workspace = true } +pixi_progress = { workspace = true } +pixi_pypi_spec = { workspace = true } +pixi_record = { workspace = true } +pixi_reporters = { workspace = true } +pixi_spec = { workspace = true } +pixi_spec_containers = { workspace = true } +pixi_toml = { workspace = true } +pixi_utils = { workspace = true, default-features = false } +pixi_uv_conversions = { workspace = true } +pypi_mapping = { workspace = true } +pypi_modifiers = { workspace = true } +rattler = { workspace = true } +rattler_conda_types = { workspace = true } +rattler_digest = { workspace = true } +rattler_lock = { workspace = true } +rattler_menuinst = { workspace = true } +rattler_networking = { workspace = true, default-features = false } +rattler_repodata_gateway = { workspace = true } +rattler_shell = { workspace = true } +rattler_solve = { workspace = true } +rattler_virtual_packages = { workspace = true } +rayon = { workspace = true } +regex = { workspace = true } +reqwest = { workspace = true } +reqwest-middleware = { workspace = true } +rlimit = { workspace = true } +rstest = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +serde_with = { workspace = true } +shlex = { workspace = true } +tabwriter = { workspace = true } +tempfile = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true } +toml-span = { workspace = true } +toml_edit = { workspace = true } +tracing = { workspace = true } +typed-path = { workspace = true } +url = { workspace = true } +uv-auth = { workspace = true } +uv-build-frontend = { workspace = true } +uv-cache = { workspace = true } +uv-cache-info = { workspace = true } +uv-client = { workspace = true } +uv-configuration = { workspace = true } +uv-dispatch = { workspace = true } +uv-distribution = { workspace = true } +uv-distribution-filename = { workspace = true } +uv-distribution-types = { workspace = true } +uv-git = { workspace = true } +uv-git-types = { workspace = true } +uv-install-wheel = { workspace = true } +uv-installer = { workspace = true } +uv-normalize = { workspace = true } +uv-pep440 = { workspace = true } +uv-pep508 = { workspace = true } +uv-pypi-types = { workspace = true } +uv-python = { workspace = true } +uv-redacted = { workspace = true } +uv-requirements = { workspace = true } +uv-requirements-txt = { workspace = true } +uv-resolver = { workspace = true } +uv-types = { workspace = true } +uv-workspace = { workspace = true } +xxhash-rust = { workspace = true } +zstd = { workspace = true } + +[target.'cfg(unix)'.dependencies] +libc = { workspace = true } + +[dev-dependencies] +async-trait = { workspace = true } +fake = "4.0.0" +http = { workspace = true } +insta = { workspace = true, features = ["yaml", "glob", "filters"] } +pixi_test_utils = { workspace = true } +rstest = { workspace = true } +serde_json = { workspace = true } +tokio = { workspace = true, features = ["rt"] } diff --git a/src/activation.rs b/crates/pixi_core/src/activation.rs similarity index 99% rename from src/activation.rs rename to crates/pixi_core/src/activation.rs index 3d16079401..a763a6f2a6 100644 --- a/src/activation.rs +++ b/crates/pixi_core/src/activation.rs @@ -116,7 +116,7 @@ impl Environment<'_> { /// This method will create an activator for the environment and add the activation scripts from the project. /// The activator will be created for the current platform and the default shell. /// The activation scripts from the environment will be checked for existence and the extension will be checked for correctness. -pub(crate) fn get_activator<'p>( +pub fn get_activator<'p>( environment: &'p Environment<'p>, shell: ShellEnum, ) -> Result, ActivationError> { diff --git a/src/conda_prefix_updater.rs b/crates/pixi_core/src/conda_prefix_updater.rs similarity index 100% rename from src/conda_prefix_updater.rs rename to crates/pixi_core/src/conda_prefix_updater.rs diff --git a/src/diff.rs b/crates/pixi_core/src/diff.rs similarity index 100% rename from src/diff.rs rename to crates/pixi_core/src/diff.rs diff --git a/src/environment/conda_metadata.rs b/crates/pixi_core/src/environment/conda_metadata.rs similarity index 100% rename from src/environment/conda_metadata.rs rename to crates/pixi_core/src/environment/conda_metadata.rs diff --git a/src/environment/conda_prefix.rs b/crates/pixi_core/src/environment/conda_prefix.rs similarity index 99% rename from src/environment/conda_prefix.rs rename to crates/pixi_core/src/environment/conda_prefix.rs index 4cd2df654a..1eb8b796b5 100644 --- a/src/environment/conda_prefix.rs +++ b/crates/pixi_core/src/environment/conda_prefix.rs @@ -5,6 +5,7 @@ use miette::IntoDiagnostic; use pixi_command_dispatcher::{BuildEnvironment, CommandDispatcher, InstallPixiEnvironmentSpec}; use pixi_manifest::FeaturesExt; use pixi_record::PixiRecord; +use pixi_utils::{prefix::Prefix, variants::VariantConfig}; use rattler::install::link_script::LinkScriptType; use rattler_conda_types::{ ChannelConfig, ChannelUrl, GenericVirtualPackage, PackageName, Platform, @@ -16,8 +17,6 @@ use super::{ }; use crate::{ environment::PythonStatus, - prefix::Prefix, - variants::VariantConfig, workspace::{ HasWorkspaceRef, grouped_environment::{GroupedEnvironment, GroupedEnvironmentName}, diff --git a/src/environment/list.rs b/crates/pixi_core/src/environment/list.rs similarity index 100% rename from src/environment/list.rs rename to crates/pixi_core/src/environment/list.rs diff --git a/src/environment/mod.rs b/crates/pixi_core/src/environment/mod.rs similarity index 99% rename from src/environment/mod.rs rename to crates/pixi_core/src/environment/mod.rs index a6899b892c..0ff35b7d3b 100644 --- a/src/environment/mod.rs +++ b/crates/pixi_core/src/environment/mod.rs @@ -13,6 +13,7 @@ use pixi_manifest::FeaturesExt; use pixi_progress::await_in_progress; use pixi_pypi_spec::PixiPypiSpec; use pixi_spec::{GitSpec, PixiSpec}; +use pixi_utils::{prefix::Prefix, rlimit::try_increase_rlimit_to_sensible}; pub use pypi_prefix::{ContinuePyPIPrefixUpdate, on_python_interpreter_change}; pub use python_status::PythonStatus; use rattler_conda_types::Platform; @@ -30,8 +31,6 @@ use xxhash_rust::xxh3::Xxh3; use crate::{ Workspace, lock_file::{LockFileDerivedData, ReinstallPackages, UpdateLockFileOptions, UpdateMode}, - prefix::Prefix, - rlimit::try_increase_rlimit_to_sensible, workspace::{Environment, HasWorkspaceRef, grouped_environment::GroupedEnvironment}, }; diff --git a/src/environment/pypi_prefix.rs b/crates/pixi_core/src/environment/pypi_prefix.rs similarity index 99% rename from src/environment/pypi_prefix.rs rename to crates/pixi_core/src/environment/pypi_prefix.rs index 5ff78d20d2..6936a4a48d 100644 --- a/src/environment/pypi_prefix.rs +++ b/crates/pixi_core/src/environment/pypi_prefix.rs @@ -3,8 +3,8 @@ use std::path::Path; use miette::IntoDiagnostic; use rattler::install::PythonInfo; -use crate::prefix::Prefix; use pixi_consts::consts; +use pixi_utils::prefix::Prefix; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; use uv_distribution_types::{InstalledDist, Name}; diff --git a/src/environment/python_status.rs b/crates/pixi_core/src/environment/python_status.rs similarity index 100% rename from src/environment/python_status.rs rename to crates/pixi_core/src/environment/python_status.rs diff --git a/src/global/common.rs b/crates/pixi_core/src/global/common.rs similarity index 98% rename from src/global/common.rs rename to crates/pixi_core/src/global/common.rs index 35230a3f4a..93ba8e04f4 100644 --- a/src/global/common.rs +++ b/crates/pixi_core/src/global/common.rs @@ -1,6 +1,5 @@ use super::trampoline::{GlobalExecutable, Trampoline}; use super::{EnvironmentName, ExposedName, Mapping}; -use crate::prefix::Executable; use ahash::HashSet; use console::StyledObject; @@ -14,6 +13,7 @@ use miette::{Context, IntoDiagnostic}; use pixi_config::pixi_home; use pixi_manifest::PrioritizedChannel; use pixi_utils::executable_from_path; +use pixi_utils::prefix::Executable; use rattler::install::{Transaction, TransactionOperation}; use rattler_conda_types::{ Channel, ChannelConfig, NamedChannelOrUrl, PackageName, PackageRecord, PrefixRecord, @@ -112,7 +112,7 @@ impl EnvRoot { } /// Create the environment root directory from environment variables - pub(crate) async fn from_env() -> miette::Result { + pub async fn from_env() -> miette::Result { let path = pixi_home() .map(|path| path.join("envs")) .ok_or_else(|| miette::miette!("Couldn't get home path"))?; @@ -141,7 +141,7 @@ impl EnvRoot { } /// A global environment directory -pub(crate) struct EnvDir { +pub struct EnvDir { pub(crate) path: PathBuf, } @@ -211,7 +211,7 @@ pub(crate) async fn find_package_records(conda_meta: &Path) -> miette::Result, } @@ -317,7 +317,7 @@ impl InstallChange { /// It also contain what packages were in environment before the update. #[derive(Debug, Clone, PartialEq, Eq, Default)] #[must_use] -pub(crate) struct EnvironmentUpdate { +pub struct EnvironmentUpdate { package_changes: HashMap, current_packages: Vec, } @@ -365,7 +365,7 @@ impl EnvironmentUpdate { #[derive(Debug, Clone, PartialEq, Eq)] #[must_use] -pub(crate) enum StateChange { +pub enum StateChange { AddedExposed(ExposedName), RemovedExposed(ExposedName), UpdatedExposed(ExposedName), @@ -383,24 +383,24 @@ pub(crate) enum StateChange { #[must_use] #[derive(Debug, Default)] -pub(crate) struct StateChanges { +pub struct StateChanges { changes: HashMap>, } impl StateChanges { /// Creates a new `StateChanges` instance with a single environment name and an empty vector as its value. - pub(crate) fn new_with_env(env_name: EnvironmentName) -> Self { + pub fn new_with_env(env_name: EnvironmentName) -> Self { Self { changes: HashMap::from([(env_name, Vec::new())]), } } /// Checks if there are any changes in the state. - pub(crate) fn has_changed(&self) -> bool { + pub fn has_changed(&self) -> bool { !self.changes.values().all(Vec::is_empty) } - pub(crate) fn insert_change(&mut self, env_name: &EnvironmentName, change: StateChange) { + pub fn insert_change(&mut self, env_name: &EnvironmentName, change: StateChange) { if let Some(entry) = self.changes.get_mut(env_name) { entry.push(change); } else { @@ -414,12 +414,12 @@ impl StateChanges { } /// Get changes for a specific environment - pub(crate) fn changes_for_env(&self, env_name: &EnvironmentName) -> Option<&Vec> { + pub fn changes_for_env(&self, env_name: &EnvironmentName) -> Option<&Vec> { self.changes.get(env_name) } /// Convert user-requested install changes to AddedPackage state changes - pub(crate) async fn add_packages_from_install_changes( + pub async fn add_packages_from_install_changes( &mut self, env_name: &EnvironmentName, user_requested_changes: HashMap, @@ -483,7 +483,7 @@ impl StateChanges { .collect() } - pub(crate) fn report(mut self) { + pub fn report(mut self) { self.prune(); for (env_name, changes_for_env) in self.changes { @@ -912,7 +912,7 @@ pub(crate) fn shortcuts_sync_status( Ok((records_to_install, records_to_uninstall)) } -pub(crate) fn contains_menuinst_document(prefix_record: &PrefixRecord, prefix_root: &Path) -> bool { +pub fn contains_menuinst_document(prefix_record: &PrefixRecord, prefix_root: &Path) -> bool { for file in &prefix_record.files { if file.extension().is_some_and(|ext| ext == "json") { if let Some(parent) = file.parent() { diff --git a/src/global/completions.rs b/crates/pixi_core/src/global/completions.rs similarity index 100% rename from src/global/completions.rs rename to crates/pixi_core/src/global/completions.rs diff --git a/src/global/install.rs b/crates/pixi_core/src/global/install.rs similarity index 98% rename from src/global/install.rs rename to crates/pixi_core/src/global/install.rs index 3fad208a8f..99f7a00902 100644 --- a/src/global/install.rs +++ b/crates/pixi_core/src/global/install.rs @@ -1,16 +1,15 @@ use super::{EnvDir, EnvironmentName, ExposedName, StateChanges}; -use crate::{ - global::{ - BinDir, StateChange, - trampoline::{Configuration, Trampoline}, - }, - prefix::Executable, - prefix::Prefix, +use crate::global::{ + BinDir, StateChange, + trampoline::{Configuration, Trampoline}, }; use indexmap::IndexSet; use itertools::Itertools; use miette::IntoDiagnostic; -use pixi_utils::{executable_from_path, is_binary_folder}; +use pixi_utils::{ + executable_from_path, is_binary_folder, + prefix::{Executable, Prefix}, +}; use rattler_conda_types::{ MatchSpec, Matches, PackageName, PackageRecord, ParseStrictness, Platform, }; diff --git a/src/global/list.rs b/crates/pixi_core/src/global/list.rs similarity index 95% rename from src/global/list.rs rename to crates/pixi_core/src/global/list.rs index 3a89b687fb..40a97fe1f5 100644 --- a/src/global/list.rs +++ b/crates/pixi_core/src/global/list.rs @@ -4,7 +4,6 @@ use itertools::Itertools; use pixi_consts::consts; use pixi_spec::PixiSpec; use rattler_conda_types::{PackageName, PrefixRecord, Version}; -use serde::Serialize; use miette::{IntoDiagnostic, miette}; @@ -15,14 +14,6 @@ use crate::{ use super::{EnvChanges, EnvState, EnvironmentName, Mapping, Project, project::ParsedEnvironment}; -/// Sorting strategy for the package table -#[derive(clap::ValueEnum, Clone, Debug, Serialize, Default)] -pub enum GlobalSortBy { - Size, - #[default] - Name, -} - /// Creating the ASCII art representation of a section. pub fn format_asciiart_section(label: &str, content: String, last: bool, more: bool) -> String { let prefix = if last { " " } else { "│" }; @@ -94,7 +85,7 @@ fn print_meta_info(environment: &ParsedEnvironment) { pub async fn list_specific_global_environment( project: &Project, environment_name: &EnvironmentName, - sort_by: GlobalSortBy, + sort_by_size: bool, regex: Option, ) -> miette::Result<()> { let env = project @@ -145,14 +136,11 @@ pub async fn list_specific_global_environment( }; // Sort according to the sorting strategy - match sort_by { - GlobalSortBy::Size => { - packages_to_output - .sort_by(|a, b| a.size_bytes.unwrap_or(0).cmp(&b.size_bytes.unwrap_or(0))); - } - GlobalSortBy::Name => { - packages_to_output.sort_by(|a, b| a.name.cmp(&b.name)); - } + if sort_by_size { + packages_to_output + .sort_by(|a, b| a.size_bytes.unwrap_or(0).cmp(&b.size_bytes.unwrap_or(0))); + } else { + packages_to_output.sort_by(|a, b| a.name.cmp(&b.name)); } println!("{}", output_message); print_package_table(packages_to_output).into_diagnostic()?; diff --git a/src/global/mod.rs b/crates/pixi_core/src/global/mod.rs similarity index 78% rename from src/global/mod.rs rename to crates/pixi_core/src/global/mod.rs index 3eb17e2361..fe160a31ff 100644 --- a/src/global/mod.rs +++ b/crates/pixi_core/src/global/mod.rs @@ -1,16 +1,16 @@ -pub(crate) mod common; +pub mod common; #[cfg(unix)] // Completions are only supported on unix-like systems -pub(crate) mod completions; -pub(crate) mod install; -pub(crate) mod list; -pub(crate) mod project; -pub(crate) mod trampoline; +pub mod completions; +pub mod install; +pub mod list; +pub mod project; +pub mod trampoline; -pub(crate) use common::{BinDir, EnvChanges, EnvDir, EnvRoot, EnvState, StateChange, StateChanges}; +pub use common::{BinDir, EnvChanges, EnvDir, EnvRoot, EnvState, StateChange, StateChanges}; use pixi_utils::executable_from_path; -pub(crate) use project::{EnvironmentName, ExposedName, Mapping, Project}; +pub use project::{EnvironmentName, ExposedName, Mapping, Project}; -use crate::prefix::{Executable, Prefix}; +use pixi_utils::prefix::{Executable, Prefix}; use rattler_conda_types::PrefixRecord; use std::path::{Path, PathBuf}; diff --git a/src/global/project/environment.rs b/crates/pixi_core/src/global/project/environment.rs similarity index 97% rename from src/global/project/environment.rs rename to crates/pixi_core/src/global/project/environment.rs index 28c36c02af..75bc852263 100644 --- a/src/global/project/environment.rs +++ b/crates/pixi_core/src/global/project/environment.rs @@ -13,7 +13,7 @@ use thiserror::Error; /// Represents the name of an environment. #[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize)] -pub(crate) struct EnvironmentName(String); +pub struct EnvironmentName(String); impl EnvironmentName { /// Returns the name of the environment. @@ -102,11 +102,9 @@ pub(crate) async fn environment_specs_in_sync( mod tests { use super::*; - use crate::{ - global::{EnvDir, EnvRoot}, - prefix::Prefix, - }; + use crate::global::{EnvDir, EnvRoot}; use fs_err::tokio as tokio_fs; + use pixi_utils::prefix::Prefix; use rattler_conda_types::ParseStrictness; use std::path::PathBuf; diff --git a/src/global/project/global_spec.rs b/crates/pixi_core/src/global/project/global_spec.rs similarity index 98% rename from src/global/project/global_spec.rs rename to crates/pixi_core/src/global/project/global_spec.rs index 550369c6c0..860fa7cfe6 100644 --- a/src/global/project/global_spec.rs +++ b/crates/pixi_core/src/global/project/global_spec.rs @@ -17,8 +17,8 @@ pub enum GlobalSpec { #[derive(Debug, Clone)] pub struct NamedGlobalSpec { - name: PackageName, - spec: PixiSpec, + pub name: PackageName, + pub spec: PixiSpec, } impl NamedGlobalSpec { diff --git a/src/global/project/manifest.rs b/crates/pixi_core/src/global/project/manifest.rs similarity index 100% rename from src/global/project/manifest.rs rename to crates/pixi_core/src/global/project/manifest.rs diff --git a/src/global/project/mod.rs b/crates/pixi_core/src/global/project/mod.rs similarity index 97% rename from src/global/project/mod.rs rename to crates/pixi_core/src/global/project/mod.rs index a652dfb3b6..846b6d590a 100644 --- a/src/global/project/mod.rs +++ b/crates/pixi_core/src/global/project/mod.rs @@ -6,7 +6,7 @@ use std::{ sync::Arc, }; -pub(crate) use environment::EnvironmentName; +pub use environment::EnvironmentName; use fancy_display::FancyDisplay; use fs::tokio as tokio_fs; use fs_err as fs; @@ -15,11 +15,11 @@ use indexmap::{IndexMap, IndexSet}; use indicatif::ProgressBar; use is_executable::IsExecutable; use itertools::Itertools; -pub(crate) use manifest::{ExposedType, Manifest, Mapping}; +pub use manifest::{ExposedType, Manifest, Mapping}; use miette::{Context, IntoDiagnostic}; use once_cell::sync::OnceCell; -use parsed_manifest::ParsedManifest; -pub(crate) use parsed_manifest::{ExposedName, ParsedEnvironment}; +pub use parsed_manifest::ParsedManifest; +pub use parsed_manifest::{ExposedName, ParsedEnvironment}; use pixi_build_discovery::EnabledProtocols; use pixi_command_dispatcher::{ BuildEnvironment, CommandDispatcher, InstallPixiEnvironmentSpec, Limits, PixiEnvironmentSpec, @@ -30,6 +30,8 @@ use pixi_manifest::PrioritizedChannel; use pixi_progress::global_multi_progress; use pixi_reporters::TopLevelProgress; use pixi_spec_containers::DependencyMap; +use pixi_utils::prefix::{Executable, Prefix}; +use pixi_utils::rlimit::try_increase_rlimit_to_sensible; use pixi_utils::{executable_from_path, reqwest::build_reqwest_clients}; use rattler_conda_types::{ ChannelConfig, GenericVirtualPackage, MatchSpec, PackageName, Platform, PrefixRecord, @@ -62,9 +64,7 @@ use crate::{ install::{create_executable_trampolines, script_exec_mapping}, project::environment::environment_specs_in_sync, }, - prefix::{Executable, Prefix}, repodata::Repodata, - rlimit::try_increase_rlimit_to_sensible, }; mod environment; @@ -83,9 +83,9 @@ pub(crate) const MANIFESTS_DIR: &str = "manifests"; #[derive(Clone)] pub struct Project { /// Root folder of the project - pub(crate) root: PathBuf, + pub root: PathBuf, /// The manifest for the project - pub(crate) manifest: Manifest, + pub manifest: Manifest, /// The global configuration as loaded from the config file(s) config: Config, /// Root directory of the global environments @@ -302,7 +302,7 @@ impl Project { /// `~/.pixi/manifests/pixi-global.toml`. If the manifest doesn't exist /// yet, and the function will try to create one from the existing /// installation. If that one fails, an empty one will be created. - pub(crate) async fn discover_or_create() -> miette::Result { + pub async fn discover_or_create() -> miette::Result { let manifest_dir = Self::manifest_dir()?; let manifest_path = Self::default_manifest_path()?; // Prompt user if the manifest is empty and the user wants to create one @@ -401,7 +401,7 @@ impl Project { } /// Get default dir for the pixi global manifest - pub(crate) fn manifest_dir() -> miette::Result { + pub fn manifest_dir() -> miette::Result { // Potential directories, with the highest priority coming first let potential_dirs = [ pixi_home(), @@ -427,7 +427,7 @@ impl Project { } /// Get the default path to the global manifest file - pub(crate) fn default_manifest_path() -> miette::Result { + pub fn default_manifest_path() -> miette::Result { Self::manifest_dir().map(|dir| dir.join(consts::GLOBAL_MANIFEST_DEFAULT_NAME)) } @@ -442,7 +442,7 @@ impl Project { } /// Merge config with existing config project - pub(crate) fn with_cli_config(mut self, config: C) -> Self + pub fn with_cli_config(mut self, config: C) -> Self where C: Into, { @@ -451,25 +451,22 @@ impl Project { } /// Returns the environments in this project. - pub(crate) fn environments(&self) -> &IndexMap { + pub fn environments(&self) -> &IndexMap { &self.manifest.parsed.envs } /// Return the environment with the given name. - pub(crate) fn environment(&self, name: &EnvironmentName) -> Option<&ParsedEnvironment> { + pub fn environment(&self, name: &EnvironmentName) -> Option<&ParsedEnvironment> { self.manifest.parsed.envs.get(name) } /// Returns the EnvDir with the environment name. - pub(crate) async fn environment_dir(&self, name: &EnvironmentName) -> miette::Result { + pub async fn environment_dir(&self, name: &EnvironmentName) -> miette::Result { EnvDir::from_env_root(self.env_root.clone(), name).await } /// Returns the prefix of the environment with the given name. - pub(crate) async fn environment_prefix( - &self, - env_name: &EnvironmentName, - ) -> miette::Result { + pub async fn environment_prefix(&self, env_name: &EnvironmentName) -> miette::Result { Ok(Prefix::new(self.environment_dir(env_name).await?.path())) } @@ -486,11 +483,11 @@ impl Project { .get_or_try_init(|| build_reqwest_clients(Some(&self.config), None)) } - pub(crate) fn config(&self) -> &Config { + pub fn config(&self) -> &Config { &self.config } - pub(crate) fn global_channel_config(&self) -> &ChannelConfig { + pub fn global_channel_config(&self) -> &ChannelConfig { self.config.global_channel_config() } @@ -515,7 +512,7 @@ impl Project { } } - pub(crate) async fn install_environment( + pub async fn install_environment( &self, env_name: &EnvironmentName, ) -> miette::Result { @@ -598,7 +595,7 @@ impl Project { } /// Remove an environment from the manifest and the global installation. - pub(crate) async fn remove_environment( + pub async fn remove_environment( &mut self, env_name: &EnvironmentName, ) -> miette::Result { @@ -833,7 +830,7 @@ impl Project { } /// Internal method to check environment sync with update operation control - pub(crate) async fn environment_in_sync_internal( + pub async fn environment_in_sync_internal( &self, env_name: &EnvironmentName, is_update_operation: bool, @@ -1012,7 +1009,7 @@ impl Project { /// Syncs the parsed environment with the installation. /// Returns the state_changes if it succeeded, or an error if it didn't. - pub(crate) async fn sync_environment( + pub async fn sync_environment( &self, env_name: &EnvironmentName, removed_packages: Option>, @@ -1053,7 +1050,7 @@ impl Project { } /// Delete scripts in the bin folder that are broken - pub(crate) async fn remove_broken_files(&self) -> miette::Result<()> { + pub async fn remove_broken_files(&self) -> miette::Result<()> { // Get all the files in the global binary directory // If there's a trampoline that couldn't be correctly parsed, remove it let root_path = self.bin_dir.path(); @@ -1087,7 +1084,7 @@ impl Project { } /// Delete all non required environments - pub(crate) async fn prune_old_environments(&self) -> miette::Result { + pub async fn prune_old_environments(&self) -> miette::Result { let env_set: HashSet<&EnvironmentName> = self.environments().keys().collect(); let mut state_changes = StateChanges::default(); diff --git a/src/global/project/parsed_manifest.rs b/crates/pixi_core/src/global/project/parsed_manifest.rs similarity index 97% rename from src/global/project/parsed_manifest.rs rename to crates/pixi_core/src/global/project/parsed_manifest.rs index fa121caf23..3d910402eb 100644 --- a/src/global/project/parsed_manifest.rs +++ b/crates/pixi_core/src/global/project/parsed_manifest.rs @@ -115,7 +115,7 @@ pub struct ParsedManifest { /// The version of the manifest version: ManifestVersion, /// The environments the project can create. - pub(crate) envs: IndexMap, + pub envs: IndexMap, } impl<'de> toml_span::Deserialize<'de> for ParsedManifest { @@ -292,14 +292,14 @@ where #[derive(Serialize, Debug, Clone, Default)] #[serde(deny_unknown_fields, rename_all = "kebab-case")] -pub(crate) struct ParsedEnvironment { - pub(crate) channels: IndexSet, +pub struct ParsedEnvironment { + pub channels: IndexSet, /// Platform used by the environment. - pub(crate) platform: Option, - pub(crate) dependencies: UniquePackageMap, + pub platform: Option, + pub dependencies: UniquePackageMap, #[serde(default, serialize_with = "serialize_expose_mappings")] - pub(crate) exposed: IndexSet, - pub(crate) shortcuts: Option>, + pub exposed: IndexSet, + pub shortcuts: Option>, } impl<'de> toml_span::Deserialize<'de> for ParsedEnvironment { @@ -364,7 +364,7 @@ impl ParsedEnvironment { } #[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, PartialOrd, Ord)] -pub(crate) struct ExposedName(String); +pub struct ExposedName(String); impl fmt::Display for ExposedName { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -379,7 +379,7 @@ impl FancyDisplay for ExposedName { } #[derive(Error, Diagnostic, Debug, PartialEq)] -pub(crate) enum ExposedNameError { +pub enum ExposedNameError { #[error( "'{0}' is not allowed as exposed name in the map", pixi_utils::executable_name() diff --git a/src/global/project/snapshots/pixi__global__project__manifest__tests__add_dependency.snap b/crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__manifest__tests__add_dependency.snap similarity index 100% rename from src/global/project/snapshots/pixi__global__project__manifest__tests__add_dependency.snap rename to crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__manifest__tests__add_dependency.snap diff --git a/src/global/project/snapshots/pixi__global__project__manifest__tests__remove_dependency.snap b/crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__manifest__tests__remove_dependency.snap similarity index 100% rename from src/global/project/snapshots/pixi__global__project__manifest__tests__remove_dependency.snap rename to crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__manifest__tests__remove_dependency.snap diff --git a/src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__duplicate_dependency.snap b/crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__duplicate_dependency.snap similarity index 100% rename from src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__duplicate_dependency.snap rename to crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__duplicate_dependency.snap diff --git a/src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__duplicate_exposed.snap b/crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__duplicate_exposed.snap similarity index 100% rename from src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__duplicate_exposed.snap rename to crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__duplicate_exposed.snap diff --git a/src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__expose_pixi.snap b/crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__expose_pixi.snap similarity index 100% rename from src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__expose_pixi.snap rename to crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__expose_pixi.snap diff --git a/src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__invalid_key.snap b/crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__invalid_key.snap similarity index 100% rename from src/global/project/snapshots/pixi__global__project__parsed_manifest__tests__invalid_key.snap rename to crates/pixi_core/src/global/project/snapshots/pixi_core__global__project__parsed_manifest__tests__invalid_key.snap diff --git a/src/global/test_data/conda-meta/_r-mutex-1.0.1-anacondar_1.json b/crates/pixi_core/src/global/test_data/conda-meta/_r-mutex-1.0.1-anacondar_1.json similarity index 100% rename from src/global/test_data/conda-meta/_r-mutex-1.0.1-anacondar_1.json rename to crates/pixi_core/src/global/test_data/conda-meta/_r-mutex-1.0.1-anacondar_1.json diff --git a/src/global/test_data/conda-meta/non_conda_meta_data_file b/crates/pixi_core/src/global/test_data/conda-meta/non_conda_meta_data_file similarity index 100% rename from src/global/test_data/conda-meta/non_conda_meta_data_file rename to crates/pixi_core/src/global/test_data/conda-meta/non_conda_meta_data_file diff --git a/src/global/test_data/conda-meta/python-3.12.3-hab00c5b_0_cpython.json b/crates/pixi_core/src/global/test_data/conda-meta/python-3.12.3-hab00c5b_0_cpython.json similarity index 100% rename from src/global/test_data/conda-meta/python-3.12.3-hab00c5b_0_cpython.json rename to crates/pixi_core/src/global/test_data/conda-meta/python-3.12.3-hab00c5b_0_cpython.json diff --git a/src/global/test_data/lockfiles/ripgrep.lock b/crates/pixi_core/src/global/test_data/lockfiles/ripgrep.lock similarity index 100% rename from src/global/test_data/lockfiles/ripgrep.lock rename to crates/pixi_core/src/global/test_data/lockfiles/ripgrep.lock diff --git a/src/global/test_data/lockfiles/ripgrep_bat.lock b/crates/pixi_core/src/global/test_data/lockfiles/ripgrep_bat.lock similarity index 100% rename from src/global/test_data/lockfiles/ripgrep_bat.lock rename to crates/pixi_core/src/global/test_data/lockfiles/ripgrep_bat.lock diff --git a/src/global/trampoline.rs b/crates/pixi_core/src/global/trampoline.rs similarity index 93% rename from src/global/trampoline.rs rename to crates/pixi_core/src/global/trampoline.rs index 1c6ddfb13a..f56a6cd138 100644 --- a/src/global/trampoline.rs +++ b/crates/pixi_core/src/global/trampoline.rs @@ -36,48 +36,54 @@ use super::ExposedName; #[cfg(target_arch = "aarch64")] #[cfg(target_os = "macos")] const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-aarch64-apple-darwin.zst"); + include_bytes!("../../../../trampoline/binaries/pixi-trampoline-aarch64-apple-darwin.zst"); #[cfg(target_arch = "aarch64")] #[cfg(target_os = "windows")] -const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-aarch64-pc-windows-msvc.exe.zst"); +const TRAMPOLINE_BIN: &[u8] = include_bytes!( + "../../../../trampoline/binaries/pixi-trampoline-aarch64-pc-windows-msvc.exe.zst" +); #[cfg(target_arch = "aarch64")] #[cfg(target_os = "linux")] -const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-aarch64-unknown-linux-musl.zst"); +const TRAMPOLINE_BIN: &[u8] = include_bytes!( + "../../../../trampoline/binaries/pixi-trampoline-aarch64-unknown-linux-musl.zst" +); #[cfg(target_arch = "x86_64")] #[cfg(target_os = "macos")] const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-x86_64-apple-darwin.zst"); + include_bytes!("../../../../trampoline/binaries/pixi-trampoline-x86_64-apple-darwin.zst"); #[cfg(target_arch = "x86_64")] #[cfg(target_os = "windows")] -const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-x86_64-pc-windows-msvc.exe.zst"); +const TRAMPOLINE_BIN: &[u8] = include_bytes!( + "../../../../trampoline/binaries/pixi-trampoline-x86_64-pc-windows-msvc.exe.zst" +); #[cfg(target_arch = "powerpc64")] #[cfg(target_endian = "little")] #[cfg(target_os = "linux")] -const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-powerpc64le-unknown-linux-gnu.zst"); +const TRAMPOLINE_BIN: &[u8] = include_bytes!( + "../../../../trampoline/binaries/pixi-trampoline-powerpc64le-unknown-linux-gnu.zst" +); #[cfg(target_arch = "riscv64")] #[cfg(target_os = "linux")] -const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-riscv64gc-unknown-linux-gnu.zst"); +const TRAMPOLINE_BIN: &[u8] = include_bytes!( + "../../../../trampoline/binaries/pixi-trampoline-riscv64gc-unknown-linux-gnu.zst" +); #[cfg(target_arch = "x86_64")] #[cfg(target_os = "linux")] const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-x86_64-unknown-linux-musl.zst"); + include_bytes!("../../../../trampoline/binaries/pixi-trampoline-x86_64-unknown-linux-musl.zst"); #[cfg(target_arch = "loongarch64")] #[cfg(target_os = "linux")] -const TRAMPOLINE_BIN: &[u8] = - include_bytes!("../../trampoline/binaries/pixi-trampoline-loongarch64-unknown-linux-gnu.zst"); +const TRAMPOLINE_BIN: &[u8] = include_bytes!( + "../../../../trampoline/binaries/pixi-trampoline-loongarch64-unknown-linux-gnu.zst" +); // trampoline configuration folder name pub const TRAMPOLINE_CONFIGURATION: &str = "trampoline_configuration"; diff --git a/src/install_pypi/conda_pypi_clobber.rs b/crates/pixi_core/src/install_pypi/conda_pypi_clobber.rs similarity index 100% rename from src/install_pypi/conda_pypi_clobber.rs rename to crates/pixi_core/src/install_pypi/conda_pypi_clobber.rs diff --git a/src/install_pypi/conversions.rs b/crates/pixi_core/src/install_pypi/conversions.rs similarity index 100% rename from src/install_pypi/conversions.rs rename to crates/pixi_core/src/install_pypi/conversions.rs diff --git a/src/install_pypi/install_wheel.rs b/crates/pixi_core/src/install_pypi/install_wheel.rs similarity index 100% rename from src/install_pypi/install_wheel.rs rename to crates/pixi_core/src/install_pypi/install_wheel.rs diff --git a/src/install_pypi/mod.rs b/crates/pixi_core/src/install_pypi/mod.rs similarity index 99% rename from src/install_pypi/mod.rs rename to crates/pixi_core/src/install_pypi/mod.rs index 7c9b889976..fed44498af 100644 --- a/src/install_pypi/mod.rs +++ b/crates/pixi_core/src/install_pypi/mod.rs @@ -13,6 +13,7 @@ use pixi_manifest::{ }; use pixi_progress::await_in_progress; use pixi_record::PixiRecord; +use pixi_utils::prefix::Prefix; use pixi_uv_conversions::{ BuildIsolation, locked_indexes_to_index_locations, pypi_options_to_build_options, to_exclude_newer, to_index_strategy, @@ -44,7 +45,6 @@ use uv_resolver::{ExcludeNewer, FlatIndex}; use crate::{ install_pypi::plan::{CachedWheels, RequiredDists}, lock_file::UvResolutionContext, - prefix::Prefix, }; use pixi_reporters::{UvReporter, UvReporterOptions}; diff --git a/src/install_pypi/plan/cache.rs b/crates/pixi_core/src/install_pypi/plan/cache.rs similarity index 100% rename from src/install_pypi/plan/cache.rs rename to crates/pixi_core/src/install_pypi/plan/cache.rs diff --git a/src/install_pypi/plan/installation_source.rs b/crates/pixi_core/src/install_pypi/plan/installation_source.rs similarity index 100% rename from src/install_pypi/plan/installation_source.rs rename to crates/pixi_core/src/install_pypi/plan/installation_source.rs diff --git a/src/install_pypi/plan/installed_dists.rs b/crates/pixi_core/src/install_pypi/plan/installed_dists.rs similarity index 100% rename from src/install_pypi/plan/installed_dists.rs rename to crates/pixi_core/src/install_pypi/plan/installed_dists.rs diff --git a/src/install_pypi/plan/mod.rs b/crates/pixi_core/src/install_pypi/plan/mod.rs similarity index 100% rename from src/install_pypi/plan/mod.rs rename to crates/pixi_core/src/install_pypi/plan/mod.rs diff --git a/src/install_pypi/plan/models.rs b/crates/pixi_core/src/install_pypi/plan/models.rs similarity index 100% rename from src/install_pypi/plan/models.rs rename to crates/pixi_core/src/install_pypi/plan/models.rs diff --git a/src/install_pypi/plan/planner.rs b/crates/pixi_core/src/install_pypi/plan/planner.rs similarity index 100% rename from src/install_pypi/plan/planner.rs rename to crates/pixi_core/src/install_pypi/plan/planner.rs diff --git a/src/install_pypi/plan/reasons.rs b/crates/pixi_core/src/install_pypi/plan/reasons.rs similarity index 100% rename from src/install_pypi/plan/reasons.rs rename to crates/pixi_core/src/install_pypi/plan/reasons.rs diff --git a/src/install_pypi/plan/required_dists.rs b/crates/pixi_core/src/install_pypi/plan/required_dists.rs similarity index 100% rename from src/install_pypi/plan/required_dists.rs rename to crates/pixi_core/src/install_pypi/plan/required_dists.rs diff --git a/src/install_pypi/plan/test/harness.rs b/crates/pixi_core/src/install_pypi/plan/test/harness.rs similarity index 100% rename from src/install_pypi/plan/test/harness.rs rename to crates/pixi_core/src/install_pypi/plan/test/harness.rs diff --git a/src/install_pypi/plan/test/mod.rs b/crates/pixi_core/src/install_pypi/plan/test/mod.rs similarity index 100% rename from src/install_pypi/plan/test/mod.rs rename to crates/pixi_core/src/install_pypi/plan/test/mod.rs diff --git a/src/install_pypi/plan/validation.rs b/crates/pixi_core/src/install_pypi/plan/validation.rs similarity index 100% rename from src/install_pypi/plan/validation.rs rename to crates/pixi_core/src/install_pypi/plan/validation.rs diff --git a/src/install_pypi/utils.rs b/crates/pixi_core/src/install_pypi/utils.rs similarity index 100% rename from src/install_pypi/utils.rs rename to crates/pixi_core/src/install_pypi/utils.rs diff --git a/crates/pixi_core/src/lib.rs b/crates/pixi_core/src/lib.rs new file mode 100644 index 0000000000..d42b19150d --- /dev/null +++ b/crates/pixi_core/src/lib.rs @@ -0,0 +1,17 @@ +#![deny(clippy::dbg_macro, clippy::unwrap_used)] + +pub mod activation; +pub mod diff; +pub mod environment; +pub mod global; +mod install_pypi; +pub mod lock_file; +pub mod prompt; +pub(crate) mod repodata; +pub mod task; +pub mod workspace; + +pub mod signals; + +pub use lock_file::UpdateLockFileOptions; +pub use workspace::{DependencyType, Workspace, WorkspaceLocator}; diff --git a/src/lock_file/mod.rs b/crates/pixi_core/src/lock_file/mod.rs similarity index 90% rename from src/lock_file/mod.rs rename to crates/pixi_core/src/lock_file/mod.rs index b164e0867a..b1583c9926 100644 --- a/src/lock_file/mod.rs +++ b/crates/pixi_core/src/lock_file/mod.rs @@ -9,18 +9,18 @@ mod utils; pub mod virtual_packages; pub use crate::environment::CondaPrefixUpdater; -pub(crate) use package_identifier::PypiPackageIdentifier; +pub use package_identifier::PypiPackageIdentifier; use pixi_record::PixiRecord; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; -pub(crate) use records_by_name::{PixiRecordsByName, PypiRecordsByName}; -pub(crate) use resolve::{pypi::resolve_pypi, uv_resolution_context::UvResolutionContext}; +pub use records_by_name::{PixiRecordsByName, PypiRecordsByName}; +pub use resolve::{pypi::resolve_pypi, uv_resolution_context::UvResolutionContext}; pub use satisfiability::{ EnvironmentUnsat, PlatformUnsat, verify_environment_satisfiability, verify_platform_satisfiability, }; pub use update::{LockFileDerivedData, ReinstallPackages, UpdateContext}; pub use update::{UpdateLockFileOptions, UpdateMode}; -pub(crate) use utils::filter_lock_file; +pub use utils::filter_lock_file; pub use utils::IoConcurrencyLimit; diff --git a/src/lock_file/outdated.rs b/crates/pixi_core/src/lock_file/outdated.rs similarity index 100% rename from src/lock_file/outdated.rs rename to crates/pixi_core/src/lock_file/outdated.rs diff --git a/src/lock_file/package_identifier.rs b/crates/pixi_core/src/lock_file/package_identifier.rs similarity index 100% rename from src/lock_file/package_identifier.rs rename to crates/pixi_core/src/lock_file/package_identifier.rs diff --git a/src/lock_file/records_by_name.rs b/crates/pixi_core/src/lock_file/records_by_name.rs similarity index 96% rename from src/lock_file/records_by_name.rs rename to crates/pixi_core/src/lock_file/records_by_name.rs index 453b858c60..cbd0c0cd41 100644 --- a/src/lock_file/records_by_name.rs +++ b/crates/pixi_core/src/lock_file/records_by_name.rs @@ -8,11 +8,11 @@ use std::collections::HashMap; use std::collections::hash_map::Entry; use std::hash::Hash; -pub(crate) type PypiRecordsByName = DependencyRecordsByName; -pub(crate) type PixiRecordsByName = DependencyRecordsByName; +pub type PypiRecordsByName = DependencyRecordsByName; +pub type PixiRecordsByName = DependencyRecordsByName; /// A trait required from the dependencies stored in DependencyRecordsByName -pub(crate) trait HasNameVersion { +pub trait HasNameVersion { // Name type of the dependency type N: Hash + Eq + Clone; // Version type of the dependency @@ -64,8 +64,8 @@ impl HasNameVersion for PixiRecord { /// A struct that holds both a ``Vec` of `DependencyRecord` and a mapping from /// name to index. #[derive(Clone, Debug)] -pub(crate) struct DependencyRecordsByName { - pub(crate) records: Vec, +pub struct DependencyRecordsByName { + pub records: Vec, by_name: HashMap, } diff --git a/src/lock_file/reporter/mod.rs b/crates/pixi_core/src/lock_file/reporter/mod.rs similarity index 100% rename from src/lock_file/reporter/mod.rs rename to crates/pixi_core/src/lock_file/reporter/mod.rs diff --git a/src/lock_file/reporter/progress_bar.rs b/crates/pixi_core/src/lock_file/reporter/progress_bar.rs similarity index 100% rename from src/lock_file/reporter/progress_bar.rs rename to crates/pixi_core/src/lock_file/reporter/progress_bar.rs diff --git a/src/lock_file/resolve/build_dispatch.rs b/crates/pixi_core/src/lock_file/resolve/build_dispatch.rs similarity index 100% rename from src/lock_file/resolve/build_dispatch.rs rename to crates/pixi_core/src/lock_file/resolve/build_dispatch.rs diff --git a/src/lock_file/resolve/mod.rs b/crates/pixi_core/src/lock_file/resolve/mod.rs similarity index 100% rename from src/lock_file/resolve/mod.rs rename to crates/pixi_core/src/lock_file/resolve/mod.rs diff --git a/src/lock_file/resolve/pypi.rs b/crates/pixi_core/src/lock_file/resolve/pypi.rs similarity index 100% rename from src/lock_file/resolve/pypi.rs rename to crates/pixi_core/src/lock_file/resolve/pypi.rs diff --git a/src/lock_file/resolve/resolver_provider.rs b/crates/pixi_core/src/lock_file/resolve/resolver_provider.rs similarity index 100% rename from src/lock_file/resolve/resolver_provider.rs rename to crates/pixi_core/src/lock_file/resolve/resolver_provider.rs diff --git a/src/lock_file/resolve/uv_resolution_context.rs b/crates/pixi_core/src/lock_file/resolve/uv_resolution_context.rs similarity index 97% rename from src/lock_file/resolve/uv_resolution_context.rs rename to crates/pixi_core/src/lock_file/resolve/uv_resolution_context.rs index 5277076240..227c2f5f3c 100644 --- a/src/lock_file/resolve/uv_resolution_context.rs +++ b/crates/pixi_core/src/lock_file/resolve/uv_resolution_context.rs @@ -34,7 +34,7 @@ pub struct UvResolutionContext { } impl UvResolutionContext { - pub(crate) fn from_workspace(project: &Workspace) -> miette::Result { + pub fn from_workspace(project: &Workspace) -> miette::Result { let uv_cache = get_cache_dir()?.join(consts::PYPI_CACHE_DIR); if !uv_cache.exists() { fs_err::create_dir_all(&uv_cache) diff --git a/src/lock_file/satisfiability/mod.rs b/crates/pixi_core/src/lock_file/satisfiability/mod.rs similarity index 99% rename from src/lock_file/satisfiability/mod.rs rename to crates/pixi_core/src/lock_file/satisfiability/mod.rs index f16ef01453..d7ea42f319 100644 --- a/src/lock_file/satisfiability/mod.rs +++ b/crates/pixi_core/src/lock_file/satisfiability/mod.rs @@ -1900,7 +1900,7 @@ mod tests { #[rstest] #[tokio::test] async fn test_good_satisfiability( - #[files("tests/data/satisfiability/*/pixi.toml")] manifest_path: PathBuf, + #[files("../../tests/data/satisfiability/*/pixi.toml")] manifest_path: PathBuf, ) { // TODO: skip this test on windows // Until we can figure out how to handle unix file paths with pep508_rs url @@ -1927,7 +1927,9 @@ mod tests { #[rstest] #[tokio::test] #[cfg_attr(not(feature = "slow_integration_tests"), ignore)] - async fn test_example_satisfiability(#[files("examples/**/p*.toml")] manifest_path: PathBuf) { + async fn test_example_satisfiability( + #[files("../../examples/**/p*.toml")] manifest_path: PathBuf, + ) { // If a pyproject.toml is present check for `tool.pixi` in the file to avoid // testing of non-pixi files if manifest_path.file_name().unwrap() == "pyproject.toml" { @@ -1960,7 +1962,7 @@ mod tests { #[rstest] #[tokio::test] async fn test_failing_satisiability( - #[files("tests/data/non-satisfiability/*/pixi.toml")] manifest_path: PathBuf, + #[files("../../tests/data/non-satisfiability/*/pixi.toml")] manifest_path: PathBuf, ) { let report_handler = NarratableReportHandler::new().with_cause_chain(); diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@binary-spec-source-record.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@binary-spec-source-record.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@binary-spec-source-record.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@binary-spec-source-record.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@expected-editable-multiple.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@expected-editable-multiple.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@expected-editable-multiple.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@expected-editable-multiple.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@expected-editable.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@expected-editable.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@expected-editable.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@expected-editable.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@explicit-pypi-dependency.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@explicit-pypi-dependency.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@explicit-pypi-dependency.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@explicit-pypi-dependency.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatched-source-spec.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatched-source-spec.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatched-source-spec.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatched-source-spec.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatched-spec.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatched-spec.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatched-spec.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatched-spec.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@missing-dependency.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@missing-dependency.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@missing-dependency.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@missing-dependency.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@missing-pypi-extra.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@missing-pypi-extra.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@missing-pypi-extra.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@missing-pypi-extra.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mixed-pypi-conda.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mixed-pypi-conda.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mixed-pypi-conda.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mixed-pypi-conda.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@non-binary-no-build.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@non-binary-no-build.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@non-binary-no-build.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@non-binary-no-build.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@solve-groups-pypi.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@solve-groups-pypi.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@solve-groups-pypi.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@solve-groups-pypi.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-dependency-changed-project-model.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-dependency-changed-project-model.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-dependency-changed-project-model.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-dependency-changed-project-model.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-dependency.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-dependency.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-dependency.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-dependency.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-changed-dir.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-changed-dir.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-changed-dir.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-changed-dir.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-mismatch.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-mismatch.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-mismatch.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency-mismatch.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@source-recursive-dependency.snap diff --git a/src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@too-many-platforms.snap b/crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@too-many-platforms.snap similarity index 100% rename from src/lock_file/satisfiability/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@too-many-platforms.snap rename to crates/pixi_core/src/lock_file/satisfiability/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@too-many-platforms.snap diff --git a/src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap b/crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap similarity index 100% rename from src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap rename to crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority.snap diff --git a/src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap b/crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap similarity index 100% rename from src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap rename to crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-channel-priority2.snap diff --git a/src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap b/crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap similarity index 100% rename from src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap rename to crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer.snap diff --git a/src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap b/crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap similarity index 100% rename from src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap rename to crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer2.snap diff --git a/src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap b/crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap similarity index 100% rename from src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap rename to crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-exclude-newer3.snap diff --git a/src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap b/crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap similarity index 100% rename from src/lock_file/snapshots/pixi__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap rename to crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__satisfiability__tests__failing_satisiability@mismatch-solve-strategy.snap diff --git a/src/lock_file/snapshots/pixi__lock_file__virtual_packages__test__virtual_package_not_found_error.snap b/crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__virtual_packages__test__virtual_package_not_found_error.snap similarity index 100% rename from src/lock_file/snapshots/pixi__lock_file__virtual_packages__test__virtual_package_not_found_error.snap rename to crates/pixi_core/src/lock_file/snapshots/pixi_core__lock_file__virtual_packages__test__virtual_package_not_found_error.snap diff --git a/src/lock_file/update.rs b/crates/pixi_core/src/lock_file/update.rs similarity index 99% rename from src/lock_file/update.rs rename to crates/pixi_core/src/lock_file/update.rs index 4b68e6656c..163b6785e4 100644 --- a/src/lock_file/update.rs +++ b/crates/pixi_core/src/lock_file/update.rs @@ -15,7 +15,6 @@ use crate::{ self, PypiRecord, reporter::SolveProgressBar, virtual_packages::validate_system_meets_environment_requirements, }, - prefix::Prefix, workspace::{ Environment, EnvironmentVars, HasWorkspaceRef, get_activated_environment_variables, grouped_environment::{GroupedEnvironment, GroupedEnvironmentName}, @@ -35,6 +34,7 @@ use pixi_glob::GlobHashCache; use pixi_manifest::{ChannelPriority, EnvironmentName, FeaturesExt}; use pixi_progress::global_multi_progress; use pixi_record::{ParseLockFileError, PixiRecord}; +use pixi_utils::prefix::Prefix; use pixi_uv_conversions::{ ConversionError, to_extra_name, to_marker_environment, to_normalize, to_uv_extra_name, to_uv_normalize, @@ -234,7 +234,7 @@ pub struct LockFileDerivedData<'p> { /// /// Prefer to use `as_lock_file` or `into_lock_file` to also make a decision /// what to do with the resources used to create this instance. - pub(crate) lock_file: LockFile, + pub lock_file: LockFile, /// The package cache pub package_cache: PackageCache, @@ -296,7 +296,7 @@ impl<'p> LockFileDerivedData<'p> { /// Returns a reference to the internal lock-file but does not consume any /// build resources, this is useful if you want to keep using the original /// instance. - pub(crate) fn as_lock_file(&self) -> &LockFile { + pub fn as_lock_file(&self) -> &LockFile { &self.lock_file } @@ -962,13 +962,13 @@ impl<'p> UpdateContextBuilder<'p> { /// Defines if during the update-process it is allowed to create prefixes. /// This might be required to solve pypi dependencies because those require /// a python interpreter. - pub(crate) fn with_no_install(self, no_install: bool) -> Self { + pub fn with_no_install(self, no_install: bool) -> Self { Self { no_install, ..self } } /// Sets the current lock-file that should be used to determine the /// previously locked packages. - pub(crate) fn with_lock_file(self, lock_file: LockFile) -> Self { + pub fn with_lock_file(self, lock_file: LockFile) -> Self { Self { lock_file, ..self } } @@ -982,7 +982,7 @@ impl<'p> UpdateContextBuilder<'p> { /// Explicitly set the environments that are considered out-of-date. Only /// these environments will be updated during the update process. - pub(crate) fn with_outdated_environments( + pub fn with_outdated_environments( self, outdated_environments: OutdatedEnvironments<'p>, ) -> Self { @@ -1002,7 +1002,7 @@ impl<'p> UpdateContextBuilder<'p> { } /// Construct the context. - pub(crate) async fn finish(self) -> miette::Result> { + pub async fn finish(self) -> miette::Result> { let project = self.project; let package_cache = match self.package_cache { Some(package_cache) => package_cache, @@ -1228,7 +1228,7 @@ impl<'p> UpdateContextBuilder<'p> { impl<'p> UpdateContext<'p> { /// Construct a new builder for the update context. - pub(crate) fn builder(project: &'p Workspace) -> UpdateContextBuilder<'p> { + pub fn builder(project: &'p Workspace) -> UpdateContextBuilder<'p> { UpdateContextBuilder { project, lock_file: LockFile::default(), diff --git a/src/lock_file/utils.rs b/crates/pixi_core/src/lock_file/utils.rs similarity index 100% rename from src/lock_file/utils.rs rename to crates/pixi_core/src/lock_file/utils.rs diff --git a/src/lock_file/virtual_packages.rs b/crates/pixi_core/src/lock_file/virtual_packages.rs similarity index 97% rename from src/lock_file/virtual_packages.rs rename to crates/pixi_core/src/lock_file/virtual_packages.rs index 114c559304..22c079ffd3 100644 --- a/src/lock_file/virtual_packages.rs +++ b/crates/pixi_core/src/lock_file/virtual_packages.rs @@ -300,7 +300,8 @@ mod test { #[test] fn test_get_minimal_virtual_packages() { let root_dir = Path::new(env!("CARGO_MANIFEST_DIR")); - let lockfile_path = root_dir.join("tests/data/lockfiles/cuda_virtual_dependency.lock"); + let lockfile_path = + root_dir.join("../../tests/data/lockfiles/cuda_virtual_dependency.lock"); let lockfile = LockFile::from_path(&lockfile_path).unwrap(); let platform = Platform::Linux64; let env = lockfile.default_environment().unwrap(); @@ -328,7 +329,8 @@ mod test { #[test] fn test_validate_virtual_packages() { let root_dir = Path::new(env!("CARGO_MANIFEST_DIR")); - let lockfile_path = root_dir.join("tests/data/lockfiles/cuda_virtual_dependency.lock"); + let lockfile_path = + root_dir.join("../../tests/data/lockfiles/cuda_virtual_dependency.lock"); let lockfile = LockFile::from_path(&lockfile_path).unwrap(); let platform = Platform::Linux64; @@ -364,7 +366,7 @@ mod test { #[test] fn test_validate_wheel_tags() { let root_dir = Path::new(env!("CARGO_MANIFEST_DIR")); - let lockfile_path = root_dir.join("tests/data/lockfiles/pypi-numpy.lock"); + let lockfile_path = root_dir.join("../../tests/data/lockfiles/pypi-numpy.lock"); let lockfile = LockFile::from_path(&lockfile_path).unwrap(); let platform = Platform::current(); @@ -466,7 +468,7 @@ mod test { #[test] fn test_archspec_skip() { let root_dir = Path::new(env!("CARGO_MANIFEST_DIR")); - let lockfile_path = root_dir.join("tests/data/lockfiles/archspec.lock"); + let lockfile_path = root_dir.join("../../tests/data/lockfiles/archspec.lock"); let lockfile = LockFile::from_path(&lockfile_path).unwrap(); let platform = Platform::Linux64; @@ -488,7 +490,8 @@ mod test { #[test] fn test_ignored_virtual_packages() { let root_dir = Path::new(env!("CARGO_MANIFEST_DIR")); - let lockfile_path = root_dir.join("tests/data/lockfiles/ignored_virtual_packages.lock"); + let lockfile_path = + root_dir.join("../../tests/data/lockfiles/ignored_virtual_packages.lock"); let lockfile = LockFile::from_path(&lockfile_path).unwrap(); let platform = Platform::Linux64; diff --git a/src/prompt.rs b/crates/pixi_core/src/prompt.rs similarity index 83% rename from src/prompt.rs rename to crates/pixi_core/src/prompt.rs index be358f7f49..2e0c1a0ae0 100644 --- a/src/prompt.rs +++ b/crates/pixi_core/src/prompt.rs @@ -2,22 +2,22 @@ use pixi_manifest::EnvironmentName; use rattler_shell::shell::ShellEnum; /// Sets default pixi hook for the bash shell -pub(crate) fn bash_hook() -> &'static str { +pub fn bash_hook() -> &'static str { include_str!("shell_snippets/pixi-bash.sh") } /// Sets default pixi hook for the zsh shell -pub(crate) fn zsh_hook() -> &'static str { +pub fn zsh_hook() -> &'static str { include_str!("shell_snippets/pixi-zsh.sh") } /// Sets default pixi prompt for posix shells -pub(crate) fn posix_prompt(env_name: &str) -> String { +pub fn posix_prompt(env_name: &str) -> String { format!("export PS1=\"({}) ${{PS1:-}}\"", env_name) } /// Sets default pixi prompt for the fish shell -pub(crate) fn fish_prompt(env_name: &str) -> String { +pub fn fish_prompt(env_name: &str) -> String { format!( r#" function __pixi_add_prompt @@ -62,13 +62,13 @@ pub(crate) fn fish_prompt(env_name: &str) -> String { } /// Sets default pixi prompt for the xonsh shell -pub(crate) fn xonsh_prompt() -> String { +pub fn xonsh_prompt() -> String { // Xonsh' default prompt can find the environment for some reason. "".to_string() } /// Sets default pixi prompt for the powershell -pub(crate) fn powershell_prompt(env_name: &str) -> String { +pub fn powershell_prompt(env_name: &str) -> String { format!( "$old_prompt = $function:prompt\n\ function prompt {{\"({}) $($old_prompt.Invoke())\"}}", @@ -77,7 +77,7 @@ pub(crate) fn powershell_prompt(env_name: &str) -> String { } /// Sets default pixi prompt for the Nu shell -pub(crate) fn nu_prompt(env_name: &str) -> String { +pub fn nu_prompt(env_name: &str) -> String { format!( "let old_prompt = $env.PROMPT_COMMAND; \ $env.PROMPT_COMMAND = {{|| echo $\"\\({}\\) (do $old_prompt)\"}}", @@ -86,12 +86,12 @@ pub(crate) fn nu_prompt(env_name: &str) -> String { } /// Sets default pixi prompt for the cmd.exe command prompt -pub(crate) fn cmd_prompt(env_name: &str) -> String { +pub fn cmd_prompt(env_name: &str) -> String { format!(r"@PROMPT ({}) $P$G", env_name) } /// Returns appropriate hook function for configured shell -pub(crate) fn shell_hook(shell: &ShellEnum) -> Option<&str> { +pub fn shell_hook(shell: &ShellEnum) -> Option<&str> { match shell { ShellEnum::Bash(_) => Some(bash_hook()), ShellEnum::Zsh(_) => Some(zsh_hook()), @@ -100,7 +100,7 @@ pub(crate) fn shell_hook(shell: &ShellEnum) -> Option<&str> { } /// Returns appropriate prompt (without hook) for configured shell -pub(crate) fn shell_prompt(shell: &ShellEnum, prompt_name: &str) -> String { +pub fn shell_prompt(shell: &ShellEnum, prompt_name: &str) -> String { match shell { ShellEnum::NuShell(_) => nu_prompt(prompt_name), ShellEnum::PowerShell(_) => powershell_prompt(prompt_name), @@ -113,7 +113,7 @@ pub(crate) fn shell_prompt(shell: &ShellEnum, prompt_name: &str) -> String { } /// Returns prompt name for given project and environment -pub(crate) fn prompt_name(project_name: &str, environment_name: &EnvironmentName) -> String { +pub fn prompt_name(project_name: &str, environment_name: &EnvironmentName) -> String { match environment_name { EnvironmentName::Default => project_name.to_string(), EnvironmentName::Named(name) => format!("{}:{}", project_name, name), diff --git a/src/repodata.rs b/crates/pixi_core/src/repodata.rs similarity index 100% rename from src/repodata.rs rename to crates/pixi_core/src/repodata.rs diff --git a/src/shell_snippets/pixi-bash.sh b/crates/pixi_core/src/shell_snippets/pixi-bash.sh similarity index 100% rename from src/shell_snippets/pixi-bash.sh rename to crates/pixi_core/src/shell_snippets/pixi-bash.sh diff --git a/src/shell_snippets/pixi-zsh.sh b/crates/pixi_core/src/shell_snippets/pixi-zsh.sh similarity index 100% rename from src/shell_snippets/pixi-zsh.sh rename to crates/pixi_core/src/shell_snippets/pixi-zsh.sh diff --git a/src/signals.rs b/crates/pixi_core/src/signals.rs similarity index 100% rename from src/signals.rs rename to crates/pixi_core/src/signals.rs diff --git a/src/task/error.rs b/crates/pixi_core/src/task/error.rs similarity index 100% rename from src/task/error.rs rename to crates/pixi_core/src/task/error.rs diff --git a/src/task/executable_task.rs b/crates/pixi_core/src/task/executable_task.rs similarity index 97% rename from src/task/executable_task.rs rename to crates/pixi_core/src/task/executable_task.rs index 123f6205dc..6a76b0973d 100644 --- a/src/task/executable_task.rs +++ b/crates/pixi_core/src/task/executable_task.rs @@ -111,21 +111,21 @@ impl<'p> ExecutableTask<'p> { } /// Returns the name of the task or `None` if this is an anonymous task. - pub(crate) fn name(&self) -> Option<&str> { + pub fn name(&self) -> Option<&str> { self.name.as_ref().map(|name| name.as_str()) } /// Returns the task description from the project. - pub(crate) fn task(&self) -> &Task { + pub fn task(&self) -> &Task { self.task.as_ref() } /// Returns the project in which this task is defined. - pub(crate) fn project(&self) -> &'p Workspace { + pub fn project(&self) -> &'p Workspace { self.workspace } - pub(crate) fn args(&self) -> &ArgValues { + pub fn args(&self) -> &ArgValues { &self.args } @@ -169,7 +169,7 @@ impl<'p> ExecutableTask<'p> { /// Returns a [`SequentialList`] which can be executed by deno task shell. /// Returns `None` if the command is not executable like in the case of /// an alias. - pub(crate) fn as_deno_script( + pub fn as_deno_script( &self, command_env: &HashMap, ) -> Result, FailedToParseShellScript> { @@ -195,7 +195,7 @@ impl<'p> ExecutableTask<'p> { } /// Returns the working directory for this task. - pub(crate) fn working_directory(&self) -> Result { + pub fn working_directory(&self) -> Result { Ok(match self.task.working_directory() { Some(cwd) if cwd.is_absolute() => cwd.to_path_buf(), Some(cwd) => { @@ -217,7 +217,7 @@ impl<'p> ExecutableTask<'p> { /// /// This function returns `None` if the task does not define a command to /// execute. This is the case for alias only commands. - pub(crate) fn full_command(&self) -> Result, TemplateStringError> { + pub fn full_command(&self) -> Result, TemplateStringError> { let original_cmd = self .task .as_single_command(Some(&self.args))? @@ -238,7 +238,7 @@ impl<'p> ExecutableTask<'p> { /// Returns an object that implements [`Display`] which outputs the command /// of the wrapped task. - pub(crate) fn display_command(&self) -> impl Display + '_ { + pub fn display_command(&self) -> impl Display + '_ { ExecutableTaskConsoleDisplay { task: self } } @@ -298,7 +298,7 @@ impl<'p> ExecutableTask<'p> { /// `CanSkip::No` and includes the hash of the task that caused the task /// to not be skipped - we can use this later to update the cache file /// quickly. - pub(crate) async fn can_skip(&self, lock_file: &LockFile) -> Result { + pub async fn can_skip(&self, lock_file: &LockFile) -> Result { tracing::info!("Checking if task can be skipped"); let args_hash = TaskHash::task_args_hash(self).unwrap_or_default(); let cache_name = self.cache_name(args_hash); @@ -321,7 +321,7 @@ impl<'p> ExecutableTask<'p> { /// Saves the cache of the task. This function will update the cache file /// with the new hash of the task (inputs and outputs). If the task has /// no hash, it will not save the cache. - pub(crate) async fn save_cache( + pub async fn save_cache( &self, lock_file: &LockFile, previous_hash: Option, diff --git a/src/task/file_hashes.rs b/crates/pixi_core/src/task/file_hashes.rs similarity index 100% rename from src/task/file_hashes.rs rename to crates/pixi_core/src/task/file_hashes.rs diff --git a/src/task/mod.rs b/crates/pixi_core/src/task/mod.rs similarity index 100% rename from src/task/mod.rs rename to crates/pixi_core/src/task/mod.rs diff --git a/src/task/task_environment.rs b/crates/pixi_core/src/task/task_environment.rs similarity index 99% rename from src/task/task_environment.rs rename to crates/pixi_core/src/task/task_environment.rs index 7b7e924da5..39056855cf 100644 --- a/src/task/task_environment.rs +++ b/crates/pixi_core/src/task/task_environment.rs @@ -102,9 +102,7 @@ impl<'p> SearchEnvironments<'p, NoDisambiguation> { impl<'p, D: TaskDisambiguation<'p>> SearchEnvironments<'p, D> { /// Returns a new `SearchEnvironments` with the given disambiguation /// function. - pub(crate) fn with_disambiguate_fn< - F: Fn(&AmbiguousTask<'p>) -> Option>, - >( + pub fn with_disambiguate_fn) -> Option>>( self, func: F, ) -> SearchEnvironments<'p, DisambiguateFn> { diff --git a/src/task/task_graph.rs b/crates/pixi_core/src/task/task_graph.rs similarity index 100% rename from src/task/task_graph.rs rename to crates/pixi_core/src/task/task_graph.rs diff --git a/src/task/task_hash.rs b/crates/pixi_core/src/task/task_hash.rs similarity index 100% rename from src/task/task_hash.rs rename to crates/pixi_core/src/task/task_hash.rs diff --git a/src/workspace/discovery.rs b/crates/pixi_core/src/workspace/discovery.rs similarity index 90% rename from src/workspace/discovery.rs rename to crates/pixi_core/src/workspace/discovery.rs index a969f4631f..e3c1c399ab 100644 --- a/src/workspace/discovery.rs +++ b/crates/pixi_core/src/workspace/discovery.rs @@ -285,7 +285,7 @@ impl WorkspaceLocator { #[cfg(test)] mod test { - use std::path::{Path, PathBuf}; + use std::path::Path; use super::*; @@ -293,8 +293,9 @@ mod test { fn test_workspace_locator() { let workspace_locator = WorkspaceLocator::default(); let workspace = workspace_locator.locate().unwrap(); - let project_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); - assert_eq!(workspace.root, PathBuf::from(project_root)); + let crate_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + let project_root = Path::new(&crate_root).parent().unwrap().parent().unwrap(); + assert_eq!(workspace.root, project_root); } #[test] @@ -302,42 +303,44 @@ mod test { // Equivalent to `pixi xxx` where xxx is any command let workspace_locator = WorkspaceLocator::for_cli(); let workspace = workspace_locator.locate().unwrap(); - let project_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); - assert_eq!(workspace.root, PathBuf::from(project_root)); + let crate_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + let project_root = Path::new(&crate_root).parent().unwrap().parent().unwrap(); + assert_eq!(workspace.root, project_root); } #[test] fn test_workspace_locator_explicit() { // Equivalent to `pixi xxx --manifest /absolute/path/to/pixi.toml` - let project_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); - let workspace_locator = - WorkspaceLocator::default().with_search_start(DiscoveryStart::ExplicitManifest( - Path::new(&project_root).join("pixi.toml").to_path_buf(), - )); + let crate_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + let project_root = Path::new(&crate_root).parent().unwrap().parent().unwrap(); + let workspace_locator = WorkspaceLocator::default().with_search_start( + DiscoveryStart::ExplicitManifest(project_root.join("pixi.toml").to_path_buf()), + ); let workspace = workspace_locator.locate().unwrap(); - assert_eq!(workspace.root, PathBuf::from(project_root)); + assert_eq!(workspace.root, project_root); } #[test] fn test_workspace_locator_explicit_simple() { // Equivalent to `pixi xxx --manifest pixi.toml` - let project_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + let crate_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + let project_root = Path::new(&crate_root).parent().unwrap().parent().unwrap(); let workspace_locator = WorkspaceLocator::default().with_search_start( - DiscoveryStart::ExplicitManifest(Path::new("pixi.toml").to_path_buf()), + DiscoveryStart::ExplicitManifest(Path::new("../../pixi.toml").to_path_buf()), ); let workspace = workspace_locator.locate().unwrap(); - assert_eq!(workspace.root, PathBuf::from(project_root)); + assert_eq!(workspace.root, project_root); } #[test] fn test_workspace_locator_explicit_path() { // Equivalent to `pixi xxx --manifest /absolute/path/to/folder` - let project_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); - let workspace_locator = WorkspaceLocator::default().with_search_start( - DiscoveryStart::ExplicitManifest(Path::new(&project_root).to_path_buf()), - ); + let crate_root = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + let project_root = Path::new(&crate_root).parent().unwrap().parent().unwrap(); + let workspace_locator = WorkspaceLocator::default() + .with_search_start(DiscoveryStart::ExplicitManifest(project_root.to_path_buf())); let workspace = workspace_locator.locate().unwrap(); - assert_eq!(workspace.root, PathBuf::from(project_root)); + assert_eq!(workspace.root, project_root); } #[test] diff --git a/src/workspace/environment.rs b/crates/pixi_core/src/workspace/environment.rs similarity index 98% rename from src/workspace/environment.rs rename to crates/pixi_core/src/workspace/environment.rs index 5da0259851..a23b47e1db 100644 --- a/src/workspace/environment.rs +++ b/crates/pixi_core/src/workspace/environment.rs @@ -70,7 +70,7 @@ impl<'p> Environment<'p> { } /// Returns true if this environment is the default environment. - pub(crate) fn is_default(&self) -> bool { + pub fn is_default(&self) -> bool { self.environment.name == EnvironmentName::Default } @@ -86,7 +86,7 @@ impl<'p> Environment<'p> { /// Returns the solve group to which this environment belongs, or `None` if /// no solve group was specified. - pub(crate) fn solve_group(&self) -> Option> { + pub fn solve_group(&self) -> Option> { self.environment .solve_group .map(|solve_group_idx| SolveGroup { @@ -105,12 +105,12 @@ impl<'p> Environment<'p> { /// We store a hash of the lockfile and all activation env variables in a /// file in the cache. The current name is /// `activation_environment-name.json`. - pub(crate) fn activation_cache_name(&self) -> String { + pub fn activation_cache_name(&self) -> String { format!("activation_{}.json", self.name()) } /// Returns the activation cache file path. - pub(crate) fn activation_cache_file_path(&self) -> std::path::PathBuf { + pub fn activation_cache_file_path(&self) -> std::path::PathBuf { self.workspace .activation_env_cache_folder() .join(self.activation_cache_name()) @@ -200,7 +200,7 @@ impl<'p> Environment<'p> { /// Return all tasks available for the given environment /// This will not return task prefixed with _ - pub(crate) fn get_filtered_tasks(&self) -> HashSet { + pub fn get_filtered_tasks(&self) -> HashSet { self.tasks(Some(self.best_platform())) .into_iter() .flat_map(|tasks| { @@ -217,7 +217,7 @@ impl<'p> Environment<'p> { } /// Returns the task with the given `name` and for the specified `platform` /// or an `UnknownTask` which explains why the task was not available. - pub(crate) fn task( + pub fn task( &self, name: &TaskName, platform: Option, @@ -236,9 +236,7 @@ impl<'p> Environment<'p> { /// Returns a map of all the features and their tasks for this environment. /// /// Resolves for the best platform target. - pub(crate) fn feature_tasks( - &self, - ) -> HashMap<&'p FeatureName, HashMap<&'p TaskName, &'p Task>> { + pub fn feature_tasks(&self) -> HashMap<&'p FeatureName, HashMap<&'p TaskName, &'p Task>> { self.features() .map(|feature| { ( @@ -270,8 +268,8 @@ impl<'p> Environment<'p> { /// /// If you want to get the system requirements for this environment without /// taking the solve group into account, use the - /// [`Self::local_system_requirements`] method. - pub(crate) fn system_requirements(&self) -> SystemRequirements { + /// [`FeaturesExt::local_system_requirements`] method. + pub fn system_requirements(&self) -> SystemRequirements { if let Some(solve_group) = self.solve_group() { solve_group.system_requirements() } else { diff --git a/src/workspace/errors.rs b/crates/pixi_core/src/workspace/errors.rs similarity index 100% rename from src/workspace/errors.rs rename to crates/pixi_core/src/workspace/errors.rs diff --git a/src/workspace/grouped_environment.rs b/crates/pixi_core/src/workspace/grouped_environment.rs similarity index 99% rename from src/workspace/grouped_environment.rs rename to crates/pixi_core/src/workspace/grouped_environment.rs index 02f92c486f..aec116d7d0 100644 --- a/src/workspace/grouped_environment.rs +++ b/crates/pixi_core/src/workspace/grouped_environment.rs @@ -8,11 +8,11 @@ use pixi_manifest::{ EnvironmentName, Feature, HasFeaturesIter, HasWorkspaceManifest, SystemRequirements, WorkspaceManifest, }; +use pixi_utils::prefix::Prefix; use rattler_conda_types::{ChannelConfig, GenericVirtualPackage, Platform}; use crate::{ Workspace, - prefix::Prefix, workspace::{ Environment, HasWorkspaceRef, SolveGroup, virtual_packages::get_minimal_virtual_packages, }, diff --git a/src/workspace/has_project_ref.rs b/crates/pixi_core/src/workspace/has_project_ref.rs similarity index 100% rename from src/workspace/has_project_ref.rs rename to crates/pixi_core/src/workspace/has_project_ref.rs diff --git a/src/workspace/mod.rs b/crates/pixi_core/src/workspace/mod.rs similarity index 98% rename from src/workspace/mod.rs rename to crates/pixi_core/src/workspace/mod.rs index eb67a8f7f2..68c5531830 100644 --- a/src/workspace/mod.rs +++ b/crates/pixi_core/src/workspace/mod.rs @@ -40,6 +40,7 @@ use pixi_manifest::{ use pixi_pypi_spec::{PixiPypiSpec, PypiPackageName}; use pixi_spec::SourceSpec; use pixi_utils::reqwest::build_reqwest_clients; +use pixi_utils::variants::VariantConfig; use pypi_mapping::{ChannelName, CustomMapping, MappingLocation, MappingSource}; use rattler_conda_types::{Channel, ChannelConfig, MatchSpec, PackageName, Platform, Version}; use rattler_lock::{LockFile, LockedPackageRef}; @@ -58,7 +59,6 @@ use crate::{ diff::LockFileDiff, lock_file::filter_lock_file, repodata::Repodata, - variants::VariantConfig, }; static CUSTOM_TARGET_DIR_WARN: OnceCell<()> = OnceCell::new(); @@ -72,7 +72,7 @@ pub enum DependencyType { impl DependencyType { /// Convert to a name used in the manifest - pub(crate) fn name(&self) -> &'static str { + pub fn name(&self) -> &'static str { match self { DependencyType::CondaDependency(dep) => dep.name(), DependencyType::PypiDependency => consts::PYPI_DEPENDENCIES, @@ -276,7 +276,7 @@ impl Workspace { &self.env_vars } - pub(crate) fn with_cli_config(mut self, config: C) -> Self + pub fn with_cli_config(mut self, config: C) -> Self where C: Into, { @@ -307,7 +307,7 @@ impl Workspace { } /// Returns the root directory of the workspace - pub(crate) fn root(&self) -> &Path { + pub fn root(&self) -> &Path { &self.root } @@ -332,12 +332,12 @@ impl Workspace { /// Returns the default environment directory without interacting with /// config. - pub(crate) fn default_environments_dir(&self) -> PathBuf { + pub fn default_environments_dir(&self) -> PathBuf { self.pixi_dir().join(consts::ENVIRONMENTS_DIR) } /// Returns the environment directory - pub(crate) fn environments_dir(&self) -> PathBuf { + pub fn environments_dir(&self) -> PathBuf { let default_envs_dir = self.default_environments_dir(); // Early out if detached-environments is not set @@ -381,12 +381,12 @@ impl Workspace { /// Returns the default solve group environments directory, without /// interacting with config - pub(crate) fn default_solve_group_environments_dir(&self) -> PathBuf { + pub fn default_solve_group_environments_dir(&self) -> PathBuf { self.pixi_dir().join(consts::SOLVE_GROUP_ENVIRONMENTS_DIR) } /// Returns the solve group environments directory - pub(crate) fn solve_group_environments_dir(&self) -> PathBuf { + pub fn solve_group_environments_dir(&self) -> PathBuf { // If the detached-environments path is set, use it instead of the default // directory. if let Some(detached_environments_path) = self.detached_environments_path() { @@ -397,7 +397,7 @@ impl Workspace { /// Returns the path to the lock file of the project /// [consts::PROJECT_LOCK_FILE] - pub(crate) fn lock_file_path(&self) -> PathBuf { + pub fn lock_file_path(&self) -> PathBuf { self.root.join(consts::PROJECT_LOCK_FILE) } @@ -419,7 +419,7 @@ impl Workspace { } /// Returns the environments in this project. - pub(crate) fn environments(&self) -> Vec { + pub fn environments(&self) -> Vec { self.workspace .value .environments @@ -556,7 +556,7 @@ impl Workspace { }) } - pub(crate) fn config(&self) -> &Config { + pub fn config(&self) -> &Config { &self.config } @@ -569,11 +569,11 @@ impl Workspace { } } - pub(crate) fn task_cache_folder(&self) -> PathBuf { + pub fn task_cache_folder(&self) -> PathBuf { self.pixi_dir().join(consts::TASK_CACHE_DIR) } - pub(crate) fn activation_env_cache_folder(&self) -> PathBuf { + pub fn activation_env_cache_folder(&self) -> PathBuf { self.pixi_dir().join(consts::ACTIVATION_ENV_CACHE_DIR) } diff --git a/src/workspace/repodata.rs b/crates/pixi_core/src/workspace/repodata.rs similarity index 100% rename from src/workspace/repodata.rs rename to crates/pixi_core/src/workspace/repodata.rs diff --git a/src/workspace/snapshots/pixi__workspace__environment__tests__dependencies.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__environment__tests__dependencies.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__environment__tests__dependencies.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__environment__tests__dependencies.snap diff --git a/src/workspace/snapshots/pixi__workspace__tests__activation_scripts.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__activation_scripts.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__tests__activation_scripts.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__activation_scripts.snap diff --git a/src/workspace/snapshots/pixi__workspace__tests__dependency_sets.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__dependency_sets.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__tests__dependency_sets.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__dependency_sets.snap diff --git a/src/workspace/snapshots/pixi__workspace__tests__dependency_target_sets.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__dependency_target_sets.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__tests__dependency_target_sets.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__dependency_target_sets.snap diff --git a/src/workspace/snapshots/pixi__workspace__tests__mapping_ensure_feature_channels_also_checked.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__mapping_ensure_feature_channels_also_checked.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__tests__mapping_ensure_feature_channels_also_checked.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__mapping_ensure_feature_channels_also_checked.snap diff --git a/src/workspace/snapshots/pixi__workspace__tests__target_specific_tasks-2.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__target_specific_tasks-2.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__tests__target_specific_tasks-2.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__target_specific_tasks-2.snap diff --git a/src/workspace/snapshots/pixi__workspace__tests__target_specific_tasks-3.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__target_specific_tasks-3.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__tests__target_specific_tasks-3.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__target_specific_tasks-3.snap diff --git a/src/workspace/snapshots/pixi__workspace__tests__target_specific_tasks.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__target_specific_tasks.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__tests__target_specific_tasks.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__tests__target_specific_tasks.snap diff --git a/src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-64.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-64.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-64.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-64.snap diff --git a/src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-aarch64.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-aarch64.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-aarch64.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-aarch64.snap diff --git a/src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-ppc64le.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-ppc64le.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-ppc64le.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@linux-ppc64le.snap diff --git a/src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@noarch.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@noarch.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@noarch.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@noarch.snap diff --git a/src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-64.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-64.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-64.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-64.snap diff --git a/src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-arm64.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-arm64.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-arm64.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@osx-arm64.snap diff --git a/src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@win-64.snap b/crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@win-64.snap similarity index 100% rename from src/workspace/snapshots/pixi__workspace__virtual_packages__tests__get_minimal_virtual_packages@win-64.snap rename to crates/pixi_core/src/workspace/snapshots/pixi_core__workspace__virtual_packages__tests__get_minimal_virtual_packages@win-64.snap diff --git a/src/workspace/solve_group.rs b/crates/pixi_core/src/workspace/solve_group.rs similarity index 98% rename from src/workspace/solve_group.rs rename to crates/pixi_core/src/workspace/solve_group.rs index 347253f3d9..9069706604 100644 --- a/src/workspace/solve_group.rs +++ b/crates/pixi_core/src/workspace/solve_group.rs @@ -36,12 +36,12 @@ impl Hash for SolveGroup<'_> { impl<'p> SolveGroup<'p> { /// The name of the group - pub(crate) fn name(&self) -> &str { + pub fn name(&self) -> &str { &self.solve_group.name } /// Returns the directory where this solve group stores its environment - pub(crate) fn dir(&self) -> PathBuf { + pub fn dir(&self) -> PathBuf { self.workspace .solve_group_environments_dir() .join(self.name()) @@ -49,7 +49,7 @@ impl<'p> SolveGroup<'p> { /// Returns an iterator over all the environments that are part of the /// group. - pub(crate) fn environments( + pub fn environments( &self, ) -> impl DoubleEndedIterator> + ExactSizeIterator + 'p { let workspace_manifest = self.workspace_manifest(); diff --git a/src/workspace/virtual_packages.rs b/crates/pixi_core/src/workspace/virtual_packages.rs similarity index 97% rename from src/workspace/virtual_packages.rs rename to crates/pixi_core/src/workspace/virtual_packages.rs index c4d3281fa7..6aa40b26cf 100644 --- a/src/workspace/virtual_packages.rs +++ b/crates/pixi_core/src/workspace/virtual_packages.rs @@ -89,7 +89,7 @@ pub enum VerifyCurrentPlatformError { /// Verifies if the current platform satisfies the minimal virtual package /// requirements. -pub(crate) fn verify_current_platform_can_run_environment( +pub fn verify_current_platform_can_run_environment( environment: &Environment<'_>, lockfile: Option<&LockFile>, ) -> Result<(), VerifyCurrentPlatformError> { @@ -121,7 +121,7 @@ pub(crate) fn verify_current_platform_can_run_environment( impl Environment<'_> { /// Returns the set of virtual packages to use for the specified platform. This method /// takes into account the system requirements specified in the project manifest. - pub(crate) fn virtual_packages(&self, platform: Platform) -> Vec { + pub fn virtual_packages(&self, platform: Platform) -> Vec { get_minimal_virtual_packages(platform, &self.system_requirements()) } } diff --git a/src/workspace/workspace_mut.rs b/crates/pixi_core/src/workspace/workspace_mut.rs similarity index 97% rename from src/workspace/workspace_mut.rs rename to crates/pixi_core/src/workspace/workspace_mut.rs index 6ed9223256..5345f01226 100644 --- a/src/workspace/workspace_mut.rs +++ b/crates/pixi_core/src/workspace/workspace_mut.rs @@ -24,7 +24,6 @@ use toml_edit::DocumentMut; use crate::{ Workspace, - cli::cli_config::{LockFileUpdateConfig, PrefixUpdateConfig}, diff::LockFileDiff, environment::LockFileUsage, lock_file::{LockFileDerivedData, ReinstallPackages, UpdateContext, UpdateMode}, @@ -235,8 +234,8 @@ impl WorkspaceMut { match_specs: MatchSpecs, pypi_deps: PypiDeps, source_specs: SourceSpecs, - prefix_update_config: &PrefixUpdateConfig, - lock_file_update_config: &LockFileUpdateConfig, + install_no_updates: bool, + lock_file_update_config: &LockFileUsage, feature_name: &FeatureName, platforms: &[Platform], editable: bool, @@ -307,7 +306,7 @@ impl WorkspaceMut { self.save_inner().await.into_diagnostic()?; } - if lock_file_update_config.lock_file_usage()? != LockFileUsage::Update { + if *lock_file_update_config != LockFileUsage::Update { return Ok(None); } @@ -364,7 +363,7 @@ impl WorkspaceMut { } = UpdateContext::builder(self.workspace()) .with_lock_file(unlocked_lock_file) .with_no_install( - (prefix_update_config.no_install && lock_file_update_config.no_lockfile_update) + (install_no_updates && !lock_file_update_config.allows_lock_file_updates()) || dry_run, ) .finish() @@ -415,11 +414,11 @@ impl WorkspaceMut { glob_hash_cache, was_outdated: true, }; - if !lock_file_update_config.no_lockfile_update && !dry_run { + if lock_file_update_config.allows_lock_file_updates() && !dry_run { updated_lock_file.write_to_disk()?; } - if !prefix_update_config.no_install - && !lock_file_update_config.no_lockfile_update + if !install_no_updates + && lock_file_update_config.allows_lock_file_updates() && !dry_run && self.workspace().environments().len() == 1 && default_environment_is_affected diff --git a/crates/pixi_utils/Cargo.toml b/crates/pixi_utils/Cargo.toml index b7414bfcc4..d20d554d4b 100644 --- a/crates/pixi_utils/Cargo.toml +++ b/crates/pixi_utils/Cargo.toml @@ -27,6 +27,7 @@ rustls-tls = [ async-fd-lock = { workspace = true } fs-err = { workspace = true } indicatif = { workspace = true } +is_executable = { workspace = true } itertools = { workspace = true } miette = { workspace = true } pep508_rs = { workspace = true } @@ -39,9 +40,11 @@ rattler_networking = { workspace = true, features = [ "netrc-rs", "system-integration", ] } +rattler_shell = { workspace = true } reqwest = { workspace = true } reqwest-middleware = { workspace = true } reqwest-retry = { workspace = true } +rlimit = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } serde_yaml = { workspace = true } @@ -51,6 +54,7 @@ tokio = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } url = { workspace = true } +uv-configuration = { workspace = true } [dev-dependencies] insta = { workspace = true } diff --git a/crates/pixi_utils/src/lib.rs b/crates/pixi_utils/src/lib.rs index 7f1d486385..5a1b5eef3b 100644 --- a/crates/pixi_utils/src/lib.rs +++ b/crates/pixi_utils/src/lib.rs @@ -1,8 +1,11 @@ pub mod cache; pub mod conda_environment_file; pub mod indicatif; +pub mod prefix; mod prefix_guard; pub mod reqwest; +pub mod rlimit; +pub mod variants; mod executable_utils; pub use executable_utils::{ diff --git a/src/prefix.rs b/crates/pixi_utils/src/prefix.rs similarity index 98% rename from src/prefix.rs rename to crates/pixi_utils/src/prefix.rs index e61afe41fc..c926936483 100644 --- a/src/prefix.rs +++ b/crates/pixi_utils/src/prefix.rs @@ -1,6 +1,6 @@ +use crate::{is_binary_folder, strip_executable_extension}; use itertools::Itertools; use miette::{Context, Diagnostic, IntoDiagnostic}; -use pixi_utils::{is_binary_folder, strip_executable_extension}; use rattler_conda_types::{PackageName, Platform, PrefixRecord}; use rattler_shell::{ activation::{ActivationVariables, Activator}, diff --git a/src/rlimit.rs b/crates/pixi_utils/src/rlimit.rs similarity index 94% rename from src/rlimit.rs rename to crates/pixi_utils/src/rlimit.rs index 3331d39a5f..23ebffc7a2 100644 --- a/src/rlimit.rs +++ b/crates/pixi_utils/src/rlimit.rs @@ -7,7 +7,7 @@ pub const DESIRED_RLIMIT_NOFILE: u64 = 1024; /// for pixi. The desired value is defined by the `DESIRED_RLIMIT_NOFILE` /// constant and should suffice for most use cases. #[cfg(not(target_os = "windows"))] -pub(crate) fn try_increase_rlimit_to_sensible() { +pub fn try_increase_rlimit_to_sensible() { static INIT: std::sync::Once = std::sync::Once::new(); INIT.call_once( || match rlimit::increase_nofile_limit(DESIRED_RLIMIT_NOFILE) { @@ -40,7 +40,7 @@ pub(crate) fn try_increase_rlimit_to_sensible() { } #[cfg(target_os = "windows")] -pub(crate) fn try_increase_rlimit_to_sensible() { +pub fn try_increase_rlimit_to_sensible() { // On Windows, there is no need to increase the RLIMIT_NOFILE resource // limit. } diff --git a/src/variants.rs b/crates/pixi_utils/src/variants.rs similarity index 100% rename from src/variants.rs rename to crates/pixi_utils/src/variants.rs diff --git a/src/cli/add.rs b/src/cli/add.rs index 04b28c1ec0..1b268e9754 100644 --- a/src/cli/add.rs +++ b/src/cli/add.rs @@ -2,16 +2,14 @@ use clap::Parser; use indexmap::IndexMap; use miette::IntoDiagnostic; use pixi_config::ConfigCli; +use pixi_core::{WorkspaceLocator, environment::sanity_check_workspace, workspace::DependencyType}; use pixi_manifest::{FeatureName, KnownPreviewFeature, SpecType}; use pixi_spec::{GitSpec, SourceLocationSpec, SourceSpec}; use rattler_conda_types::{MatchSpec, PackageName}; -use super::{cli_config::LockFileUpdateConfig, has_specs::HasSpecs}; -use crate::{ - WorkspaceLocator, - cli::cli_config::{DependencyConfig, PrefixUpdateConfig, WorkspaceConfig}, - environment::sanity_check_workspace, - workspace::DependencyType, +use crate::cli::{ + cli_config::{DependencyConfig, LockFileUpdateConfig, PrefixUpdateConfig, WorkspaceConfig}, + has_specs::HasSpecs, }; /// Adds dependencies to the workspace @@ -199,8 +197,8 @@ pub async fn execute(args: Args) -> miette::Result<()> { match_specs, pypi_deps, source_specs, - &prefix_update_config, - &lock_file_update_config, + prefix_update_config.no_install, + &lock_file_update_config.lock_file_usage()?, &dependency_config.feature, &dependency_config.platforms, args.editable, diff --git a/src/cli/build.rs b/src/cli/build.rs index e6cf5bc10d..fd69103fac 100644 --- a/src/cli/build.rs +++ b/src/cli/build.rs @@ -7,13 +7,14 @@ use pixi_command_dispatcher::{ BuildBackendMetadataSpec, BuildEnvironment, BuildProfile, CacheDirs, SourceBuildSpec, }; use pixi_config::ConfigCli; +use pixi_core::WorkspaceLocator; use pixi_manifest::FeaturesExt; use pixi_progress::global_multi_progress; use pixi_record::{PinnedPathSpec, PinnedSourceSpec}; +use pixi_reporters::TopLevelProgress; use rattler_conda_types::{GenericVirtualPackage, Platform}; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig}; -use pixi_reporters::TopLevelProgress; +use crate::cli::cli_config::WorkspaceConfig; #[derive(Parser, Debug)] #[clap(verbatim_doc_comment)] diff --git a/src/cli/clean.rs b/src/cli/clean.rs index 05c0d5823e..f7bb679712 100644 --- a/src/cli/clean.rs +++ b/src/cli/clean.rs @@ -1,6 +1,6 @@ -use crate::WorkspaceLocator; use pixi_config; use pixi_consts::consts; +use pixi_core::WorkspaceLocator; use pixi_manifest::EnvironmentName; use std::path::PathBuf; use std::time::Duration; diff --git a/src/cli/cli_config.rs b/src/cli/cli_config.rs index 3818bb1c1b..82491a1d92 100644 --- a/src/cli/cli_config.rs +++ b/src/cli/cli_config.rs @@ -1,9 +1,4 @@ -use crate::DependencyType; -use crate::Workspace; use crate::cli::has_specs::HasSpecs; -use crate::environment::LockFileUsage; -use crate::lock_file::UpdateMode; -use crate::workspace::DiscoveryStart; use clap::Parser; use indexmap::IndexMap; use indexmap::IndexSet; @@ -12,6 +7,11 @@ use miette::IntoDiagnostic; use pep508_rs::Requirement; use pixi_config::Config; use pixi_consts::consts; +use pixi_core::DependencyType; +use pixi_core::Workspace; +use pixi_core::environment::LockFileUsage; +use pixi_core::lock_file::UpdateMode; +use pixi_core::workspace::DiscoveryStart; use pixi_manifest::FeaturesExt; use pixi_manifest::{FeatureName, SpecType}; use pixi_spec::GitReference; diff --git a/src/cli/config.rs b/src/cli/config.rs index 2f27b0fd9a..c47d5440f5 100644 --- a/src/cli/config.rs +++ b/src/cli/config.rs @@ -1,11 +1,11 @@ -use crate::WorkspaceLocator; use crate::cli::cli_config::WorkspaceConfig; -use crate::workspace::WorkspaceLocatorError; use clap::Parser; use miette::{IntoDiagnostic, WrapErr}; use pixi_config; use pixi_config::Config; use pixi_consts::consts; +use pixi_core::WorkspaceLocator; +use pixi_core::workspace::WorkspaceLocatorError; use rattler_conda_types::NamedChannelOrUrl; use std::{path::PathBuf, str::FromStr}; diff --git a/src/cli/exec.rs b/src/cli/exec.rs index 1a85666b6e..d016642797 100644 --- a/src/cli/exec.rs +++ b/src/cli/exec.rs @@ -4,7 +4,9 @@ use clap::{Parser, ValueHint}; use itertools::Itertools; use miette::{Context, IntoDiagnostic}; use pixi_config::{self, Config, ConfigCli}; +use pixi_core::environment::list::{PackageToOutput, print_package_table}; use pixi_progress::{await_in_progress, global_multi_progress, wrap_in_progress}; +use pixi_utils::prefix::Prefix; use pixi_utils::{AsyncPrefixGuard, EnvironmentHash, reqwest::build_reqwest_clients}; use rattler::{ install::{IndicatifReporter, Installer}, @@ -16,11 +18,7 @@ use rattler_virtual_packages::{VirtualPackageOverrides, VirtualPackages}; use reqwest_middleware::ClientWithMiddleware; use uv_configuration::RAYON_INITIALIZE; -use super::cli_config::ChannelsConfig; -use crate::{ - environment::list::{PackageToOutput, print_package_table}, - prefix::Prefix, -}; +use crate::cli::cli_config::ChannelsConfig; /// Run a command and install it in a temporary environment. /// diff --git a/src/cli/global/add.rs b/src/cli/global/add.rs index 1446f156ea..1590ce4275 100644 --- a/src/cli/global/add.rs +++ b/src/cli/global/add.rs @@ -1,11 +1,11 @@ use crate::cli::global::global_specs::GlobalSpecs; use crate::cli::global::revert_environment_after_error; -use crate::global::project::NamedGlobalSpec; -use crate::global::{EnvironmentName, Mapping, Project, StateChange, StateChanges}; use clap::Parser; use itertools::Itertools; use pixi_config::{Config, ConfigCli}; +use pixi_core::global::project::NamedGlobalSpec; +use pixi_core::global::{EnvironmentName, Mapping, Project, StateChange, StateChanges}; /// Adds dependencies to an environment /// diff --git a/src/cli/global/edit.rs b/src/cli/global/edit.rs index 7e426c6e7d..2f8fb4e2f5 100644 --- a/src/cli/global/edit.rs +++ b/src/cli/global/edit.rs @@ -1,4 +1,4 @@ -use crate::global::Project; +use pixi_core::global::Project; use clap::Parser; use fs_err as fs; use miette::IntoDiagnostic; diff --git a/src/cli/global/expose.rs b/src/cli/global/expose.rs index 64a22c52fa..42f5fc7ae2 100644 --- a/src/cli/global/expose.rs +++ b/src/cli/global/expose.rs @@ -3,10 +3,8 @@ use itertools::Itertools; use miette::Context; use pixi_config::{Config, ConfigCli}; -use crate::{ - cli::global::revert_environment_after_error, - global::{self, EnvironmentName, ExposedName, Mapping, StateChanges}, -}; +use crate::cli::global::revert_environment_after_error; +use pixi_core::global::{self, EnvironmentName, ExposedName, Mapping, StateChanges}; /// Add exposed binaries from an environment to your global environment /// diff --git a/src/cli/global/global_specs.rs b/src/cli/global/global_specs.rs index 51ad0a560a..031d2c4501 100644 --- a/src/cli/global/global_specs.rs +++ b/src/cli/global/global_specs.rs @@ -6,11 +6,12 @@ use pixi_consts::consts; use typed_path::Utf8TypedPathBuf; use url::Url; -use crate::cli::has_specs::HasSpecs; -use crate::global::project::{FromMatchSpecError, GlobalSpec}; +use pixi_core::global::project::{FromMatchSpecError, GlobalSpec}; use pixi_spec::PixiSpec; use rattler_conda_types::{ChannelConfig, MatchSpec, ParseMatchSpecError, ParseStrictness}; +use crate::cli::has_specs::HasSpecs; + #[derive(Parser, Debug, Default, Clone)] pub struct GlobalSpecs { /// The dependency as names, conda MatchSpecs @@ -127,11 +128,20 @@ impl GlobalSpecs { #[cfg(test)] mod tests { + use pixi_core::global::project::GlobalSpec; use std::path::PathBuf; use super::*; use rattler_conda_types::ChannelConfig; + #[cfg(test)] + pub fn spec(global_spec: &GlobalSpec) -> &PixiSpec { + match global_spec { + GlobalSpec::Nameless(spec) => spec, + GlobalSpec::Named(named_spec) => &named_spec.spec, + } + } + #[test] fn test_to_global_specs_named() { let specs = GlobalSpecs { @@ -169,7 +179,7 @@ mod tests { assert_eq!(global_specs.len(), 1); assert!(matches!( - global_specs.first().unwrap().spec(), + spec(global_specs.first().unwrap()), &PixiSpec::Git(..) )) } diff --git a/src/cli/global/install.rs b/src/cli/global/install.rs index 5ffa8ae603..0ba3a72f3e 100644 --- a/src/cli/global/install.rs +++ b/src/cli/global/install.rs @@ -8,16 +8,14 @@ use itertools::Itertools; use miette::{Context, IntoDiagnostic}; use rattler_conda_types::{MatchSpec, NamedChannelOrUrl, Platform}; -use crate::{ - cli::global::{global_specs::GlobalSpecs, revert_environment_after_error}, - global::{ - self, EnvChanges, EnvState, EnvironmentName, Mapping, Project, StateChange, StateChanges, - common::{NotChangedReason, contains_menuinst_document}, - list::list_all_global_environments, - project::{ExposedType, NamedGlobalSpec}, - }, -}; +use crate::cli::global::{global_specs::GlobalSpecs, revert_environment_after_error}; use pixi_config::{self, Config, ConfigCli}; +use pixi_core::global::{ + self, EnvChanges, EnvState, EnvironmentName, Mapping, Project, StateChange, StateChanges, + common::{NotChangedReason, contains_menuinst_document}, + list::list_all_global_environments, + project::{ExposedType, NamedGlobalSpec}, +}; /// Installs the defined packages in a globally accessible location and exposes their command line applications. /// diff --git a/src/cli/global/list.rs b/src/cli/global/list.rs index c912bc9a43..75b5e43fe5 100644 --- a/src/cli/global/list.rs +++ b/src/cli/global/list.rs @@ -1,10 +1,8 @@ -use crate::global::list::{ - GlobalSortBy, list_all_global_environments, list_specific_global_environment, -}; -use crate::global::{EnvironmentName, Project}; use clap::Parser; use fancy_display::FancyDisplay; use pixi_config::{Config, ConfigCli}; +use pixi_core::global::list::{list_all_global_environments, list_specific_global_environment}; +use pixi_core::global::{EnvironmentName, Project}; use std::str::FromStr; /// Lists global environments with their dependencies and exposed commands. Can also display all packages within a specific global environment when using the --environment flag. @@ -39,6 +37,14 @@ pub struct Args { sort_by: GlobalSortBy, } +/// Sorting strategy for the package table +#[derive(clap::ValueEnum, Clone, Debug, Default, PartialEq)] +pub enum GlobalSortBy { + Size, + #[default] + Name, +} + pub async fn execute(args: Args) -> miette::Result<()> { let config = Config::with_cli_config(&args.config); let project = Project::discover_or_create() @@ -55,7 +61,13 @@ pub async fn execute(args: Args) -> miette::Result<()> { ); } - list_specific_global_environment(&project, &env_name, args.sort_by, args.regex).await?; + list_specific_global_environment( + &project, + &env_name, + args.sort_by == GlobalSortBy::Size, + args.regex, + ) + .await?; } else { // Verify that the environments are in sync with the manifest and report to the user otherwise if !project.environments_in_sync().await? { diff --git a/src/cli/global/mod.rs b/src/cli/global/mod.rs index 39e84edb4d..956868f0a8 100644 --- a/src/cli/global/mod.rs +++ b/src/cli/global/mod.rs @@ -1,6 +1,6 @@ use clap::Parser; -use crate::global::{self, EnvironmentName}; +use pixi_core::global::{self, EnvironmentName}; mod add; mod edit; diff --git a/src/cli/global/remove.rs b/src/cli/global/remove.rs index 334dc9024d..ffda8518a3 100644 --- a/src/cli/global/remove.rs +++ b/src/cli/global/remove.rs @@ -1,13 +1,14 @@ -use crate::cli::global::revert_environment_after_error; -use crate::cli::has_specs::HasSpecs; -use crate::global::{EnvironmentName, ExposedName, Project, StateChanges}; use clap::Parser; use itertools::Itertools; use miette::Context; use pixi_config::{Config, ConfigCli}; +use pixi_core::global::{EnvironmentName, ExposedName, Project, StateChanges}; use rattler_conda_types::MatchSpec; use std::str::FromStr; +use crate::cli::global::revert_environment_after_error; +use crate::cli::has_specs::HasSpecs; + /// Removes dependencies from an environment /// /// Use `pixi global uninstall` to remove the whole environment diff --git a/src/cli/global/shortcut.rs b/src/cli/global/shortcut.rs index a51ce84750..10ae869e6d 100644 --- a/src/cli/global/shortcut.rs +++ b/src/cli/global/shortcut.rs @@ -1,12 +1,10 @@ -use crate::global::Project; -use crate::{ - cli::global::revert_environment_after_error, - global::{EnvironmentName, StateChanges}, -}; +use crate::cli::global::revert_environment_after_error; use clap::Parser; use fancy_display::FancyDisplay; use miette::Context; use pixi_config::{Config, ConfigCli}; +use pixi_core::global::Project; +use pixi_core::global::{EnvironmentName, StateChanges}; use rattler_conda_types::PackageName; use std::collections::HashMap; diff --git a/src/cli/global/sync.rs b/src/cli/global/sync.rs index 8e235cdeb3..88bcd62e2f 100644 --- a/src/cli/global/sync.rs +++ b/src/cli/global/sync.rs @@ -1,7 +1,7 @@ -use crate::global; use clap::Parser; use fancy_display::FancyDisplay; use pixi_config::{Config, ConfigCli}; +use pixi_core::global; /// Sync global manifest with installed environments #[derive(Parser, Debug)] @@ -25,7 +25,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { #[cfg(unix)] { // Prune broken completions - let completions_dir = crate::global::completions::CompletionsDir::from_env().await?; + let completions_dir = pixi_core::global::completions::CompletionsDir::from_env().await?; completions_dir.prune_old_completions()?; } diff --git a/src/cli/global/uninstall.rs b/src/cli/global/uninstall.rs index 4f87f2ecd5..e0b9d8b2e9 100644 --- a/src/cli/global/uninstall.rs +++ b/src/cli/global/uninstall.rs @@ -1,10 +1,10 @@ use crate::cli::global::revert_environment_after_error; -use crate::global::{self, StateChanges}; -use crate::global::{EnvironmentName, Project}; use clap::Parser; use fancy_display::FancyDisplay; use miette::Context; use pixi_config::{Config, ConfigCli}; +use pixi_core::global::{self, StateChanges}; +use pixi_core::global::{EnvironmentName, Project}; /// Uninstalls environments from the global environment. /// diff --git a/src/cli/global/update.rs b/src/cli/global/update.rs index b9de2f113a..715beb16c7 100644 --- a/src/cli/global/update.rs +++ b/src/cli/global/update.rs @@ -1,11 +1,11 @@ use crate::cli::global::revert_environment_after_error; -use crate::global::common::check_all_exposed; -use crate::global::project::ExposedType; -use crate::global::{self, StateChanges}; -use crate::global::{EnvironmentName, Project}; use clap::Parser; use fancy_display::FancyDisplay; use pixi_config::{Config, ConfigCli}; +use pixi_core::global::common::check_all_exposed; +use pixi_core::global::project::ExposedType; +use pixi_core::global::{self, StateChanges}; +use pixi_core::global::{EnvironmentName, Project}; /// Updates environments in the global environment. #[derive(Parser, Debug, Clone)] diff --git a/src/cli/has_specs.rs b/src/cli/has_specs.rs index d0bf6305c1..b1d220dcb7 100644 --- a/src/cli/has_specs.rs +++ b/src/cli/has_specs.rs @@ -1,7 +1,7 @@ -use crate::Workspace; use indexmap::IndexMap; use miette::IntoDiagnostic; use pep508_rs::Requirement; +use pixi_core::Workspace; use pixi_pypi_spec::PypiPackageName; use rattler_conda_types::{MatchSpec, PackageName, ParseStrictness}; diff --git a/src/cli/import.rs b/src/cli/import.rs index 47023188ad..db37ed9599 100644 --- a/src/cli/import.rs +++ b/src/cli/import.rs @@ -3,6 +3,7 @@ use std::str::FromStr; use clap::{Parser, ValueEnum}; use pixi_config::{Config, ConfigCli}; +use pixi_core::{WorkspaceLocator, environment::sanity_check_workspace}; use pixi_manifest::{EnvironmentName, FeatureName, HasFeaturesIter, PrioritizedChannel}; use pixi_utils::conda_environment_file::CondaEnvFile; use pixi_uv_conversions::convert_uv_requirements_to_pep508; @@ -15,12 +16,8 @@ use uv_requirements_txt::RequirementsTxt; use miette::{Diagnostic, IntoDiagnostic, Result}; use thiserror::Error; -use super::cli_config::LockFileUpdateConfig; -use crate::{ - WorkspaceLocator, - cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}, - environment::sanity_check_workspace, -}; +use crate::cli::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}; #[derive(Parser, Debug, Clone, PartialEq, ValueEnum)] pub enum ImportFileFormat { diff --git a/src/cli/info.rs b/src/cli/info.rs index e0f7c218fe..b572805ef3 100644 --- a/src/cli/info.rs +++ b/src/cli/info.rs @@ -1,12 +1,17 @@ use std::{fmt::Display, path::PathBuf}; -use crate::cli::cli_config::WorkspaceConfig; use chrono::{DateTime, Local}; use clap::Parser; +use fancy_display::FancyDisplay; use itertools::Itertools; use miette::IntoDiagnostic; use pixi_config; use pixi_consts::consts; +use pixi_core::{ + WorkspaceLocator, global, + global::{BinDir, EnvRoot}, + task::TaskName, +}; use pixi_manifest::{EnvironmentName, FeatureName, SystemRequirements}; use pixi_manifest::{FeaturesExt, HasFeaturesIter}; use pixi_progress::await_in_progress; @@ -18,12 +23,7 @@ use serde_with::{DisplayFromStr, serde_as}; use tokio::task::spawn_blocking; use toml_edit::ser::to_string; -use crate::{ - WorkspaceLocator, global, - global::{BinDir, EnvRoot}, - task::TaskName, -}; -use fancy_display::FancyDisplay; +use crate::cli::cli_config::WorkspaceConfig; static WIDTH: usize = 19; diff --git a/src/cli/init.rs b/src/cli/init.rs index be7396f379..a746589dd5 100644 --- a/src/cli/init.rs +++ b/src/cli/init.rs @@ -20,7 +20,7 @@ use tokio::fs::OpenOptions; use url::Url; use uv_normalize::PackageName; -use crate::workspace::WorkspaceMut; +use pixi_core::workspace::WorkspaceMut; #[derive(Parser, Debug, Clone, PartialEq, ValueEnum)] pub enum ManifestFormat { diff --git a/src/cli/install.rs b/src/cli/install.rs index 6141c98299..752877c430 100644 --- a/src/cli/install.rs +++ b/src/cli/install.rs @@ -2,14 +2,14 @@ use clap::Parser; use fancy_display::FancyDisplay; use itertools::Itertools; use pixi_config::ConfigCli; -use std::fmt::Write; - -use crate::{ +use pixi_core::{ UpdateLockFileOptions, WorkspaceLocator, - cli::cli_config::WorkspaceConfig, environment::get_update_lock_file_and_prefixes, lock_file::{ReinstallPackages, UpdateMode}, }; +use std::fmt::Write; + +use crate::cli::cli_config::WorkspaceConfig; /// Install an environment, both updating the lockfile and installing the /// environment. @@ -36,7 +36,7 @@ pub struct Args { pub project_config: WorkspaceConfig, #[clap(flatten)] - pub lock_file_usage: super::LockFileUsageConfig, + pub lock_file_usage: crate::cli::LockFileUsageConfig, /// The environment to install #[arg(long, short)] diff --git a/src/cli/list.rs b/src/cli/list.rs index 6f20df1416..70a3e2744a 100644 --- a/src/cli/list.rs +++ b/src/cli/list.rs @@ -11,6 +11,10 @@ use human_bytes::human_bytes; use itertools::Itertools; use miette::IntoDiagnostic; use pixi_consts::consts; +use pixi_core::{ + WorkspaceLocator, + lock_file::{UpdateLockFileOptions, UvResolutionContext}, +}; use pixi_manifest::FeaturesExt; use pixi_uv_conversions::{ ConversionError, pypi_options_to_index_locations, to_uv_normalize, to_uv_version, @@ -22,12 +26,8 @@ use serde::Serialize; use uv_configuration::ConfigSettings; use uv_distribution::RegistryWheelIndex; -use super::cli_config::LockFileUpdateConfig; -use crate::{ - WorkspaceLocator, - cli::cli_config::WorkspaceConfig, - lock_file::{UpdateLockFileOptions, UvResolutionContext}, -}; +use crate::cli::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::WorkspaceConfig; // an enum to sort by size or name #[derive(clap::ValueEnum, Clone, Debug, Serialize)] diff --git a/src/cli/lock.rs b/src/cli/lock.rs index 143706130b..e181169566 100644 --- a/src/cli/lock.rs +++ b/src/cli/lock.rs @@ -1,15 +1,16 @@ use clap::Parser; use miette::{Context, IntoDiagnostic}; -use crate::lock_file::LockFileDerivedData; -use crate::{ +use pixi_core::lock_file::LockFileDerivedData; +use pixi_core::{ WorkspaceLocator, - cli::cli_config::WorkspaceConfig, diff::{LockFileDiff, LockFileJsonDiff}, environment::LockFileUsage, lock_file::UpdateLockFileOptions, }; +use crate::cli::cli_config::WorkspaceConfig; + /// Solve environment and update the lock file without installing the /// environments. #[derive(Debug, Parser)] diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 341d7c3cd6..b152366506 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -243,7 +243,7 @@ impl clap::Args for LockFileUsageArgs { } } -impl From for crate::environment::LockFileUsage { +impl From for pixi_core::environment::LockFileUsage { fn from(value: LockFileUsageArgs) -> Self { if value.frozen() { Self::Frozen @@ -255,7 +255,7 @@ impl From for crate::environment::LockFileUsage { } } -impl TryFrom for crate::environment::LockFileUsage { +impl TryFrom for pixi_core::environment::LockFileUsage { type Error = LockFileUsageError; fn try_from(value: LockFileUsageConfig) -> Result { diff --git a/src/cli/reinstall.rs b/src/cli/reinstall.rs index 84a031ccaa..56f767c127 100644 --- a/src/cli/reinstall.rs +++ b/src/cli/reinstall.rs @@ -1,11 +1,12 @@ -use crate::cli::cli_config::WorkspaceConfig; -use crate::environment::get_update_lock_file_and_prefix; -use crate::lock_file::{ReinstallPackages, UpdateMode}; -use crate::{UpdateLockFileOptions, WorkspaceLocator}; use clap::Parser; use fancy_display::FancyDisplay; use itertools::Itertools; use pixi_config::ConfigCli; +use pixi_core::environment::get_update_lock_file_and_prefix; +use pixi_core::lock_file::{ReinstallPackages, UpdateMode}; +use pixi_core::{UpdateLockFileOptions, WorkspaceLocator}; + +use crate::cli::cli_config::WorkspaceConfig; /// Re-install an environment, both updating the lockfile and re-installing the environment. /// @@ -29,7 +30,7 @@ pub struct Args { pub project_config: WorkspaceConfig, #[clap(flatten)] - pub lock_file_usage: super::LockFileUsageConfig, + pub lock_file_usage: crate::cli::LockFileUsageConfig, /// The environment to install. #[arg(long, short)] diff --git a/src/cli/remove.rs b/src/cli/remove.rs index 752c7602fb..70fb8b5faa 100644 --- a/src/cli/remove.rs +++ b/src/cli/remove.rs @@ -1,15 +1,16 @@ -use super::{cli_config::LockFileUpdateConfig, has_specs::HasSpecs}; -use crate::{ +use clap::Parser; +use miette::{Context, IntoDiagnostic}; +use pixi_config::ConfigCli; +use pixi_core::{ DependencyType, UpdateLockFileOptions, WorkspaceLocator, - cli::cli_config::{DependencyConfig, PrefixUpdateConfig, WorkspaceConfig}, environment::get_update_lock_file_and_prefix, lock_file::{ReinstallPackages, UpdateMode}, }; -use clap::Parser; -use miette::{Context, IntoDiagnostic}; -use pixi_config::ConfigCli; use pixi_manifest::FeaturesExt; +use crate::cli::cli_config::{DependencyConfig, PrefixUpdateConfig, WorkspaceConfig}; +use crate::cli::{cli_config::LockFileUpdateConfig, has_specs::HasSpecs}; + /// Removes dependencies from the workspace. /// /// If the workspace manifest is a `pyproject.toml`, removing a pypi dependency diff --git a/src/cli/run.rs b/src/cli/run.rs index af0f4a2161..77ccbd594f 100644 --- a/src/cli/run.rs +++ b/src/cli/run.rs @@ -18,10 +18,8 @@ use thiserror::Error; use tokio_util::sync::CancellationToken; use tracing::Level; -use super::cli_config::LockFileUpdateConfig; -use crate::{ +use pixi_core::{ Workspace, WorkspaceLocator, - cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}, environment::sanity_check_workspace, lock_file::{ReinstallPackages, UpdateLockFileOptions}, task::{ @@ -31,6 +29,9 @@ use crate::{ workspace::{Environment, errors::UnsupportedPlatformError}, }; +use crate::cli::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}; + /// Runs task in the pixi environment. /// /// This command is used to run tasks in the pixi environment. @@ -499,7 +500,7 @@ async fn listen_ctrl_c(kill_signal: KillSignal) { async fn listen_and_forward_all_signals(kill_signal: KillSignal) { use futures::FutureExt; - use crate::signals::SIGNALS; + use pixi_core::signals::SIGNALS; // listen and forward every signal we support let mut futures = Vec::with_capacity(SIGNALS.len()); diff --git a/src/cli/search.rs b/src/cli/search.rs index 28034698d8..0da463624a 100644 --- a/src/cli/search.rs +++ b/src/cli/search.rs @@ -11,6 +11,7 @@ use indexmap::IndexMap; use itertools::Itertools; use miette::{IntoDiagnostic, Report}; use pixi_config::{Config, default_channel_config}; +use pixi_core::{WorkspaceLocator, workspace::WorkspaceLocatorError}; use pixi_progress::await_in_progress; use pixi_utils::reqwest::build_reqwest_clients; use rattler_conda_types::{MatchSpec, PackageName, ParseStrictness, Platform, RepoDataRecord}; @@ -21,8 +22,8 @@ use strsim::jaro; use tracing::{debug, error}; use url::Url; -use super::cli_config::ChannelsConfig; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig, workspace::WorkspaceLocatorError}; +use crate::cli::cli_config::ChannelsConfig; +use crate::cli::cli_config::WorkspaceConfig; /// Search a conda package /// diff --git a/src/cli/shell.rs b/src/cli/shell.rs index 0549885421..17318396e1 100644 --- a/src/cli/shell.rs +++ b/src/cli/shell.rs @@ -8,24 +8,22 @@ use rattler_shell::{ shell::{CmdExe, PowerShell, Shell, ShellEnum, ShellScript}, }; -use crate::lock_file::UpdateMode; -use crate::workspace::get_activated_environment_variables; -use crate::{ +use pixi_config::{ConfigCli, ConfigCliActivation, ConfigCliPrompt}; +use pixi_core::lock_file::ReinstallPackages; +use pixi_core::lock_file::UpdateMode; +use pixi_core::workspace::get_activated_environment_variables; +use pixi_core::{ UpdateLockFileOptions, WorkspaceLocator, activation::CurrentEnvVarBehavior, environment::get_update_lock_file_and_prefix, prompt, }; -use crate::{ - cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}, - lock_file::ReinstallPackages, -}; -use pixi_config::{ConfigCli, ConfigCliActivation, ConfigCliPrompt}; #[cfg(target_family = "unix")] use pixi_pty::unix::PtySession; #[cfg(target_family = "unix")] -use crate::prefix::Prefix; +use pixi_utils::prefix::Prefix; -use super::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}; /// Start a shell in a pixi environment, run `exit` to leave the shell. #[derive(Parser, Debug)] diff --git a/src/cli/shell_hook.rs b/src/cli/shell_hook.rs index 640db5c0d0..d0181cbc40 100644 --- a/src/cli/shell_hook.rs +++ b/src/cli/shell_hook.rs @@ -11,17 +11,17 @@ use rattler_shell::{ use serde::Serialize; use serde_json; -use crate::{ +use pixi_core::{ UpdateLockFileOptions, Workspace, WorkspaceLocator, activation::{CurrentEnvVarBehavior, get_activator}, - cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}, environment::get_update_lock_file_and_prefix, lock_file::ReinstallPackages, prompt, workspace::{Environment, HasWorkspaceRef, get_activated_environment_variables}, }; -use super::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::{PrefixUpdateConfig, WorkspaceConfig}; /// Print the pixi environment activation script. /// diff --git a/src/cli/task.rs b/src/cli/task.rs index 0e03bef77c..db3ea53b67 100644 --- a/src/cli/task.rs +++ b/src/cli/task.rs @@ -19,13 +19,14 @@ use rattler_conda_types::Platform; use serde::Serialize; use serde_with::serde_as; -use crate::workspace::virtual_packages::verify_current_platform_can_run_environment; -use crate::{ +use pixi_core::workspace::virtual_packages::verify_current_platform_can_run_environment; +use pixi_core::{ Workspace, WorkspaceLocator, - cli::cli_config::WorkspaceConfig, workspace::{Environment, WorkspaceMut}, }; +use crate::cli::cli_config::WorkspaceConfig; + #[derive(Parser, Debug)] pub enum Operation { /// Add a command to the workspace diff --git a/src/cli/tree.rs b/src/cli/tree.rs index 8ccf220fdc..3531ae9624 100644 --- a/src/cli/tree.rs +++ b/src/cli/tree.rs @@ -9,17 +9,14 @@ use console::Color; use fancy_display::FancyDisplay; use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; +use pixi_core::{WorkspaceLocator, lock_file::UpdateLockFileOptions, workspace::Environment}; use pixi_manifest::FeaturesExt; use rattler_conda_types::Platform; use rattler_lock::LockedPackageRef; use regex::Regex; -use crate::{ - WorkspaceLocator, cli::cli_config::WorkspaceConfig, lock_file::UpdateLockFileOptions, - workspace::Environment, -}; - -use super::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::LockFileUpdateConfig; +use crate::cli::cli_config::WorkspaceConfig; /// Show a tree of workspace dependencies #[derive(Debug, Parser)] diff --git a/src/cli/update.rs b/src/cli/update.rs index 8630209849..f049540003 100644 --- a/src/cli/update.rs +++ b/src/cli/update.rs @@ -1,24 +1,25 @@ use std::{cmp::Ordering, collections::HashSet}; -use crate::{ - Workspace, - lock_file::{UpdateContext, filter_lock_file}, -}; -use crate::{ - WorkspaceLocator, - cli::cli_config::WorkspaceConfig, - diff::{LockFileDiff, LockFileJsonDiff}, -}; use clap::Parser; use fancy_display::FancyDisplay; use itertools::Itertools; use miette::{Context, IntoDiagnostic, MietteDiagnostic}; use pixi_config::ConfigCli; use pixi_consts::consts; +use pixi_core::{ + Workspace, + lock_file::{UpdateContext, filter_lock_file}, +}; +use pixi_core::{ + WorkspaceLocator, + diff::{LockFileDiff, LockFileJsonDiff}, +}; use pixi_manifest::EnvironmentName; use rattler_conda_types::Platform; use rattler_lock::{LockFile, LockedPackageRef}; +use crate::cli::cli_config::WorkspaceConfig; + /// The `update` command checks if there are newer versions of the dependencies and updates the `pixi.lock` file and environments accordingly. /// /// It will only update the lock file if the dependencies in the manifest file are still compatible with the new versions. diff --git a/src/cli/upgrade.rs b/src/cli/upgrade.rs index 96e21adb5b..deef9c2dc9 100644 --- a/src/cli/upgrade.rs +++ b/src/cli/upgrade.rs @@ -1,12 +1,5 @@ use std::cmp::Ordering; -use super::cli_config::{LockFileUpdateConfig, PrefixUpdateConfig}; -use crate::{ - WorkspaceLocator, - cli::cli_config::WorkspaceConfig, - diff::LockFileJsonDiff, - workspace::{MatchSpecs, PypiDeps, WorkspaceMut}, -}; use clap::Parser; use fancy_display::FancyDisplay; use indexmap::IndexMap; @@ -14,11 +7,19 @@ use itertools::Itertools; use miette::{Context, IntoDiagnostic, MietteDiagnostic}; use pep508_rs::{MarkerTree, Requirement}; use pixi_config::ConfigCli; +use pixi_core::{ + WorkspaceLocator, + diff::LockFileJsonDiff, + workspace::{MatchSpecs, PypiDeps, WorkspaceMut}, +}; use pixi_manifest::{FeatureName, SpecType}; use pixi_pypi_spec::PixiPypiSpec; use pixi_spec::PixiSpec; use rattler_conda_types::{MatchSpec, StringMatcher}; +use crate::cli::cli_config::WorkspaceConfig; +use crate::cli::cli_config::{LockFileUpdateConfig, PrefixUpdateConfig}; + /// Checks if there are newer versions of the dependencies and upgrades them in the lockfile and manifest file. /// /// `pixi upgrade` loosens the requirements for the given packages, updates the lock file and the adapts the manifest accordingly. @@ -91,8 +92,8 @@ pub async fn execute(args: Args) -> miette::Result<()> { match_specs, pypi_deps, IndexMap::default(), - &args.prefix_update_config, - &args.lock_file_update_config, + args.prefix_update_config.no_install, + &args.lock_file_update_config.lock_file_usage()?, &args.specs.feature, &[], false, diff --git a/src/cli/workspace/channel/add.rs b/src/cli/workspace/channel/add.rs index d5ee7550f9..d57cc3bdd3 100644 --- a/src/cli/workspace/channel/add.rs +++ b/src/cli/workspace/channel/add.rs @@ -1,4 +1,4 @@ -use crate::{ +use pixi_core::{ UpdateLockFileOptions, WorkspaceLocator, environment::{LockFileUsage, get_update_lock_file_and_prefix}, lock_file::{ReinstallPackages, UpdateMode}, diff --git a/src/cli/workspace/channel/list.rs b/src/cli/workspace/channel/list.rs index b0286b5bb7..8cea797494 100644 --- a/src/cli/workspace/channel/list.rs +++ b/src/cli/workspace/channel/list.rs @@ -1,10 +1,12 @@ use clap::Parser; use miette::IntoDiagnostic; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig}; use fancy_display::FancyDisplay; +use pixi_core::WorkspaceLocator; use pixi_manifest::FeaturesExt; +use crate::cli::cli_config::WorkspaceConfig; + #[derive(Parser, Debug, Default, Clone)] pub struct Args { #[clap(flatten)] diff --git a/src/cli/workspace/channel/mod.rs b/src/cli/workspace/channel/mod.rs index 615c034a2f..b5e7e081d1 100644 --- a/src/cli/workspace/channel/mod.rs +++ b/src/cli/workspace/channel/mod.rs @@ -2,13 +2,14 @@ pub mod add; pub mod list; pub mod remove; -use crate::cli::cli_config::{LockFileUpdateConfig, PrefixUpdateConfig, WorkspaceConfig}; use clap::Parser; use miette::IntoDiagnostic; use pixi_config::ConfigCli; use pixi_manifest::{FeatureName, PrioritizedChannel}; use rattler_conda_types::{ChannelConfig, NamedChannelOrUrl}; +use crate::cli::cli_config::{LockFileUpdateConfig, PrefixUpdateConfig, WorkspaceConfig}; + /// Commands to manage workspace channels. #[derive(Parser, Debug, Clone)] pub struct Args { diff --git a/src/cli/workspace/channel/remove.rs b/src/cli/workspace/channel/remove.rs index 8eba053ebc..9faf620a1e 100644 --- a/src/cli/workspace/channel/remove.rs +++ b/src/cli/workspace/channel/remove.rs @@ -1,5 +1,5 @@ -use crate::lock_file::{ReinstallPackages, UpdateMode}; -use crate::{ +use pixi_core::lock_file::{ReinstallPackages, UpdateMode}; +use pixi_core::{ UpdateLockFileOptions, WorkspaceLocator, environment::{LockFileUsage, get_update_lock_file_and_prefix}, }; diff --git a/src/cli/workspace/description/get.rs b/src/cli/workspace/description/get.rs index 3067ea35af..b5dded89a3 100644 --- a/src/cli/workspace/description/get.rs +++ b/src/cli/workspace/description/get.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; pub async fn execute(workspace: Workspace) -> miette::Result<()> { // Print the description if it exists diff --git a/src/cli/workspace/description/mod.rs b/src/cli/workspace/description/mod.rs index 2000809b51..f48cfe8b1c 100644 --- a/src/cli/workspace/description/mod.rs +++ b/src/cli/workspace/description/mod.rs @@ -1,8 +1,10 @@ pub mod get; pub mod set; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig}; use clap::Parser; +use pixi_core::WorkspaceLocator; + +use crate::cli::cli_config::WorkspaceConfig; /// Commands to manage workspace description. #[derive(Parser, Debug)] diff --git a/src/cli/workspace/description/set.rs b/src/cli/workspace/description/set.rs index 3984ce46aa..1885d15c86 100644 --- a/src/cli/workspace/description/set.rs +++ b/src/cli/workspace/description/set.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use clap::Parser; use miette::IntoDiagnostic; diff --git a/src/cli/workspace/environment/add.rs b/src/cli/workspace/environment/add.rs index 6920028541..6dcae9e76b 100644 --- a/src/cli/workspace/environment/add.rs +++ b/src/cli/workspace/environment/add.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use clap::Parser; use miette::IntoDiagnostic; use pixi_manifest::EnvironmentName; diff --git a/src/cli/workspace/environment/list.rs b/src/cli/workspace/environment/list.rs index 0e6b387eb6..b14f1a051e 100644 --- a/src/cli/workspace/environment/list.rs +++ b/src/cli/workspace/environment/list.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use fancy_display::FancyDisplay; use itertools::Itertools; use pixi_consts::consts; diff --git a/src/cli/workspace/environment/mod.rs b/src/cli/workspace/environment/mod.rs index b9561c43e9..1576904da1 100644 --- a/src/cli/workspace/environment/mod.rs +++ b/src/cli/workspace/environment/mod.rs @@ -2,8 +2,10 @@ pub mod add; pub mod list; pub mod remove; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig}; use clap::Parser; +use pixi_core::WorkspaceLocator; + +use crate::cli::cli_config::WorkspaceConfig; /// Commands to manage project environments. #[derive(Parser, Debug)] diff --git a/src/cli/workspace/environment/remove.rs b/src/cli/workspace/environment/remove.rs index e07f07b9e6..5e9983a4f4 100644 --- a/src/cli/workspace/environment/remove.rs +++ b/src/cli/workspace/environment/remove.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use clap::Parser; use miette::IntoDiagnostic; diff --git a/src/cli/workspace/export/conda_environment.rs b/src/cli/workspace/export/conda_environment.rs index a916c8adee..c8d3b40e8f 100644 --- a/src/cli/workspace/export/conda_environment.rs +++ b/src/cli/workspace/export/conda_environment.rs @@ -1,10 +1,10 @@ use std::path::PathBuf; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig, workspace::Environment}; use clap::Parser; use itertools::Itertools; use miette::{Context, IntoDiagnostic}; use pep508_rs::ExtraName; +use pixi_core::{WorkspaceLocator, workspace::Environment}; use pixi_manifest::{FeaturesExt, pypi::pypi_options::FindLinksUrlOrPath}; use pixi_pypi_spec::{PixiPypiSpec, PypiPackageName, VersionOrStar}; use rattler_conda_types::{ @@ -12,6 +12,8 @@ use rattler_conda_types::{ ParseStrictness, Platform, }; +use crate::cli::cli_config::WorkspaceConfig; + #[derive(Debug, Parser)] pub struct Args { #[clap(flatten)] @@ -244,7 +246,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { #[cfg(test)] mod tests { use super::*; - use crate::Workspace; + use pixi_core::Workspace; use std::path::Path; #[test] diff --git a/src/cli/workspace/export/conda_explicit_spec.rs b/src/cli/workspace/export/conda_explicit_spec.rs index 5e9e4e78a4..ac0a22f90b 100644 --- a/src/cli/workspace/export/conda_explicit_spec.rs +++ b/src/cli/workspace/export/conda_explicit_spec.rs @@ -3,19 +3,17 @@ use std::{ path::{Path, PathBuf}, }; -use crate::{ - WorkspaceLocator, - cli::cli_config::{LockFileUpdateConfig, WorkspaceConfig}, - lock_file::UpdateLockFileOptions, -}; use clap::Parser; use miette::{Context, IntoDiagnostic}; use pixi_config::ConfigCli; +use pixi_core::{WorkspaceLocator, lock_file::UpdateLockFileOptions}; use rattler_conda_types::{ ExplicitEnvironmentEntry, ExplicitEnvironmentSpec, PackageRecord, Platform, RepoDataRecord, }; use rattler_lock::{CondaPackageData, Environment, LockedPackageRef}; +use crate::cli::cli_config::{LockFileUpdateConfig, WorkspaceConfig}; + #[derive(Debug, Parser)] #[clap(arg_required_else_help = false)] pub struct Args { diff --git a/src/cli/workspace/mod.rs b/src/cli/workspace/mod.rs index 57016b4090..0e35709fa4 100644 --- a/src/cli/workspace/mod.rs +++ b/src/cli/workspace/mod.rs @@ -1,6 +1,7 @@ -use crate::cli::cli_config::WorkspaceConfig; use clap::Parser; +use crate::cli::cli_config::WorkspaceConfig; + pub mod channel; pub mod description; pub mod environment; diff --git a/src/cli/workspace/name/get.rs b/src/cli/workspace/name/get.rs index a7ff75679a..643143193a 100644 --- a/src/cli/workspace/name/get.rs +++ b/src/cli/workspace/name/get.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; pub async fn execute(workspace: Workspace) -> miette::Result<()> { println!("{}", workspace.display_name()); diff --git a/src/cli/workspace/name/mod.rs b/src/cli/workspace/name/mod.rs index fcda0fc9b4..86b876b4f2 100644 --- a/src/cli/workspace/name/mod.rs +++ b/src/cli/workspace/name/mod.rs @@ -1,9 +1,10 @@ pub mod get; pub mod set; -use crate::WorkspaceLocator; -use crate::cli::cli_config::WorkspaceConfig; use clap::Parser; +use pixi_core::WorkspaceLocator; + +use crate::cli::cli_config::WorkspaceConfig; /// Commands to manage workspace name. #[derive(Parser, Debug)] diff --git a/src/cli/workspace/name/set.rs b/src/cli/workspace/name/set.rs index ec92be65a4..8b40bb0132 100644 --- a/src/cli/workspace/name/set.rs +++ b/src/cli/workspace/name/set.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use clap::Parser; use miette::IntoDiagnostic; diff --git a/src/cli/workspace/platform/add.rs b/src/cli/workspace/platform/add.rs index 88aae34fec..71191f70f5 100644 --- a/src/cli/workspace/platform/add.rs +++ b/src/cli/workspace/platform/add.rs @@ -5,7 +5,7 @@ use miette::IntoDiagnostic; use pixi_manifest::FeatureName; use rattler_conda_types::Platform; -use crate::{ +use pixi_core::{ UpdateLockFileOptions, Workspace, environment::{LockFileUsage, get_update_lock_file_and_prefix}, lock_file::{ReinstallPackages, UpdateMode}, diff --git a/src/cli/workspace/platform/list.rs b/src/cli/workspace/platform/list.rs index 23800a9c28..4f88f10096 100644 --- a/src/cli/workspace/platform/list.rs +++ b/src/cli/workspace/platform/list.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use fancy_display::FancyDisplay; use pixi_manifest::FeaturesExt; diff --git a/src/cli/workspace/platform/mod.rs b/src/cli/workspace/platform/mod.rs index 23a356a6d6..f2d6b22ebd 100644 --- a/src/cli/workspace/platform/mod.rs +++ b/src/cli/workspace/platform/mod.rs @@ -2,8 +2,10 @@ pub mod add; pub mod list; pub mod remove; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig}; use clap::Parser; +use pixi_core::WorkspaceLocator; + +use crate::cli::cli_config::WorkspaceConfig; /// Commands to manage workspace platforms. #[derive(Parser, Debug)] diff --git a/src/cli/workspace/platform/remove.rs b/src/cli/workspace/platform/remove.rs index a4e9520d6a..1419f7d9a0 100644 --- a/src/cli/workspace/platform/remove.rs +++ b/src/cli/workspace/platform/remove.rs @@ -3,7 +3,7 @@ use miette::IntoDiagnostic; use pixi_manifest::FeatureName; use rattler_conda_types::Platform; -use crate::{ +use pixi_core::{ UpdateLockFileOptions, Workspace, environment::{LockFileUsage, get_update_lock_file_and_prefix}, lock_file::{ReinstallPackages, UpdateMode}, diff --git a/src/cli/workspace/requires_pixi/get.rs b/src/cli/workspace/requires_pixi/get.rs index 53e8d568eb..6ff7ef365d 100644 --- a/src/cli/workspace/requires_pixi/get.rs +++ b/src/cli/workspace/requires_pixi/get.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; pub async fn execute(workspace: Workspace) -> miette::Result<()> { println!( diff --git a/src/cli/workspace/requires_pixi/mod.rs b/src/cli/workspace/requires_pixi/mod.rs index e7033169d1..630bbe4e75 100644 --- a/src/cli/workspace/requires_pixi/mod.rs +++ b/src/cli/workspace/requires_pixi/mod.rs @@ -3,9 +3,10 @@ pub mod set; pub mod unset; pub mod verify; -use crate::WorkspaceLocator; -use crate::cli::cli_config::WorkspaceConfig; use clap::Parser; +use pixi_core::WorkspaceLocator; + +use crate::cli::cli_config::WorkspaceConfig; /// Commands to manage the pixi minimum version requirement. #[derive(Parser, Debug)] diff --git a/src/cli/workspace/requires_pixi/set.rs b/src/cli/workspace/requires_pixi/set.rs index 99519b3bc3..fa37f07148 100644 --- a/src/cli/workspace/requires_pixi/set.rs +++ b/src/cli/workspace/requires_pixi/set.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use clap::Parser; use miette::IntoDiagnostic; diff --git a/src/cli/workspace/requires_pixi/unset.rs b/src/cli/workspace/requires_pixi/unset.rs index 1dfa9a67ea..e4c94757b0 100644 --- a/src/cli/workspace/requires_pixi/unset.rs +++ b/src/cli/workspace/requires_pixi/unset.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use miette::IntoDiagnostic; pub async fn execute(workspace: Workspace) -> miette::Result<()> { diff --git a/src/cli/workspace/requires_pixi/verify.rs b/src/cli/workspace/requires_pixi/verify.rs index 0765ff1a9d..82aff3960a 100644 --- a/src/cli/workspace/requires_pixi/verify.rs +++ b/src/cli/workspace/requires_pixi/verify.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use pixi_manifest::ExplicitManifestError; pub async fn execute(workspace: Workspace) -> miette::Result<()> { diff --git a/src/cli/workspace/system_requirements/add.rs b/src/cli/workspace/system_requirements/add.rs index 488f8bf87d..7df56eebe4 100644 --- a/src/cli/workspace/system_requirements/add.rs +++ b/src/cli/workspace/system_requirements/add.rs @@ -1,7 +1,7 @@ -use crate::Workspace; use crate::cli::workspace::system_requirements::SystemRequirementEnum; use clap::Parser; use miette::IntoDiagnostic; +use pixi_core::Workspace; use pixi_manifest::{FeatureName, LibCFamilyAndVersion, LibCSystemRequirement, SystemRequirements}; #[derive(Parser, Debug)] diff --git a/src/cli/workspace/system_requirements/list.rs b/src/cli/workspace/system_requirements/list.rs index 3be3ca5748..efbeaeb9f8 100644 --- a/src/cli/workspace/system_requirements/list.rs +++ b/src/cli/workspace/system_requirements/list.rs @@ -1,5 +1,5 @@ -use crate::Workspace; -use crate::workspace::Environment; +use pixi_core::Workspace; +use pixi_core::workspace::Environment; use clap::Parser; use fancy_display::FancyDisplay; use miette::IntoDiagnostic; diff --git a/src/cli/workspace/system_requirements/mod.rs b/src/cli/workspace/system_requirements/mod.rs index ae111bf49e..3058a67e3c 100644 --- a/src/cli/workspace/system_requirements/mod.rs +++ b/src/cli/workspace/system_requirements/mod.rs @@ -1,9 +1,10 @@ pub mod add; pub mod list; -use crate::WorkspaceLocator; -use crate::cli::cli_config::WorkspaceConfig; use clap::{Parser, ValueEnum}; +use pixi_core::WorkspaceLocator; + +use crate::cli::cli_config::WorkspaceConfig; /// Enum for valid system requirement names. #[derive(Debug, Clone, Copy, ValueEnum)] diff --git a/src/cli/workspace/version/bump.rs b/src/cli/workspace/version/bump.rs index deda9c3eeb..3c76223ee7 100644 --- a/src/cli/workspace/version/bump.rs +++ b/src/cli/workspace/version/bump.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use miette::{Context, IntoDiagnostic}; use rattler_conda_types::VersionBumpType; diff --git a/src/cli/workspace/version/get.rs b/src/cli/workspace/version/get.rs index 85cb1d5590..cf9470dd24 100644 --- a/src/cli/workspace/version/get.rs +++ b/src/cli/workspace/version/get.rs @@ -1,4 +1,4 @@ -use crate::Workspace; +use pixi_core::Workspace; use clap::Parser; #[derive(Parser, Debug, Default)] diff --git a/src/cli/workspace/version/mod.rs b/src/cli/workspace/version/mod.rs index a002eea68a..b4d0e54a58 100644 --- a/src/cli/workspace/version/mod.rs +++ b/src/cli/workspace/version/mod.rs @@ -2,10 +2,12 @@ pub mod bump; pub mod get; pub mod set; -use crate::{WorkspaceLocator, cli::cli_config::WorkspaceConfig}; use clap::Parser; +use pixi_core::WorkspaceLocator; use rattler_conda_types::VersionBumpType; +use crate::cli::cli_config::WorkspaceConfig; + /// Commands to manage workspace version. #[derive(Parser, Debug)] pub struct Args { diff --git a/src/cli/workspace/version/set.rs b/src/cli/workspace/version/set.rs index c911f393ec..6fed55d3c5 100644 --- a/src/cli/workspace/version/set.rs +++ b/src/cli/workspace/version/set.rs @@ -1,7 +1,7 @@ use clap::Parser; use miette::IntoDiagnostic; -use crate::Workspace; +use pixi_core::Workspace; #[derive(Parser, Debug, Default)] pub struct Args { diff --git a/src/lib.rs b/src/lib.rs index a8b7b44d92..662e7d48a0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,21 +1,3 @@ #![deny(clippy::dbg_macro, clippy::unwrap_used)] -pub mod activation; pub mod cli; -pub mod diff; -pub mod environment; -mod global; -mod install_pypi; -pub mod lock_file; -pub mod prefix; -mod prompt; -pub(crate) mod repodata; -pub mod task; -pub mod workspace; - -mod rlimit; -mod signals; -pub mod variants; - -pub use lock_file::UpdateLockFileOptions; -pub use workspace::{DependencyType, Workspace, WorkspaceLocator}; diff --git a/tests/integration_rust/add_tests.rs b/tests/integration_rust/add_tests.rs index 1f261ddf62..09f4834e64 100644 --- a/tests/integration_rust/add_tests.rs +++ b/tests/integration_rust/add_tests.rs @@ -1,7 +1,8 @@ use std::str::FromStr; -use pixi::{DependencyType, Workspace, cli::cli_config::GitRev}; +use pixi::cli::cli_config::GitRev; use pixi_consts::consts; +use pixi_core::{DependencyType, Workspace}; use pixi_manifest::{FeaturesExt, SpecType}; use pixi_pypi_spec::{PixiPypiSpec, PypiPackageName, VersionOrStar}; use rattler_conda_types::{PackageName, Platform}; diff --git a/tests/integration_rust/common/builders.rs b/tests/integration_rust/common/builders.rs index 03dc910636..ee400e8293 100644 --- a/tests/integration_rust/common/builders.rs +++ b/tests/integration_rust/common/builders.rs @@ -23,10 +23,10 @@ //! } //! ``` -use pixi::cli::{ - cli_config::{GitRev, LockFileUpdateConfig, PrefixUpdateConfig, WorkspaceConfig}, - lock, +use pixi::cli::cli_config::{ + DependencyConfig, GitRev, LockFileUpdateConfig, PrefixUpdateConfig, WorkspaceConfig, }; +use pixi::cli::lock; use std::{ future::{Future, IntoFuture}, io, @@ -36,12 +36,8 @@ use std::{ }; use futures::FutureExt; -use pixi::{ - DependencyType, - cli::{ - add, cli_config::DependencyConfig, init, install, remove, search, task, update, workspace, - }, -}; +use pixi::cli::{add, init, install, remove, search, task, update, workspace}; +use pixi_core::DependencyType; use pixi_manifest::{EnvironmentName, FeatureName, SpecType, task::Dependency}; use rattler_conda_types::{NamedChannelOrUrl, Platform, RepoDataRecord}; use url::Url; diff --git a/tests/integration_rust/common/mod.rs b/tests/integration_rust/common/mod.rs index 57ad1a4d4a..1ab9beca5a 100644 --- a/tests/integration_rust/common/mod.rs +++ b/tests/integration_rust/common/mod.rs @@ -15,24 +15,27 @@ use std::{ use builders::{LockBuilder, SearchBuilder}; use indicatif::ProgressDrawTarget; use miette::{Context, Diagnostic, IntoDiagnostic}; -use pixi::{ +use pixi::cli::LockFileUsageConfig; +use pixi::cli::cli_config::{ + ChannelsConfig, LockFileUpdateConfig, PrefixUpdateConfig, WorkspaceConfig, +}; +use pixi::cli::{ + add, + init::{self, GitAttributes}, + install::Args, + lock, remove, run, search, + task::{self, AddArgs, AliasArgs}, + update, workspace, +}; +use pixi_consts::consts; +use pixi_core::{ UpdateLockFileOptions, Workspace, - cli::{ - LockFileUsageConfig, add, - cli_config::{ChannelsConfig, LockFileUpdateConfig, PrefixUpdateConfig, WorkspaceConfig}, - init::{self, GitAttributes}, - install::Args, - lock, remove, run, search, - task::{self, AddArgs, AliasArgs}, - update, workspace, - }, lock_file::{ReinstallPackages, UpdateMode}, task::{ ExecutableTask, RunOutput, SearchEnvironments, TaskExecutionError, TaskGraph, TaskGraphError, TaskName, get_task_env, }, }; -use pixi_consts::consts; use pixi_manifest::{EnvironmentName, FeatureName}; use pixi_progress::global_multi_progress; use rattler_conda_types::{MatchSpec, ParseStrictness::Lenient, Platform}; diff --git a/tests/integration_rust/install_tests.rs b/tests/integration_rust/install_tests.rs index 066f63264c..28fb4c937e 100644 --- a/tests/integration_rust/install_tests.rs +++ b/tests/integration_rust/install_tests.rs @@ -7,19 +7,19 @@ use std::{ }; use fs_err::tokio as tokio_fs; -use pixi::{ +use pixi::cli::run::{self, Args}; +use pixi::cli::{ + LockFileUsageConfig, + cli_config::{LockFileUpdateConfig, WorkspaceConfig}, +}; +use pixi_config::{Config, DetachedEnvironments}; +use pixi_consts::consts; +use pixi_core::{ UpdateLockFileOptions, Workspace, - cli::{ - LockFileUsageConfig, - cli_config::{LockFileUpdateConfig, WorkspaceConfig}, - run::{self, Args}, - }, environment::LockFileUsage, lock_file::{CondaPrefixUpdater, ReinstallPackages, UpdateMode}, workspace::{HasWorkspaceRef, grouped_environment::GroupedEnvironment}, }; -use pixi_config::{Config, DetachedEnvironments}; -use pixi_consts::consts; use pixi_manifest::{FeatureName, FeaturesExt}; use pixi_record::PixiRecord; use rattler_conda_types::{Platform, RepoDataRecord}; @@ -333,7 +333,7 @@ fn is_pypi_package_installed(env: &PythonEnvironment, package_name: &str) -> boo // Helper to check if a conda package is installed. async fn is_conda_package_installed(prefix_path: &Path, package_name: &str) -> bool { - let conda_prefix = pixi::prefix::Prefix::new(prefix_path.to_path_buf()); + let conda_prefix = pixi_utils::prefix::Prefix::new(prefix_path.to_path_buf()); conda_prefix .find_designated_package(&rattler_conda_types::PackageName::try_from(package_name).unwrap()) .await @@ -441,7 +441,7 @@ async fn pypi_reinstall_python() { // Add flask from pypi pixi.add("flask") .with_install(true) - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .await .unwrap(); assert!(pixi.lock_file().await.unwrap().contains_match_spec( @@ -497,7 +497,7 @@ async fn pypi_add_remove() { // Add flask from pypi pixi.add("flask[dotenv]") .with_install(true) - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .await .unwrap(); @@ -511,7 +511,7 @@ async fn pypi_add_remove() { assert!(installed_311.iter().count() > 0); pixi.remove("flask[dotenv]") - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .with_install(true) .await .unwrap(); @@ -598,7 +598,7 @@ async fn minimal_lockfile_update_pypi() { // Add pypi dependencies which are not the latest options pixi.add_multiple(vec!["uvicorn==0.28.0", "click==7.1.2"]) - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .with_install(true) .await .unwrap(); @@ -613,7 +613,7 @@ async fn minimal_lockfile_update_pypi() { // Widening the click version to allow for the latest version pixi.add_multiple(vec!["uvicorn==0.29.0", "click"]) - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .with_install(true) .await .unwrap(); @@ -640,7 +640,7 @@ async fn test_installer_name() { // Add and update lockfile with this version of python pixi.add("python==3.11").with_install(true).await.unwrap(); pixi.add("click==8.0.0") - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .with_install(true) .await .unwrap(); @@ -665,7 +665,7 @@ async fn test_installer_name() { fs_err::write(dist_info.join("INSTALLER"), "not-pixi").unwrap(); pixi.remove("click==8.0.0") .with_install(true) - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .await .unwrap(); @@ -679,7 +679,7 @@ async fn test_installer_name() { // re-manage the package by adding it, this should cause a reinstall pixi.add("click==8.0.0") - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .with_install(true) .await .unwrap(); @@ -700,7 +700,7 @@ async fn test_old_lock_install() { "tests/data/satisfiability/old_lock_file/pyproject.toml", )) .unwrap(); - pixi::environment::get_update_lock_file_and_prefix( + pixi_core::environment::get_update_lock_file_and_prefix( &project.default_environment(), UpdateMode::Revalidate, UpdateLockFileOptions { @@ -953,7 +953,7 @@ async fn test_many_linux_wheel_tag() { pixi.add("python==3.12.*").await.unwrap(); // We know that this package has many linux wheel tags for this version pixi.add("gmsh==4.13.1") - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .with_install(true) .await .unwrap(); @@ -1022,7 +1022,7 @@ async fn pypi_prefix_is_not_created_when_whl() { // Add pypi dependency that is a wheel pixi.add_multiple(vec!["boltons==24.1.0"]) - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) // we don't want to install the package // we just want to check that the prefix is not created .with_install(false) diff --git a/tests/integration_rust/project_tests.rs b/tests/integration_rust/project_tests.rs index 11a1bde62a..5bf39426ae 100644 --- a/tests/integration_rust/project_tests.rs +++ b/tests/integration_rust/project_tests.rs @@ -3,8 +3,8 @@ use std::path::PathBuf; use crate::common::{PixiControl, package_database::PackageDatabase}; use insta::assert_debug_snapshot; -use pixi::Workspace; use pixi_config::Config; +use pixi_core::Workspace; use pixi_manifest::FeaturesExt; use rattler_conda_types::{NamedChannelOrUrl, Platform}; use tempfile::TempDir; diff --git a/tests/integration_rust/solve_group_tests.rs b/tests/integration_rust/solve_group_tests.rs index 21fde0f3e5..88a9c46e05 100644 --- a/tests/integration_rust/solve_group_tests.rs +++ b/tests/integration_rust/solve_group_tests.rs @@ -120,7 +120,7 @@ async fn test_purl_are_added_for_pypi() { // Add boltons from pypi pixi.add("boltons") .with_install(true) - .set_type(pixi::DependencyType::PypiDependency) + .set_type(pixi_core::DependencyType::PypiDependency) .await .unwrap(); diff --git a/tests/integration_rust/task_tests.rs b/tests/integration_rust/task_tests.rs index 25b7f2f9e6..bd9da66f03 100644 --- a/tests/integration_rust/task_tests.rs +++ b/tests/integration_rust/task_tests.rs @@ -1,9 +1,8 @@ use std::path::PathBuf; -use pixi::{ - cli::{cli_config::WorkspaceConfig, run::Args}, - task::TaskName, -}; +use pixi::cli::cli_config::WorkspaceConfig; +use pixi::cli::run::Args; +use pixi_core::task::TaskName; use pixi_manifest::{ FeatureName, Task, task::{CmdArgs, TemplateString}, diff --git a/tests/integration_rust/test_activation.rs b/tests/integration_rust/test_activation.rs index 197014bb0d..06e506d40c 100644 --- a/tests/integration_rust/test_activation.rs +++ b/tests/integration_rust/test_activation.rs @@ -1,5 +1,7 @@ use crate::common::PixiControl; -use pixi::{activation::CurrentEnvVarBehavior, workspace::get_activated_environment_variables}; +use pixi_core::{ + activation::CurrentEnvVarBehavior, workspace::get_activated_environment_variables, +}; #[cfg(windows)] const HOME: &str = "HOMEPATH"; diff --git a/tests/integration_rust/upgrade_tests.rs b/tests/integration_rust/upgrade_tests.rs index 8e16dbc634..72f6d78ef1 100644 --- a/tests/integration_rust/upgrade_tests.rs +++ b/tests/integration_rust/upgrade_tests.rs @@ -1,7 +1,7 @@ use indexmap::IndexMap; use insta::assert_snapshot; -use pixi::Workspace; use pixi::cli::upgrade::{Args, parse_specs}; +use pixi_core::Workspace; use rattler_conda_types::Platform; use crate::common::PixiControl; @@ -44,8 +44,8 @@ async fn pypi_dependency_index_preserved_on_upgrade() { match_specs, pypi_deps, IndexMap::default(), - &args.prefix_update_config, - &args.lock_file_update_config, + args.prefix_update_config.no_install, + &args.lock_file_update_config.lock_file_usage().unwrap(), &args.specs.feature, &[], true, diff --git a/trampoline/Cargo.lock b/trampoline/Cargo.lock index 174978c0c3..6febc2cc19 100644 --- a/trampoline/Cargo.lock +++ b/trampoline/Cargo.lock @@ -28,18 +28,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy 0.7.35", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -70,17 +58,61 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + [[package]] name = "anstyle" version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.60.2", +] + [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arbitrary" @@ -91,6 +123,12 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "arcstr" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03918c3dbd7701a85c6b9887732e2921175f26c350b4563841d0958c21d57e6d" + [[package]] name = "async-broadcast" version = "0.7.1" @@ -121,7 +159,7 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0cf008e5e1a9e9e22a7d3c9a4992e21a350290069e36d8fb72304ed17e8f2d2" dependencies = [ - "bzip2", + "bzip2 0.5.2", "flate2", "futures-core", "memchr", @@ -309,9 +347,9 @@ dependencies = [ [[package]] name = "aws-credential-types" -version = "1.2.2" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4471bef4c22a06d2c7a1b6492493d3fdf24a805323109d6874f9c94d5906ac14" +checksum = "1541072f81945fa1251f8795ef6c92c4282d74d59f88498ae7d4bf00f0ebdad9" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -321,15 +359,15 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.5.6" +version = "1.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aff45ffe35196e593ea3b9dd65b320e51e2dda95aff4390bc459e461d09c6ad" +checksum = "c034a1bc1d70e16e7f4e4caf7e9f7693e4c9c24cd91cf17c2a0b21abaebc7c8b" dependencies = [ "aws-credential-types", "aws-sigv4", "aws-smithy-async", "aws-smithy-eventstream", - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -338,7 +376,6 @@ dependencies = [ "fastrand", "http 0.2.12", "http-body 0.4.6", - "once_cell", "percent-encoding", "pin-project-lite", "tracing", @@ -347,9 +384,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.82.0" +version = "1.91.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6eab2900764411ab01c8e91a76fd11a63b4e12bc3da97d9e14a0ce1343d86d3" +checksum = "10c7d58f9c99e7d33e5a9b288ec84db24de046add7ba4c1e98baf6b3a5b37fde" dependencies = [ "aws-credential-types", "aws-runtime", @@ -357,7 +394,7 @@ dependencies = [ "aws-smithy-async", "aws-smithy-checksums", "aws-smithy-eventstream", - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -372,7 +409,6 @@ dependencies = [ "http 1.3.1", "http-body 0.4.6", "lru", - "once_cell", "percent-encoding", "regex-lite", "sha2", @@ -389,7 +425,7 @@ dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -411,7 +447,7 @@ dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -433,7 +469,7 @@ dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-json", "aws-smithy-query", "aws-smithy-runtime", @@ -449,13 +485,13 @@ dependencies = [ [[package]] name = "aws-sigv4" -version = "1.3.0" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d03c3c05ff80d54ff860fe38c726f6f494c639ae975203a101335f223386db" +checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-runtime-api", "aws-smithy-types", "bytes", @@ -465,7 +501,6 @@ dependencies = [ "hmac", "http 0.2.12", "http 1.3.1", - "once_cell", "p256", "percent-encoding", "ring", @@ -489,16 +524,14 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.1" +version = "0.63.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65d21e1ba6f2cdec92044f904356a19f5ad86961acf015741106cdfafd747c0" +checksum = "9054b4cc5eda331cde3096b1576dec45365c5cbbca61d1fffa5f236e251dfce7" dependencies = [ - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-types", "bytes", - "crc32c", - "crc32fast", - "crc64fast-nvme", + "crc-fast", "hex", "http 0.2.12", "http-body 0.4.6", @@ -511,9 +544,9 @@ dependencies = [ [[package]] name = "aws-smithy-eventstream" -version = "0.60.8" +version = "0.60.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c45d3dddac16c5c59d553ece225a88870cf81b7b813c9cc17b78cf4685eac7a" +checksum = "604c7aec361252b8f1c871a7641d5e0ba3a7f5a586e51b66bc9510a5519594d9" dependencies = [ "aws-smithy-types", "bytes", @@ -542,9 +575,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.62.0" +version = "0.62.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5949124d11e538ca21142d1fba61ab0a2a2c1bc3ed323cdb3e4b878bfb83166" +checksum = "7c4dacf2d38996cf729f55e7a762b30918229917eca115de45dfa8dfb97796c9" dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", @@ -555,7 +588,6 @@ dependencies = [ "http 0.2.12", "http 1.3.1", "http-body 0.4.6", - "once_cell", "percent-encoding", "pin-project-lite", "pin-utils", @@ -564,13 +596,14 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" -version = "1.0.0" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0497ef5d53065b7cd6a35e9c1654bd1fefeae5c52900d91d1b188b0af0f29324" +checksum = "f108f1ca850f3feef3009bdcc977be201bca9a91058864d9de0684e64514bee0" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", + "h2 0.3.26", "h2 0.4.7", "http 0.2.12", "http-body 0.4.6", @@ -593,12 +626,11 @@ dependencies = [ [[package]] name = "aws-smithy-observability" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445d065e76bc1ef54963db400319f1dd3ebb3e0a74af20f7f7630625b0cc7cc0" +checksum = "9364d5989ac4dd918e5cc4c4bdcc61c9be17dcd2586ea7f69e348fc7c6cab393" dependencies = [ "aws-smithy-runtime-api", - "once_cell", ] [[package]] @@ -613,12 +645,12 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.8.1" +version = "1.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0152749e17ce4d1b47c7747bdfec09dac1ccafdcbc741ebf9daa2a373356730f" +checksum = "9e107ce0783019dbff59b3a244aa0c114e4a8c9d93498af9162608cd5474e796" dependencies = [ "aws-smithy-async", - "aws-smithy-http 0.62.0", + "aws-smithy-http 0.62.3", "aws-smithy-http-client", "aws-smithy-observability", "aws-smithy-runtime-api", @@ -629,7 +661,6 @@ dependencies = [ "http 1.3.1", "http-body 0.4.6", "http-body 1.0.1", - "once_cell", "pin-project-lite", "pin-utils", "tokio", @@ -638,9 +669,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.7.4" +version = "1.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da37cf5d57011cb1753456518ec76e31691f1f474b73934a284eb2a1c76510f" +checksum = "75d52251ed4b9776a3e8487b2a01ac915f73b2da3af8fc1e77e0fce697a550d4" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -655,9 +686,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836155caafba616c0ff9b07944324785de2ab016141c3550bd1c07882f8cee8f" +checksum = "d498595448e43de7f4296b7b7a18a8a02c61ec9349128c80a368f7c3b4ab11a8" dependencies = [ "base64-simd", "bytes", @@ -690,9 +721,9 @@ dependencies = [ [[package]] name = "aws-types" -version = "1.3.6" +version = "1.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3873f8deed8927ce8d04487630dc9ff73193bab64742a61d050e57a68dec4125" +checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -702,6 +733,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "backon" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" +dependencies = [ + "fastrand", + "gloo-timers", + "tokio", +] + [[package]] name = "backtrace" version = "0.3.74" @@ -751,6 +793,21 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + [[package]] name = "bitflags" version = "1.3.2" @@ -759,9 +816,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "blake2" @@ -803,18 +860,77 @@ dependencies = [ "piper", ] +[[package]] +name = "bon" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a0c21249ad725ebcadcb1b1885f8e3d56e8e6b8924f560268aab000982d637" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a660ebdea4d4d3ec7788cfc9c035b66efb66028b9b97bf6cde7023ccc8e77e28" +dependencies = [ + "darling 0.21.1", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "boxcar" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f839cdf7e2d3198ac6ca003fd8ebc61715755f41c1cad15ff13df67531e00ed" +[[package]] +name = "bstr" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] + [[package]] name = "bumpalo" version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "bytecheck" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50690fb3370fb9fe3550372746084c46f2ac8c9685c583d2be10eefd89d3d1a3" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "rancor", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb7846e0cb180355c2dec69e721edafa36919850f1a9f52ffba4ebc0393cb71" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "byteorder" version = "1.5.0" @@ -826,6 +942,9 @@ name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "serde", +] [[package]] name = "bytes-utils" @@ -846,6 +965,15 @@ dependencies = [ "bzip2-sys", ] +[[package]] +name = "bzip2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea8dcd42434048e4f7a304411d9273a411f647446c1234a65ce0554923f4cff" +dependencies = [ + "libbz2-rs-sys", +] + [[package]] name = "bzip2-sys" version = "0.1.13+1.0.8" @@ -862,6 +990,29 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee" +[[package]] +name = "cargo-util" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c95ec8b2485b20aed818bd7460f8eecc6c87c35c84191b353a3aba9aa1736c36" +dependencies = [ + "anyhow", + "core-foundation 0.10.0", + "filetime", + "hex", + "ignore", + "jobserver", + "libc", + "miow", + "same-file", + "sha2", + "shell-escape", + "tempfile", + "tracing", + "walkdir", + "windows-sys 0.59.0", +] + [[package]] name = "cbc" version = "0.1.2" @@ -894,11 +1045,21 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "charset" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e" +dependencies = [ + "base64 0.22.1", + "encoding_rs", +] + [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", @@ -955,6 +1116,12 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -983,6 +1150,19 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "console" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.60.2", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -1040,12 +1220,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] -name = "crc32c" -version = "0.6.8" +name = "crc-fast" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" +checksum = "ec9f79df9b0383475ae6df8fcf35d4e29528441706385339daf0fe3f4cce040b" dependencies = [ - "rustc_version", + "crc", + "digest", + "libc", + "rand 0.9.0", + "regex", + "rustversion", ] [[package]] @@ -1057,15 +1242,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crc64fast-nvme" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4955638f00a809894c947f85a024020a20815b65a5eea633798ea7924edab2b3" -dependencies = [ - "crc", -] - [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -1129,7 +1305,7 @@ version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ - "nix", + "nix 0.29.0", "windows-sys 0.59.0", ] @@ -1139,8 +1315,18 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b136475da5ef7b6ac596c0e956e37bad51b85b987ff3d5e230e964936736b2" +dependencies = [ + "darling_core 0.21.1", + "darling_macro 0.21.1", ] [[package]] @@ -1157,13 +1343,38 @@ dependencies = [ "syn", ] +[[package]] +name = "darling_core" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b44ad32f92b75fb438b04b68547e521a548be8acc339a6dacc4a7121488f53e6" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + [[package]] name = "darling_macro" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core", + "darling_core 0.20.10", + "quote", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5be8a7a562d315a5b92a630c30cec6bcf663e6673f00fbb69cca66a6f521b9" +dependencies = [ + "darling_core 0.21.1", "quote", "syn", ] @@ -1179,9 +1390,15 @@ dependencies = [ "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.11", ] +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + [[package]] name = "dbus" version = "0.9.7" @@ -1271,7 +1488,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1285,6 +1502,18 @@ dependencies = [ "syn", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + [[package]] name = "ecdsa" version = "0.14.8" @@ -1338,6 +1567,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "encoding_rs_io" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" +dependencies = [ + "encoding_rs", +] + [[package]] name = "endi" version = "1.1.0" @@ -1406,6 +1644,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "etcetera" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c7b13d0780cb82722fd59f6f57f925e143427e4a75313a6c77243bf5326ae6" +dependencies = [ + "cfg-if", + "home", "windows-sys 0.59.0", ] @@ -1448,9 +1697,9 @@ dependencies = [ [[package]] name = "file_url" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ca1565923e8d9bcf962889abeeb2f15d4b73356689ce26ae7dd1f54b928498" +checksum = "765662dc0b26e038099a5a1529f5d48443111eea45377c312be892997651710e" dependencies = [ "itertools 0.14.0", "percent-encoding", @@ -1471,13 +1720,20 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide", ] @@ -1521,6 +1777,16 @@ dependencies = [ "tokio", ] +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "fs4" version = "0.13.1" @@ -1528,7 +1794,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" dependencies = [ "fs-err", - "rustix 1.0.2", + "rustix 1.0.8", "tokio", "windows-sys 0.59.0", ] @@ -1670,14 +1936,16 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -1693,45 +1961,109 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] -name = "google-cloud-auth" -version = "0.17.2" +name = "globset" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57a13fbacc5e9c41ded3ad8d0373175a6b7a6ad430d99e89d314ac121b7ab06" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" dependencies = [ - "async-trait", - "base64 0.21.7", - "google-cloud-metadata", - "google-cloud-token", - "home", - "jsonwebtoken", - "reqwest", - "serde", - "serde_json", - "thiserror 1.0.69", - "time", - "tokio", - "tracing", - "urlencoding", + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", ] [[package]] -name = "google-cloud-metadata" -version = "0.5.0" +name = "globwalk" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" +dependencies = [ + "bitflags 2.9.1", + "ignore", + "walkdir", +] + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "google-cloud-auth" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f945a208886a13d07636f38fb978da371d0abc3e34bad338124b9f8c135a8f" +checksum = "a65fb515e1e726bc58b925fc876e8f02b626ab574b15c8f3fa53cb08177a7815" dependencies = [ + "async-trait", + "base64 0.22.1", + "bon", + "google-cloud-gax", + "http 1.3.1", "reqwest", - "thiserror 1.0.69", + "rustls 0.23.17", + "rustls-pemfile 2.2.0", + "serde", + "serde_json", + "thiserror 2.0.12", + "time", "tokio", ] [[package]] -name = "google-cloud-token" -version = "0.1.2" +name = "google-cloud-gax" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c12ba8b21d128a2ce8585955246977fbce4415f680ebf9199b6f9d6d725f" +checksum = "876a08b972e05565d562f2575e110092492835bf5f7b76aec4e90f792b581960" dependencies = [ - "async-trait", + "base64 0.22.1", + "bytes", + "futures", + "google-cloud-rpc", + "google-cloud-wkt", + "http 1.3.1", + "pin-project", + "rand 0.9.0", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", +] + +[[package]] +name = "google-cloud-rpc" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07b375f1a978a69d4e4ebbf673766dc3be4bec01c8f95048896370205f2fe22c" +dependencies = [ + "bytes", + "google-cloud-wkt", + "serde", + "serde_json", + "serde_with", +] + +[[package]] +name = "google-cloud-wkt" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2c101cb6257433b87908b91b9d16df9288c7dd0fb8c700f2c8e53cfc23ca13e" +dependencies = [ + "base64 0.22.1", + "bytes", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.12", + "time", + "url", ] [[package]] @@ -1757,7 +2089,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.9.0", + "indexmap 2.10.0", "slab", "tokio", "tokio-util", @@ -1776,7 +2108,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.9.0", + "indexmap 2.10.0", "slab", "tokio", "tokio-util", @@ -1785,11 +2117,11 @@ dependencies = [ [[package]] name = "halfbrown" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" +checksum = "aa2c385c6df70fd180bbb673d93039dbd2cd34e41d782600bdf6e1ca7bce39aa" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.1", "serde", ] @@ -1804,10 +2136,6 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] [[package]] name = "hashbrown" @@ -2006,9 +2334,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -2048,7 +2376,7 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.3.1", - "hyper 1.5.1", + "hyper 1.6.0", "hyper-util", "rustls 0.23.17", "rustls-native-certs 0.8.1", @@ -2056,21 +2384,26 @@ dependencies = [ "tokio", "tokio-rustls 0.26.0", "tower-service", - "webpki-roots", + "webpki-roots 0.26.7", ] [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", "http 1.3.1", "http-body 1.0.1", - "hyper 1.5.1", + "hyper 1.6.0", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -2246,6 +2579,22 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "ignore" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata", + "same-file", + "walkdir", + "winapi-util", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -2259,9 +2608,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown 0.15.1", @@ -2270,14 +2619,14 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.11" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +checksum = "70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd" dependencies = [ - "console", - "number_prefix", + "console 0.16.0", "portable-atomic", "unicode-width 0.2.0", + "unit-prefix", "web-time", ] @@ -2303,12 +2652,48 @@ dependencies = [ "web-sys", ] +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is_executable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2" +dependencies = [ + "winapi", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.13.0" @@ -2333,6 +2718,35 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" +[[package]] +name = "jiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3590fea8e9e22d449600c9bbd481a8163bef223e4ff938e5f55899f8cf1adb93" +dependencies = [ + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", + "windows-sys 0.52.0", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "jobserver" version = "0.1.32" @@ -2354,9 +2768,9 @@ dependencies = [ [[package]] name = "json-patch" -version = "3.0.1" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +checksum = "159294d661a039f7644cea7e4d844e6b25aaf71c1ffe9d73a96d768c24b0faf4" dependencies = [ "jsonptr", "serde", @@ -2366,27 +2780,22 @@ dependencies = [ [[package]] name = "jsonptr" -version = "0.6.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +checksum = "a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe" dependencies = [ "serde", "serde_json", ] [[package]] -name = "jsonwebtoken" -version = "9.3.0" +name = "junction" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +checksum = "72bbdfd737a243da3dfc1f99ee8d6e166480f17ab4ac84d7c34aacd73fc7bd16" dependencies = [ - "base64 0.21.7", - "js-sys", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", + "scopeguard", + "windows-sys 0.52.0", ] [[package]] @@ -2443,6 +2852,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "libbz2-rs-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" + [[package]] name = "libc" version = "0.2.171" @@ -2470,11 +2885,20 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "libc", "redox_syscall 0.5.7", ] +[[package]] +name = "libz-rs-sys" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221" +dependencies = [ + "zlib-rs", +] + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -2495,9 +2919,9 @@ checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -2524,6 +2948,17 @@ dependencies = [ "hashbrown 0.15.1", ] +[[package]] +name = "mailparse" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60819a97ddcb831a5614eb3b0174f3620e793e97e09195a395bfa948fd68ed2f" +dependencies = [ + "charset", + "data-encoding", + "quoted_printable", +] + [[package]] name = "md-5" version = "0.10.6" @@ -2560,21 +2995,20 @@ dependencies = [ [[package]] name = "miette" -version = "7.5.0" +version = "7.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a955165f87b37fd1862df2a59547ac542c77ef6d17c666f619d1ad22dd89484" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" dependencies = [ "cfg-if", "miette-derive", - "thiserror 1.0.69", "unicode-width 0.1.14", ] [[package]] name = "miette-derive" -version = "7.5.0" +version = "7.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf45bf44ab49be92fd1227a3be6fc6f617f1a337c06af54981048574d8783147" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" dependencies = [ "proc-macro2", "quote", @@ -2588,16 +3022,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "minimal-lexical" -version = "0.2.1" +name = "mime_guess" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] @@ -2614,6 +3052,44 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "miow" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "munge" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7feb0b48aa0a25f9fe0899482c6e1379ee7a11b24a53073eacdecb9adb6dc60" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2e3795a5d2da581a8b252fec6022eee01aea10161a4d1bf237d4cbe47f7e988" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand 0.8.5", +] + [[package]] name = "netrc-rs" version = "0.1.2" @@ -2626,21 +3102,41 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", "memoffset", ] +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "cfg_aliases", + "libc", +] + [[package]] name = "nom" -version = "7.1.3" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" dependencies = [ "memchr", - "minimal-lexical", +] + +[[package]] +name = "nom-language" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2de2bc5b451bfedaef92c90b8939a8fff5770bdcc1fafd6239d086aab8fa6b29" +dependencies = [ + "nom", ] [[package]] @@ -2742,12 +3238,6 @@ dependencies = [ "libc", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.36.5" @@ -2763,6 +3253,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "openssl-probe" version = "0.1.5" @@ -2785,6 +3281,15 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +dependencies = [ + "memchr", +] + [[package]] name = "outref" version = "0.5.2" @@ -2797,6 +3302,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "owo-colors" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e" + [[package]] name = "p256" version = "0.11.1" @@ -2827,12 +3338,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.11", ] [[package]] @@ -2851,9 +3362,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -2869,13 +3380,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "pem" -version = "3.0.4" +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "path_resolver" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "b0b6f3ea862c0666ad89857fd29d3d86c3f076c4134c0ce62a659d6d33de5ee9" dependencies = [ - "base64 0.22.1", - "serde", + "fs-err", + "indexmap 2.10.0", + "itertools 0.14.0", + "proptest", + "tempfile", + "tracing", ] [[package]] @@ -2887,7 +3408,7 @@ dependencies = [ "serde", "unicode-width 0.2.0", "unscanny", - "version-ranges", + "version-ranges 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2897,7 +3418,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faee7227064121fcadcd2ff788ea26f0d8f2bd23a0574da11eca23bc935bcc05" dependencies = [ "boxcar", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.13.0", "once_cell", "pep440_rs", @@ -2909,7 +3430,7 @@ dependencies = [ "unicode-width 0.2.0", "url", "urlencoding", - "version-ranges", + "version-ranges 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2918,6 +3439,18 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "petgraph" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.1", + "indexmap 2.10.0", + "serde", +] + [[package]] name = "phf" version = "0.11.2" @@ -3010,7 +3543,7 @@ name = "pixi_config" version = "0.1.0" dependencies = [ "clap", - "console", + "console 0.15.10", "dirs", "fs-err", "itertools 0.14.0", @@ -3019,14 +3552,13 @@ dependencies = [ "rattler", "rattler_conda_types", "rattler_networking", - "rattler_package_streaming", "rattler_repodata_gateway", "reqwest", "serde", "serde_ignored", "serde_json", "thiserror 2.0.12", - "toml_edit", + "toml_edit 0.22.24", "tracing", "url", ] @@ -3035,7 +3567,7 @@ dependencies = [ name = "pixi_consts" version = "0.1.0" dependencies = [ - "console", + "console 0.15.10", "rattler_cache", "rattler_conda_types", "url", @@ -3060,6 +3592,7 @@ dependencies = [ "async-fd-lock", "fs-err", "indicatif", + "is_executable", "itertools 0.14.0", "miette", "pep508_rs", @@ -3067,9 +3600,11 @@ dependencies = [ "pixi_consts", "rattler_conda_types", "rattler_networking", + "rattler_shell", "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest-retry", + "rlimit", "serde", "serde_json", "serde_yaml", @@ -3079,6 +3614,7 @@ dependencies = [ "tracing", "tracing-subscriber", "url", + "uv-configuration", ] [[package]] @@ -3104,7 +3640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ "base64 0.22.1", - "indexmap 2.9.0", + "indexmap 2.10.0", "quick-xml 0.32.0", "serde", "time", @@ -3127,15 +3663,24 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] -name = "powerfmt" -version = "0.2.0" +name = "portable-atomic-util" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" @@ -3146,13 +3691,23 @@ dependencies = [ "zerocopy 0.7.35", ] +[[package]] +name = "prettyplease" +version = "0.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "proc-macro-crate" version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit", + "toml_edit 0.22.24", ] [[package]] @@ -3164,6 +3719,46 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "proptest" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.9.1", + "lazy_static", + "num-traits", + "rand 0.9.0", + "rand_chacha 0.9.0", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "ptr_meta" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "purl" version = "0.1.6" @@ -3179,6 +3774,12 @@ dependencies = [ "unicase", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quick-xml" version = "0.32.0" @@ -3190,9 +3791,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.37.2" +version = "0.37.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" dependencies = [ "memchr", ] @@ -3246,7 +3847,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -3258,12 +3859,27 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "quoted_printable" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73" + [[package]] name = "r-efi" version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +[[package]] +name = "rancor" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf5f7161924b9d1cea0e4cabc97c372cea92b5f927fc13c6bca67157a0ad947" +dependencies = [ + "ptr_meta", +] + [[package]] name = "rand" version = "0.8.5" @@ -3321,14 +3937,23 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", +] + +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.3", ] [[package]] name = "rattler" -version = "0.33.5" +version = "0.34.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e7bfacc5f5ff3517d984b5e2f2df3eea46e8309685cb7cdff39d62f7b2bee2" +checksum = "4fd2078ed6a0a58eddfc7e3277aab81f5694c2daa83ccd2a674ae957ebba2205" dependencies = [ "anyhow", "digest", @@ -3336,12 +3961,13 @@ dependencies = [ "fs-err", "futures", "humantime", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.14.0", "memchr", "memmap2", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", + "path_resolver", "rattler_cache", "rattler_conda_types", "rattler_digest", @@ -3353,7 +3979,7 @@ dependencies = [ "reflink-copy", "regex", "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "simple_spawn_blocking", "smallvec", @@ -3367,9 +3993,9 @@ dependencies = [ [[package]] name = "rattler_cache" -version = "0.3.17" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2ad44802bc15f7196f0898ff52729aab52338203ddbdff5212146f45aa2a67" +checksum = "4397ef3a8ea358170984a98462ea567d0757e45c49dbb01f68ed8ace3569d1eb" dependencies = [ "anyhow", "dashmap", @@ -3380,14 +4006,14 @@ dependencies = [ "futures", "fxhash", "itertools 0.14.0", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rattler_conda_types", "rattler_digest", "rattler_networking", "rattler_package_streaming", "rayon", "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "simple_spawn_blocking", "tempfile", @@ -3399,9 +4025,9 @@ dependencies = [ [[package]] name = "rattler_conda_types" -version = "0.32.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21c2ed99f2fc8044499c63c65db265f6ec3e0333cdf15bb442d5063187449d51" +checksum = "82f1e12c2384b3f2d42fa3ee5848fb804091df6a2afbbd9e15323cead8e83afc" dependencies = [ "chrono", "core-foundation 0.10.0", @@ -3411,10 +4037,11 @@ dependencies = [ "fxhash", "glob", "hex", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.14.0", "lazy-regex", "nom", + "nom-language", "purl", "rattler_digest", "rattler_macros", @@ -3439,9 +4066,9 @@ dependencies = [ [[package]] name = "rattler_digest" -version = "1.1.1" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34751b3e9c9755379281d1b49b9335648a4686c434ce77b5376323980d38e1b8" +checksum = "f40b746768824bc3306dcb597e549e836eda023dab8d7407d32b9f342c70cc5d" dependencies = [ "blake2", "digest", @@ -3457,9 +4084,9 @@ dependencies = [ [[package]] name = "rattler_macros" -version = "1.0.8" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c9b25725cedeef8dee22c41dee138daf76ebd70da50fe210aa5e50288036816" +checksum = "988d5d7ace4fb1d7549008236cf08de95e8ea2f1f80754109324a08c31e6dc6a" dependencies = [ "quote", "syn", @@ -3467,9 +4094,9 @@ dependencies = [ [[package]] name = "rattler_menuinst" -version = "0.2.7" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3eedb82b5366136093acb1bafc4839f3f122c64889a358cbe6e50fc8c573b0" +checksum = "c33f5b3e00bf20202bd35f2ba2f037c2549626c0754b83a7c2d80f14a52371a0" dependencies = [ "chrono", "configparser", @@ -3478,7 +4105,7 @@ dependencies = [ "known-folders", "once_cell", "plist", - "quick-xml 0.37.2", + "quick-xml 0.37.5", "rattler_conda_types", "rattler_shell", "regex", @@ -3491,15 +4118,15 @@ dependencies = [ "tracing", "unicode-normalization", "which", - "windows 0.60.0", - "windows-registry 0.5.0", + "windows 0.61.1", + "windows-registry", ] [[package]] name = "rattler_networking" -version = "0.22.12" +version = "0.25.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe0171ee4c22e335ade0cb926e83cdf08a5dda5eaf26fc21fa9948beb65c764" +checksum = "e928835e448cfecf657d088ce725f08b26256b9765e4608c479796f9685e450c" dependencies = [ "anyhow", "async-trait", @@ -3508,15 +4135,14 @@ dependencies = [ "base64 0.22.1", "dirs", "fs-err", - "getrandom 0.2.15", + "getrandom 0.3.3", "google-cloud-auth", - "google-cloud-token", "http 1.3.1", "itertools 0.14.0", "keyring", "netrc-rs", "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "retry-policies", "serde", "serde_json", @@ -3528,11 +4154,11 @@ dependencies = [ [[package]] name = "rattler_package_streaming" -version = "0.22.36" +version = "0.22.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11879ff84195638459a15f0bb4c0d167f58ecd497d2df00df46c6cf81c0f2bb7" +checksum = "16b516be73df911ed5149e9034822d0b4ca4167dac1a3ae09cc0f0e1c627df0c" dependencies = [ - "bzip2", + "bzip2 0.6.0", "chrono", "fs-err", "futures-util", @@ -3542,7 +4168,7 @@ dependencies = [ "rattler_networking", "rattler_redaction", "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "simple_spawn_blocking", "tar", @@ -3558,31 +4184,31 @@ dependencies = [ [[package]] name = "rattler_pty" -version = "0.2.0" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1ba454a7e23bfe50c09abdb3164e26f98b326a04c104389c41e300918b219f" +checksum = "76a7edbf8f23a099ccb32cc4f024886e35a873c462ca83f86c286556c275bf06" dependencies = [ "libc", - "nix", + "nix 0.30.1", "signal-hook", ] [[package]] name = "rattler_redaction" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d46116e48405681feb0c0c9938ecb6751825eb9bde353069e516784ca983e9" +checksum = "3aa5057629aeb20861919e9ae56875985d58028f3c6f433a20b5ded086e1cec5" dependencies = [ "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "url", ] [[package]] name = "rattler_repodata_gateway" -version = "0.22.5" +version = "0.23.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e25d367f6ff1d83cf925ccacfcf7805f94030f96de6858992db37edb3c5a638" +checksum = "8ba542cbf46c319f4c6c003c7dd841e249c78c4895b25a5431854b834affbc15" dependencies = [ "anyhow", "async-compression", @@ -3607,7 +4233,7 @@ dependencies = [ "json-patch", "libc", "memmap2", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project-lite", "rattler_cache", "rattler_conda_types", @@ -3615,7 +4241,7 @@ dependencies = [ "rattler_networking", "rattler_redaction", "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "retry-policies", "rmp-serde", "self_cell", @@ -3623,6 +4249,7 @@ dependencies = [ "serde_json", "serde_with", "simple_spawn_blocking", + "strum", "superslice", "tempfile", "thiserror 2.0.12", @@ -3631,20 +4258,20 @@ dependencies = [ "tracing", "url", "wasmtimer", - "windows-sys 0.59.0", + "windows-sys 0.60.2", "zstd", ] [[package]] name = "rattler_shell" -version = "0.22.26" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf546ea648c95cfeb27d8eedb6d592c8dec050d2dc9fb9af5be4ffe13759d7f" +checksum = "2c72a98e4d684d3b5679a901b413d52b6fd43d631691e44b696339dda5602964" dependencies = [ "anyhow", "enum_dispatch", "fs-err", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.14.0", "rattler_conda_types", "rattler_pty", @@ -3690,7 +4317,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", ] [[package]] @@ -3706,18 +4333,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", @@ -3732,7 +4359,7 @@ checksum = "78c81d000a2c524133cc00d2f92f019d399e57906c3b7119271a2495354fe895" dependencies = [ "cfg-if", "libc", - "rustix 1.0.2", + "rustix 1.0.8", "windows 0.61.1", ] @@ -3771,36 +4398,42 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "rend" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a35e8a6bf28cd121053a66aa2e6a2e3eaffad4a60012179f0e864aa5ffeff215" +dependencies = [ + "bytecheck", +] + [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "async-compression", "base64 0.22.1", "bytes", - "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2 0.4.7", "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.5.1", + "hyper 1.6.0", "hyper-rustls 0.27.3", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", + "mime_guess", "percent-encoding", "pin-project-lite", "quinn", "rustls 0.23.17", "rustls-native-certs 0.8.1", - "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", @@ -3810,14 +4443,14 @@ dependencies = [ "tokio-rustls 0.26.0", "tokio-util", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots", - "windows-registry 0.4.0", + "webpki-roots 1.0.2", ] [[package]] @@ -3835,6 +4468,20 @@ dependencies = [ "tower-service", ] +[[package]] +name = "reqwest-middleware" +version = "0.4.2" +source = "git+https://github.com/astral-sh/reqwest-middleware?rev=ad8b9d332d1773fde8b4cd008486de5973e0a3f8#ad8b9d332d1773fde8b4cd008486de5973e0a3f8" +dependencies = [ + "anyhow", + "async-trait", + "http 1.3.1", + "reqwest", + "serde", + "thiserror 1.0.69", + "tower-service", +] + [[package]] name = "reqwest-retry" version = "0.7.0" @@ -3846,10 +4493,10 @@ dependencies = [ "futures", "getrandom 0.2.15", "http 1.3.1", - "hyper 1.5.1", + "hyper 1.6.0", "parking_lot 0.11.2", "reqwest", - "reqwest-middleware", + "reqwest-middleware 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "retry-policies", "thiserror 1.0.69", "tokio", @@ -3892,6 +4539,46 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rkyv" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f5c3e5da784cd8c69d32cdc84673f3204536ca56e1fa01be31a74b92c932ac" +dependencies = [ + "bytecheck", + "bytes", + "hashbrown 0.15.1", + "indexmap 2.10.0", + "munge", + "ptr_meta", + "rancor", + "rend", + "rkyv_derive", + "smallvec", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4270433626cffc9c4c1d3707dd681f2a2718d3d7b09ad754bec137acecda8d22" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rlimit" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" +dependencies = [ + "libc", +] + [[package]] name = "rmp" version = "0.8.14" @@ -3914,6 +4601,16 @@ dependencies = [ "serde", ] +[[package]] +name = "rust-netrc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e98097f62769f92dbf95fb51f71c0a68ec18a4ee2e70e0d3e4f47ac005d63e9" +dependencies = [ + "shellexpand", + "thiserror 1.0.69", +] + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -3941,7 +4638,7 @@ version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.4.14", @@ -3950,15 +4647,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.2" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.9.3", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -3979,6 +4676,7 @@ version = "0.23.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" dependencies = [ + "log", "once_cell", "ring", "rustls-pki-types", @@ -4065,12 +4763,33 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + [[package]] name = "ryu" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "schannel" version = "0.1.27" @@ -4080,6 +4799,32 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "schemars_derive", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "schemars_derive" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -4096,6 +4841,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.3.0" @@ -4135,7 +4886,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -4148,7 +4899,7 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -4167,9 +4918,9 @@ dependencies = [ [[package]] name = "self_cell" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" +checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" [[package]] name = "semver" @@ -4208,6 +4959,17 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "serde_ignored" version = "0.1.10" @@ -4223,7 +4985,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "itoa", "memchr", "ryu", @@ -4250,6 +5012,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -4272,7 +5043,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.9.0", + "indexmap 2.10.0", "serde", "serde_derive", "serde_json", @@ -4286,7 +5057,7 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", "syn", @@ -4298,7 +5069,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "itoa", "ryu", "serde", @@ -4318,9 +5089,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -4336,6 +5107,23 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + +[[package]] +name = "shellexpand" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" +dependencies = [ + "bstr", + "dirs", + "os_str_bytes", +] + [[package]] name = "shlex" version = "1.3.0" @@ -4344,9 +5132,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" dependencies = [ "libc", "signal-hook-registry", @@ -4379,11 +5167,11 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "simd-json" -version = "0.14.3" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" +checksum = "c962f626b54771990066e5435ec8331d1462576cd2d1e62f24076ae014f92112" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.3", "halfbrown", "ref-cast", "serde", @@ -4398,18 +5186,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 1.0.69", - "time", -] - [[package]] name = "simple_spawn_blocking" version = "1.1.0" @@ -4454,11 +5230,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -4534,9 +5316,9 @@ checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" [[package]] name = "syn" -version = "2.0.100" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -4576,15 +5358,26 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.19.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", - "rustix 1.0.2", - "windows-sys 0.59.0", + "rustix 1.0.8", + "windows-sys 0.52.0", +] + +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width 0.2.0", ] [[package]] @@ -4695,17 +5488,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.2" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", - "parking_lot 0.12.3", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", "windows-sys 0.52.0", @@ -4745,9 +5539,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.14" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -4756,6 +5550,22 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +dependencies = [ + "foldhash", + "indexmap 2.10.0", + "serde", + "serde_spanned 1.0.0", + "toml_datetime 0.7.0", + "toml_parser", + "toml_writer", + "winnow", +] + [[package]] name = "toml_datetime" version = "0.6.8" @@ -4765,32 +5575,89 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +dependencies = [ + "serde", +] + [[package]] name = "toml_edit" version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.8", + "toml_datetime 0.6.8", "winnow", ] [[package]] -name = "tower" -version = "0.5.2" +name = "toml_edit" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "17d3b47e6b7a040216ae5302712c94d1cf88c95b47efa80e2c59ce96c878267e" dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", + "indexmap 2.10.0", + "serde", + "serde_spanned 1.0.0", + "toml_datetime 0.7.0", + "toml_parser", + "toml_writer", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", ] [[package]] @@ -4870,9 +5737,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typed-path" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41713888c5ccfd99979fcd1afd47b71652e331b3d4a0e19d30769e80fec76cce" +checksum = "c462d18470a2857aa657d338af5fa67170bb48bcc80a296710ce3b0802a32566" [[package]] name = "typeid" @@ -4897,6 +5764,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + [[package]] name = "unicase" version = "2.8.0" @@ -4909,6 +5782,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-normalization" version = "0.1.24" @@ -4930,6 +5809,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +[[package]] +name = "unit-prefix" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817" + [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -4978,14 +5863,415 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "uuid" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", + "js-sys", "rand 0.9.0", + "wasm-bindgen", +] + +[[package]] +name = "uv-auth" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.22.1", + "futures", + "http 1.3.1", + "percent-encoding", + "reqwest", + "reqwest-middleware 0.4.2 (git+https://github.com/astral-sh/reqwest-middleware?rev=ad8b9d332d1773fde8b4cd008486de5973e0a3f8)", + "rust-netrc", + "rustc-hash", + "schemars", + "serde", + "tokio", + "tracing", + "url", + "uv-once-map", + "uv-redacted", + "uv-small-str", + "uv-static", + "uv-warnings", +] + +[[package]] +name = "uv-cache" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "fs-err", + "nanoid", + "rmp-serde", + "rustc-hash", + "same-file", + "serde", + "tempfile", + "tracing", + "uv-cache-info", + "uv-cache-key", + "uv-dirs", + "uv-distribution-types", + "uv-fs", + "uv-normalize", + "uv-pypi-types", + "uv-redacted", + "uv-static", + "walkdir", +] + +[[package]] +name = "uv-cache-info" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "fs-err", + "globwalk", + "serde", + "thiserror 2.0.12", + "toml", + "tracing", + "walkdir", +] + +[[package]] +name = "uv-cache-key" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "hex", + "memchr", + "percent-encoding", + "seahash", + "url", + "uv-redacted", +] + +[[package]] +name = "uv-configuration" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "bitflags 2.9.1", + "either", + "fs-err", + "rayon", + "rustc-hash", + "same-file", + "serde", + "serde-untagged", + "serde_json", + "thiserror 2.0.12", + "tracing", + "url", + "uv-auth", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-distribution-types", + "uv-git", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-static", + "uv-warnings", +] + +[[package]] +name = "uv-dirs" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "etcetera", + "fs-err", + "tracing", + "uv-static", +] + +[[package]] +name = "uv-distribution-filename" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "memchr", + "rkyv", + "serde", + "smallvec", + "thiserror 2.0.12", + "uv-cache-key", + "uv-normalize", + "uv-pep440", + "uv-platform-tags", + "uv-small-str", +] + +[[package]] +name = "uv-distribution-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "arcstr", + "bitflags 2.9.1", + "fs-err", + "http 1.3.1", + "itertools 0.14.0", + "jiff", + "owo-colors", + "percent-encoding", + "petgraph", + "rkyv", + "rustc-hash", + "serde", + "serde_json", + "thiserror 2.0.12", + "tracing", + "url", + "uv-auth", + "uv-cache-info", + "uv-cache-key", + "uv-distribution-filename", + "uv-fs", + "uv-git-types", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-redacted", + "uv-small-str", + "uv-warnings", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=06ec5a5f59ffaeb6cf5079c6cb184467da06c9db)", +] + +[[package]] +name = "uv-fs" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "backon", + "dunce", + "either", + "encoding_rs_io", + "fs-err", + "fs2", + "junction", + "path-slash", + "percent-encoding", + "rustix 1.0.8", + "same-file", + "serde", + "tempfile", + "tokio", + "tracing", + "windows 0.59.0", + "windows-core 0.59.0", +] + +[[package]] +name = "uv-git" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "anyhow", + "cargo-util", + "dashmap", + "fs-err", + "reqwest", + "reqwest-middleware 0.4.2 (git+https://github.com/astral-sh/reqwest-middleware?rev=ad8b9d332d1773fde8b4cd008486de5973e0a3f8)", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "uv-auth", + "uv-cache-key", + "uv-fs", + "uv-git-types", + "uv-redacted", + "uv-static", + "uv-version", + "which", +] + +[[package]] +name = "uv-git-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "serde", + "thiserror 2.0.12", + "tracing", + "url", + "uv-redacted", +] + +[[package]] +name = "uv-macros" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "textwrap", +] + +[[package]] +name = "uv-normalize" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "rkyv", + "serde", + "uv-small-str", +] + +[[package]] +name = "uv-once-map" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "dashmap", + "futures", + "tokio", +] + +[[package]] +name = "uv-pep440" +version = "0.7.0" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "rkyv", + "serde", + "tracing", + "unicode-width 0.2.0", + "unscanny", + "uv-cache-key", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=06ec5a5f59ffaeb6cf5079c6cb184467da06c9db)", +] + +[[package]] +name = "uv-pep508" +version = "0.6.0" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "arcstr", + "boxcar", + "indexmap 2.10.0", + "itertools 0.14.0", + "regex", + "rustc-hash", + "schemars", + "serde", + "smallvec", + "thiserror 2.0.12", + "unicode-width 0.2.0", + "url", + "uv-cache-key", + "uv-fs", + "uv-normalize", + "uv-pep440", + "uv-redacted", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=06ec5a5f59ffaeb6cf5079c6cb184467da06c9db)", +] + +[[package]] +name = "uv-platform-tags" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "memchr", + "rkyv", + "rustc-hash", + "serde", + "thiserror 2.0.12", + "uv-small-str", +] + +[[package]] +name = "uv-pypi-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "hashbrown 0.15.1", + "indexmap 2.10.0", + "itertools 0.14.0", + "jiff", + "mailparse", + "petgraph", + "regex", + "rkyv", + "rustc-hash", + "serde", + "serde-untagged", + "thiserror 2.0.12", + "toml_edit 0.23.3", + "tracing", + "url", + "uv-cache-key", + "uv-distribution-filename", + "uv-git-types", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-redacted", + "uv-small-str", +] + +[[package]] +name = "uv-redacted" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "ref-cast", + "serde", + "url", +] + +[[package]] +name = "uv-small-str" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "arcstr", + "rkyv", + "serde", +] + +[[package]] +name = "uv-static" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "uv-macros", +] + +[[package]] +name = "uv-version" +version = "0.8.5" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" + +[[package]] +name = "uv-warnings" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.8.5#ce37286814dbb802c422f0926487cfab7aefd2b7" +dependencies = [ + "anstream", + "owo-colors", + "rustc-hash", ] [[package]] @@ -4996,9 +6282,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-trait" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" +checksum = "0508fce11ad19e0aab49ce20b6bec7f8f82902ded31df1c9fc61b90f0eb396b8" dependencies = [ "float-cmp", "halfbrown", @@ -5015,6 +6301,14 @@ dependencies = [ "smallvec", ] +[[package]] +name = "version-ranges" +version = "0.1.1" +source = "git+https://github.com/astral-sh/pubgrub?rev=06ec5a5f59ffaeb6cf5079c6cb184467da06c9db#06ec5a5f59ffaeb6cf5079c6cb184467da06c9db" +dependencies = [ + "smallvec", +] + [[package]] name = "version_check" version = "0.9.5" @@ -5027,6 +6321,25 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -5157,7 +6470,7 @@ checksum = "0048ad49a55b9deb3953841fa1fc5858f0efbcb7a18868c899a360269fac1b23" dependencies = [ "futures", "js-sys", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-utils", "slab", "wasm-bindgen", @@ -5192,15 +6505,24 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "webpki-roots" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" -version = "7.0.2" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2774c861e1f072b3aadc02f8ba886c26ad6321567ecc294c935434cad06f1283" +checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" dependencies = [ - "either", "env_home", - "rustix 0.38.41", + "regex", + "rustix 1.0.8", "winsafe", ] @@ -5220,6 +6542,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -5228,15 +6559,12 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.60.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529" +checksum = "7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1" dependencies = [ - "windows-collections 0.1.1", - "windows-core 0.60.1", - "windows-future 0.1.1", - "windows-link", - "windows-numerics 0.1.1", + "windows-core 0.59.0", + "windows-targets 0.53.3", ] [[package]] @@ -5245,20 +6573,11 @@ version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" dependencies = [ - "windows-collections 0.2.0", + "windows-collections", "windows-core 0.61.0", - "windows-future 0.2.0", + "windows-future", "windows-link", - "windows-numerics 0.2.0", -] - -[[package]] -name = "windows-collections" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5467f79cc1ba3f52ebb2ed41dbb459b8e7db636cc3429458d9a852e15bc24dec" -dependencies = [ - "windows-core 0.60.1", + "windows-numerics", ] [[package]] @@ -5281,15 +6600,15 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.60.1" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247" +checksum = "810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce" dependencies = [ "windows-implement 0.59.0", "windows-interface", - "windows-link", "windows-result", "windows-strings 0.3.1", + "windows-targets 0.53.3", ] [[package]] @@ -5302,17 +6621,7 @@ dependencies = [ "windows-interface", "windows-link", "windows-result", - "windows-strings 0.4.0", -] - -[[package]] -name = "windows-future" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a787db4595e7eb80239b74ce8babfb1363d8e343ab072f2ffe901400c03349f0" -dependencies = [ - "windows-core 0.60.1", - "windows-link", + "windows-strings 0.4.2", ] [[package]] @@ -5360,19 +6669,9 @@ dependencies = [ [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-numerics" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005dea54e2f6499f2cee279b8f703b3cf3b5734a2d8d21867c8f44003182eeed" -dependencies = [ - "windows-core 0.60.1", - "windows-link", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-numerics" @@ -5386,31 +6685,20 @@ dependencies = [ [[package]] name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] - -[[package]] -name = "windows-registry" -version = "0.5.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c44a98275e31bfd112bb06ba96c8ab13c03383a3753fdddd715406a1824c7e0" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ "windows-link", "windows-result", - "windows-strings 0.3.1", + "windows-strings 0.4.2", ] [[package]] name = "windows-result" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] @@ -5426,13 +6714,22 @@ dependencies = [ [[package]] name = "windows-strings" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -5451,6 +6748,30 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -5469,10 +6790,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.0" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -5483,6 +6805,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -5495,6 +6823,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -5507,6 +6841,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -5531,6 +6871,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -5543,6 +6889,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -5555,6 +6907,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -5567,6 +6925,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -5581,9 +6945,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.4" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] @@ -5600,7 +6964,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", ] [[package]] @@ -5688,7 +7052,7 @@ dependencies = [ "futures-sink", "futures-util", "hex", - "nix", + "nix 0.29.0", "ordered-stream", "rand 0.8.5", "serde", @@ -5820,20 +7184,25 @@ dependencies = [ [[package]] name = "zip" -version = "2.6.1" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dcb24d0152526ae49b9b96c1dcf71850ca1e0b882e4e28ed898a93c41334744" +checksum = "153a6fff49d264c4babdcfa6b4d534747f520e56e8f0f384f3b808c4b64cc1fd" dependencies = [ "arbitrary", "crc32fast", - "crossbeam-utils", "flate2", - "indexmap 2.9.0", + "indexmap 2.10.0", "memchr", "time", "zopfli", ] +[[package]] +name = "zlib-rs" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a" + [[package]] name = "zopfli" version = "0.8.1"