From 58eda9ca8b33b1c83dc1d8fb4bb6c627b00ca778 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 23 Jul 2024 12:46:58 -0400 Subject: [PATCH 01/83] Adding self-executable --- src/header.sh | 28 ++++++++++++++++++++++++++++ src/main.rs | 6 ++++++ src/pack.rs | 1 + tests/integration_test.rs | 2 ++ 4 files changed, 37 insertions(+) create mode 100644 src/header.sh diff --git a/src/header.sh b/src/header.sh new file mode 100644 index 0000000..1d7e89a --- /dev/null +++ b/src/header.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Self-extracting executable header + +# Function to clean up temporary files +cleanup() { + rm -rf "$TEMP_DIR" +} + +# Set up trap to clean up on exit +trap cleanup EXIT + +# Create a temporary directory +TEMP_DIR=$(mktemp -d) + +# Extract the tarball to the temporary directory +tail -n +$((LINENO + 2)) "$0" | tar xz -C "$TEMP_DIR" + +# Change to the temporary directory +cd "$TEMP_DIR" || exit 1 + +# Execute the main script or binary (adjust as needed) +./main + +# Exit with the status of the main script +exit $? + +# The tarball content will be appended below this line diff --git a/src/main.rs b/src/main.rs index 7344c55..2d9e4fd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -61,6 +61,10 @@ enum Commands { /// This flag allows packing even if PyPI dependencies are present. #[arg(long, default_value = "false")] ignore_pypi_errors: bool, + + /// Create self-extracting executable + #[arg(long, default_value = "false")] + create_executable: bool, }, /// Unpack a pixi environment @@ -103,6 +107,7 @@ async fn main() -> Result<()> { output_file, inject, ignore_pypi_errors, + create_executable, } => { let options = PackOptions { environment, @@ -116,6 +121,7 @@ async fn main() -> Result<()> { }, injected_packages: inject, ignore_pypi_errors, + create_executable, }; tracing::debug!("Running pack command with options: {:?}", options); pack(options).await? diff --git a/src/pack.rs b/src/pack.rs index 4d26498..49bcc5c 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -36,6 +36,7 @@ pub struct PackOptions { pub metadata: PixiPackMetadata, pub injected_packages: Vec, pub ignore_pypi_errors: bool, + pub create_executable: bool, } /// Pack a pixi environment. diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 1b4ee56..c9c902f 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -27,6 +27,7 @@ fn options( #[default(PixiPackMetadata::default())] metadata: PixiPackMetadata, #[default(Some(ShellEnum::Bash(Bash)))] shell: Option, #[default(false)] ignore_pypi_errors: bool, + #[default(false)] create_executable: bool, ) -> Options { let output_dir = tempdir().expect("Couldn't create a temp dir for tests"); let pack_file = output_dir.path().join("environment.tar"); @@ -40,6 +41,7 @@ fn options( metadata, injected_packages: vec![], ignore_pypi_errors, + create_executable, }, unpack_options: UnpackOptions { pack_file, From 175ed05546403d196c3f43f4e3773dbeed84abd1 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 23 Jul 2024 14:35:26 -0400 Subject: [PATCH 02/83] Added header.sh --- src/header.sh | 90 ++++++++++++++++++++++++++++++++++++++++----------- src/pack.rs | 55 +++++++++++++++++++++++++++---- 2 files changed, 119 insertions(+), 26 deletions(-) diff --git a/src/header.sh b/src/header.sh index 1d7e89a..422bc11 100644 --- a/src/header.sh +++ b/src/header.sh @@ -1,28 +1,80 @@ -#!/bin/bash +#!/bin/sh -# Self-extracting executable header +set -eu -# Function to clean up temporary files -cleanup() { - rm -rf "$TEMP_DIR" -} +INSTALLER_NAME="__NAME__" +INSTALLER_VERSION="__VERSION__" +INSTALLER_PLATFORM="__PLAT__" +PREFIX="__DEFAULT_PREFIX__" +BATCH=0 +FORCE=0 + +USAGE=" +usage: $0 [options] + +Unpacks ${INSTALLER_NAME} ${INSTALLER_VERSION} + +-b run in batch mode (without manual intervention) +-f no error if install prefix already exists +-h print this help message and exit +-p PREFIX install prefix, defaults to $PREFIX +" + +while getopts "bfhp:" x; do + case "$x" in + h) + echo "$USAGE" + exit 2 + ;; + b) + BATCH=1 + ;; + f) + FORCE=1 + ;; + p) + PREFIX="$OPTARG" + ;; + ?) + echo "ERROR: did not recognize option '$x', please try -h" >&2 + exit 1 + ;; + esac +done -# Set up trap to clean up on exit -trap cleanup EXIT +if [ "$FORCE" = "0" ] && [ -e "$PREFIX" ]; then + echo "ERROR: File or directory already exists: '$PREFIX'" >&2 + echo "If you want to update an existing installation, use the -f option." >&2 + exit 1 +fi + +if ! mkdir -p "$PREFIX"; then + echo "ERROR: Could not create directory: '$PREFIX'" >&2 + exit 1 +fi + +PREFIX=$(cd "$PREFIX"; pwd | sed 's@//@/@') +export PREFIX + +echo "PREFIX=$PREFIX" + +extract_range () { + dd if="$0" bs=1 skip="$1" count="$((${2}-${1}))" 2>/dev/null +} -# Create a temporary directory -TEMP_DIR=$(mktemp -d) +last_line=$(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') +boundary=$(head -n "${last_line}" "$0" | wc -c | sed 's/ //g') -# Extract the tarball to the temporary directory -tail -n +$((LINENO + 2)) "$0" | tar xz -C "$TEMP_DIR" +cd "$PREFIX" -# Change to the temporary directory -cd "$TEMP_DIR" || exit 1 +echo "Unpacking payload ..." +extract_range $boundary | tar -xzf - -# Execute the main script or binary (adjust as needed) -./main +echo "Installation completed." -# Exit with the status of the main script -exit $? +if [ "$BATCH" = "0" ]; then + echo "Thank you for installing ${INSTALLER_NAME}!" +fi -# The tarball content will be appended below this line +exit 0 +@@END_HEADER@@ \ No newline at end of file diff --git a/src/pack.rs b/src/pack.rs index 49bcc5c..a652a98 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -1,7 +1,5 @@ use std::{ - collections::{HashMap, HashSet}, - path::{Path, PathBuf}, - sync::Arc, + collections::{HashMap, HashSet}, path::{Path, PathBuf}, sync::Arc }; use fxhash::FxHashMap; @@ -172,7 +170,8 @@ pub async fn pack(options: PackOptions) -> Result<()> { // Pack = archive the contents. tracing::info!("Creating archive at {}", options.output_file.display()); - archive_directory(output_folder.path(), &options.output_file) + eprintln!("📦 The temp folder contains {:?}", output_folder); + archive_directory(output_folder.path(), &options.output_file, options.create_executable) .await .map_err(|e| anyhow!("could not archive directory: {}", e))?; @@ -244,8 +243,16 @@ async fn download_package( Ok(()) } -/// Archive a directory into a tarball. -async fn archive_directory(input_dir: &Path, archive_target: &Path) -> Result<()> { +async fn archive_directory(input_dir: &Path, archive_target: &Path, create_executable: bool) -> Result<()> { + if create_executable { + eprintln!("📦 Creating self-extracting executable"); + create_self_extracting_executable(input_dir, archive_target).await + } else { + create_tarball(input_dir, archive_target).await + } +} + +async fn create_tarball(input_dir: &Path, archive_target: &Path) -> Result<()> { let outfile = fs::File::create(archive_target).await.map_err(|e| { anyhow!( "could not create archive file at {}: {}", @@ -275,6 +282,40 @@ async fn archive_directory(input_dir: &Path, archive_target: &Path) -> Result<() Ok(()) } +async fn create_self_extracting_executable(input_dir: &Path, archive_target: &Path) -> Result<()> { + let temp_tarball = archive_target.with_extension("tar.gz.tmp"); + create_tarball(input_dir, &temp_tarball).await?; + + let header_path = PathBuf::from("src/header.sh"); + let header = tokio::fs::read_to_string(&header_path).await.map_err(|e| { + anyhow!("could not read header file: {}", e) + })?; + + let executable_path = archive_target.with_extension("sh"); + let mut final_executable = tokio::fs::File::create(executable_path).await.map_err(|e| { + anyhow!("could not create final executable file: {}", e) + })?; + final_executable.write_all(header.as_bytes()).await?; + final_executable.write_all(b"\n").await?; // Add a newline after the header + + let mut tarball = fs::File::open(&temp_tarball).await?; + tokio::io::copy(&mut tarball, &mut final_executable).await?; + + // Make the file executable + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + let mut perms = fs::metadata(archive_target).await?.permissions(); + perms.set_mode(0o755); + fs::set_permissions(archive_target, perms).await?; + } + + // Clean up temporary tarball + fs::remove_file(&temp_tarball).await?; + + Ok(()) +} + /// Create an `environment.yml` file from the given packages. async fn create_environment_file( destination: &Path, @@ -350,4 +391,4 @@ async fn create_repodata_files( } Ok(()) -} +} \ No newline at end of file From 4ae4b35b4d38324410253b20e97088b53fa3af24 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 23 Jul 2024 23:48:24 -0400 Subject: [PATCH 03/83] Adding archive directly to shar --- src/header.sh | 23 +++++++++++------------ src/pack.rs | 34 +++++++++++++++++++++++----------- 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/src/header.sh b/src/header.sh index 422bc11..0a1f9dd 100644 --- a/src/header.sh +++ b/src/header.sh @@ -58,23 +58,22 @@ export PREFIX echo "PREFIX=$PREFIX" -extract_range () { - dd if="$0" bs=1 skip="$1" count="$((${2}-${1}))" 2>/dev/null -} +last_line=$(($(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') + 1)) -last_line=$(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') -boundary=$(head -n "${last_line}" "$0" | wc -c | sed 's/ //g') - -cd "$PREFIX" +echo "last_line: $last_line" echo "Unpacking payload ..." -extract_range $boundary | tar -xzf - +tail -n +$last_line "$0" | tar xzv -C "$PREFIX" -echo "Installation completed." +echo "Creating environment using conda" -if [ "$BATCH" = "0" ]; then - echo "Thank you for installing ${INSTALLER_NAME}!" -fi +conda env create -p ./env --file "$PREFIX/environment.yml" + +echo "Environment created" + +# if [ "$BATCH" = "0" ]; then +# echo "Thank you for installing ${INSTALLER_NAME}!" +# fi exit 0 @@END_HEADER@@ \ No newline at end of file diff --git a/src/pack.rs b/src/pack.rs index a652a98..265222c 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -170,7 +170,6 @@ pub async fn pack(options: PackOptions) -> Result<()> { // Pack = archive the contents. tracing::info!("Creating archive at {}", options.output_file.display()); - eprintln!("📦 The temp folder contains {:?}", output_folder); archive_directory(output_folder.path(), &options.output_file, options.create_executable) .await .map_err(|e| anyhow!("could not archive directory: {}", e))?; @@ -283,36 +282,49 @@ async fn create_tarball(input_dir: &Path, archive_target: &Path) -> Result<()> { } async fn create_self_extracting_executable(input_dir: &Path, archive_target: &Path) -> Result<()> { - let temp_tarball = archive_target.with_extension("tar.gz.tmp"); - create_tarball(input_dir, &temp_tarball).await?; + let tarbytes = Vec::new(); + let mut archive = Builder::new(tarbytes); + archive + .append_dir_all(".", input_dir) + .await + .map_err(|e| anyhow!("could not append directory to archive: {}", e))?; + + let mut compressor = archive + .into_inner() + .await + .map_err(|e| anyhow!("could not finish writing archive: {}", e))?; + + compressor + .shutdown() + .await + .map_err(|e| anyhow!("could not flush output: {}", e))?; + let header_path = PathBuf::from("src/header.sh"); let header = tokio::fs::read_to_string(&header_path).await.map_err(|e| { anyhow!("could not read header file: {}", e) })?; let executable_path = archive_target.with_extension("sh"); - let mut final_executable = tokio::fs::File::create(executable_path).await.map_err(|e| { + + let mut final_executable = tokio::fs::File::create(&executable_path).await.map_err(|e| { anyhow!("could not create final executable file: {}", e) })?; + final_executable.write_all(header.as_bytes()).await?; final_executable.write_all(b"\n").await?; // Add a newline after the header - let mut tarball = fs::File::open(&temp_tarball).await?; - tokio::io::copy(&mut tarball, &mut final_executable).await?; + final_executable.write_all(&compressor).await?; // Make the file executable #[cfg(unix)] { use std::os::unix::fs::PermissionsExt; - let mut perms = fs::metadata(archive_target).await?.permissions(); + let mut perms = fs::metadata(&executable_path).await?.permissions(); perms.set_mode(0o755); - fs::set_permissions(archive_target, perms).await?; + fs::set_permissions(&executable_path, perms).await?; } - // Clean up temporary tarball - fs::remove_file(&temp_tarball).await?; - Ok(()) } From e5171a02715d912faea4d80ca24faea97c8c17dd Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 24 Jul 2024 15:38:39 -0400 Subject: [PATCH 04/83] Finished self-extracting files --- src/header.sh | 175 +++++++++++++++++++++++++++++++++++++++----------- src/main.rs | 25 +++++++- src/pack.rs | 50 +++++++++------ src/unpack.rs | 48 +++++++++++++- 4 files changed, 236 insertions(+), 62 deletions(-) diff --git a/src/header.sh b/src/header.sh index 0a1f9dd..a14c5f8 100644 --- a/src/header.sh +++ b/src/header.sh @@ -2,78 +2,177 @@ set -eu -INSTALLER_NAME="__NAME__" -INSTALLER_VERSION="__VERSION__" -INSTALLER_PLATFORM="__PLAT__" -PREFIX="__DEFAULT_PREFIX__" -BATCH=0 +TEMPDIR=`mktemp -d` +PREFIX="env" FORCE=0 +INSTALLER="conda" # Default to conda +CREATE_ACTIVATION_SCRIPT=false +PARENT_DIR="$(pwd)" USAGE=" usage: $0 [options] -Unpacks ${INSTALLER_NAME} ${INSTALLER_VERSION} +Unpacks an environment packed with pixi-pack --b run in batch mode (without manual intervention) --f no error if install prefix already exists +-f no error if environment already exists -h print this help message and exit --p PREFIX install prefix, defaults to $PREFIX +-p ENV environment prefix, defaults to $PREFIX +-i INSTALLER create the environment using the specified installer defaulting to $INSTALLER +-a create an activation script to activate the environment " -while getopts "bfhp:" x; do - case "$x" in - h) - echo "$USAGE" - exit 2 +create_activation_script() { + local destination="$1" + local prefix="$2" + local shell=$(basename "$3") + + case "$shell" in + bash) + extension="sh" + ;; + zsh) + extension="zsh" ;; - b) - BATCH=1 + fish) + extension="fish" ;; + *) + echo "Unsupported shell: $shell" >&2 + return 1 + ;; + esac + + activate_path="${destination}/activate.${extension}" + + activation_dir="${prefix}/etc/conda/activate.d" + deactivation_dir="${prefix}/etc/conda/deactivate.d" + env_vars_dir="${prefix}/etc/conda/env_vars.d" + state_file="${prefix}/conda-meta/state" + + touch "$activate_path" + echo "export PATH=\"$prefix/bin:\$PATH\"" >> "$activate_path" + echo "export CONDA_PREFIX=\"$prefix\"" >> "$activate_path" + + # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#335 + if [ -d "$activation_dir" ]; then + for file in "${activation_dir}/*"; do + echo ". \"$file\"" >> "$activate_path" + done + fi + + # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#337 + if [ -d "$deactivation_dir" ]; then + for file in "${deactivation_dir}/*"; do + echo ". \"$file\"" >> "$activate_path" + done + fi + + # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#191 + if [ -d "$env_vars_dir" ]; then + declare -A env_vars + + env_var_files=($(find "$env_vars_dir" -type f | sort)) + + for file in "${env_var_files[@]}"; do + if jq empty "$file" 2>/dev/null; then + while IFS="=" read -r key value; do + # Remove quotes from the value + value="${value%\"}" + value="${value#\"}" + env_vars["$key"]="$value" + done < <(jq -r 'to_entries | map("\(.key)=\(.value)") | .[]' "$file") + else + echo "WARNING: Invalid JSON file: $file" >&2 + fi + done + + for key in "${!env_vars[@]}"; do + echo "export $key=\"${env_vars[$key]}\"" >> "$activate_path" + done + fi + + # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#236 + if [ -e "$state_file" ]; then + if ! state_json=$(jq '.' "$state_file" 2>/dev/null); then + echo "WARNING: Invalid JSON in state file: $state_file" >&2 + else + state_env_vars=$(echo "$state_json" | jq -r '.env_vars // {}') + while IFS="=" read -r key value; do + if [ -n "$key" ]; then + if [ -n "${env_vars[$key]}" ]; then + echo "WARNING: environment variable $key already defined in packages (path: $state_file)" >&2 + fi + if [ -n "$value" ]; then + env_vars["${key^^}"]="$value" + else + echo "WARNING: environment variable $key has no string value (path: $state_file)" >&2 + fi + fi + done < <(echo "$state_env_vars" | jq -r 'to_entries | map("\(.key)=\(.value)") | .[]') + fi + echo "export CONDA_ENV_STATE_FILE=\"$state_file\"" >> "$activate_path" + fi + + chmod +x "$activate_path" + echo "Activation script created at $activate_path" +} + +while getopts ":fhai:p:" x; do + case "$x" in f) FORCE=1 ;; p) PREFIX="$OPTARG" ;; - ?) - echo "ERROR: did not recognize option '$x', please try -h" >&2 - exit 1 + i) + INSTALLER="$OPTARG" + ;; + a) + CREATE_ACTIVATION_SCRIPT=true + ;; + h) + echo "$USAGE" + exit 2 ;; esac done -if [ "$FORCE" = "0" ] && [ -e "$PREFIX" ]; then - echo "ERROR: File or directory already exists: '$PREFIX'" >&2 - echo "If you want to update an existing installation, use the -f option." >&2 +if [ "$INSTALLER" != "conda" ] && [ "$INSTALLER" != "micromamba" ]; then + echo "ERROR: Invalid installer: '$INSTALLER'" >&2 exit 1 fi -if ! mkdir -p "$PREFIX"; then - echo "ERROR: Could not create directory: '$PREFIX'" >&2 +if [ "$FORCE" = "0" ] && [ -e "$PREFIX" ]; then + echo "ERROR: File or directory already exists: '$PREFIX'" >&2 + echo "If you want to update an existing environment, use the -f option." >&2 exit 1 +elif [ "$FORCE" = "1" ] && [ -e "$PREFIX" ]; then + rm -rf "$PREFIX" fi -PREFIX=$(cd "$PREFIX"; pwd | sed 's@//@/@') -export PREFIX - -echo "PREFIX=$PREFIX" +PREFIX="$(pwd)/$PREFIX" last_line=$(($(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') + 1)) -echo "last_line: $last_line" - echo "Unpacking payload ..." -tail -n +$last_line "$0" | tar xzv -C "$PREFIX" +tail -n +$last_line "$0" | tar xzv -C "$TEMPDIR" -echo "Creating environment using conda" +echo "Creating environment using $INSTALLER" -conda env create -p ./env --file "$PREFIX/environment.yml" +cd $TEMPDIR -echo "Environment created" +if [ "$INSTALLER" = "conda" ]; then + conda env create -p $PREFIX --file environment.yml +else + micromamba create -p $PREFIX --file environment.yml +fi + +cd $PARENT_DIR -# if [ "$BATCH" = "0" ]; then -# echo "Thank you for installing ${INSTALLER_NAME}!" -# fi +if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then + create_activation_script "$PARENT_DIR" "$PREFIX" "$SHELL" +fi exit 0 -@@END_HEADER@@ \ No newline at end of file +@@END_HEADER@@ diff --git a/src/main.rs b/src/main.rs index 2d9e4fd..5cb1c07 100644 --- a/src/main.rs +++ b/src/main.rs @@ -50,7 +50,7 @@ enum Commands { manifest_path: PathBuf, /// Output file to write the pack to (will be an archive) - #[arg(short, long, default_value = cwd().join("environment.tar").into_os_string())] + #[arg(short, long, default_value = cwd().join("environment").into_os_string())] output_file: PathBuf, /// Inject an additional conda package into the final prefix @@ -63,6 +63,7 @@ enum Commands { ignore_pypi_errors: bool, /// Create self-extracting executable + /// This feature is only available on macOS and Linux. #[arg(long, default_value = "false")] create_executable: bool, }, @@ -109,11 +110,23 @@ async fn main() -> Result<()> { ignore_pypi_errors, create_executable, } => { + if create_executable && is_unsupported_platform(&platform) { + return Err(anyhow::anyhow!("Creating self-extracting executables is only supported on macOS and Linux. Current platform: {}", platform)); + } + + let mut output_file_with_extension = output_file; + + if create_executable { + output_file_with_extension = output_file_with_extension.with_extension("sh"); + } else { + output_file_with_extension = output_file_with_extension.with_extension("tar"); + } + let options = PackOptions { environment, platform, auth_file, - output_file, + output_file: output_file_with_extension, manifest_path, metadata: PixiPackMetadata { version: DEFAULT_PIXI_PACK_VERSION.to_string(), @@ -144,3 +157,11 @@ async fn main() -> Result<()> { Ok(()) } + +/// Check if the given platform supports creating self-extracting executables +fn is_unsupported_platform(platform: &Platform) -> bool { + matches!( + platform, + Platform::Win32 | Platform::Win64 | Platform::WinArm64 + ) +} diff --git a/src/pack.rs b/src/pack.rs index 265222c..485f483 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -1,5 +1,7 @@ use std::{ - collections::{HashMap, HashSet}, path::{Path, PathBuf}, sync::Arc + collections::{HashMap, HashSet}, + path::{Path, PathBuf}, + sync::Arc, }; use fxhash::FxHashMap; @@ -169,10 +171,14 @@ pub async fn pack(options: PackOptions) -> Result<()> { create_environment_file(output_folder.path(), conda_packages.iter().map(|(_, p)| p)).await?; // Pack = archive the contents. - tracing::info!("Creating archive at {}", options.output_file.display()); - archive_directory(output_folder.path(), &options.output_file, options.create_executable) - .await - .map_err(|e| anyhow!("could not archive directory: {}", e))?; + tracing::info!("Creating pack at {}", options.output_file.display()); + archive_directory( + output_folder.path(), + &options.output_file, + options.create_executable, + ) + .await + .map_err(|e| anyhow!("could not archive directory: {}", e))?; let output_size = HumanBytes(get_size(&options.output_file)?).to_string(); tracing::info!( @@ -242,7 +248,11 @@ async fn download_package( Ok(()) } -async fn archive_directory(input_dir: &Path, archive_target: &Path, create_executable: bool) -> Result<()> { +async fn archive_directory( + input_dir: &Path, + archive_target: &Path, + create_executable: bool, +) -> Result<()> { if create_executable { eprintln!("📦 Creating self-extracting executable"); create_self_extracting_executable(input_dir, archive_target).await @@ -281,7 +291,7 @@ async fn create_tarball(input_dir: &Path, archive_target: &Path) -> Result<()> { Ok(()) } -async fn create_self_extracting_executable(input_dir: &Path, archive_target: &Path) -> Result<()> { +async fn create_self_extracting_executable(input_dir: &Path, target: &Path) -> Result<()> { let tarbytes = Vec::new(); let mut archive = Builder::new(tarbytes); @@ -298,20 +308,22 @@ async fn create_self_extracting_executable(input_dir: &Path, archive_target: &Pa compressor .shutdown() .await - .map_err(|e| anyhow!("could not flush output: {}", e))?; - - let header_path = PathBuf::from("src/header.sh"); - let header = tokio::fs::read_to_string(&header_path).await.map_err(|e| { - anyhow!("could not read header file: {}", e) - })?; + .map_err(|e| anyhow!("could not flush output: {}", e))?; + + eprintln!( + "Current directory: {}", + std::env::current_dir().unwrap().display() + ); - let executable_path = archive_target.with_extension("sh"); + const HEADER_CONTENT: &[u8] = include_bytes!("header.sh"); - let mut final_executable = tokio::fs::File::create(&executable_path).await.map_err(|e| { - anyhow!("could not create final executable file: {}", e) - })?; + let executable_path = target.with_extension("sh"); - final_executable.write_all(header.as_bytes()).await?; + let mut final_executable = tokio::fs::File::create(&executable_path) + .await + .map_err(|e| anyhow!("could not create final executable file: {}", e))?; + + final_executable.write_all(HEADER_CONTENT).await?; final_executable.write_all(b"\n").await?; // Add a newline after the header final_executable.write_all(&compressor).await?; @@ -403,4 +415,4 @@ async fn create_repodata_files( } Ok(()) -} \ No newline at end of file +} diff --git a/src/unpack.rs b/src/unpack.rs index c7dbd23..720ea35 100644 --- a/src/unpack.rs +++ b/src/unpack.rs @@ -17,6 +17,7 @@ use rattler_shell::{ shell::{Shell, ShellEnum}, }; use tokio::fs; +use tokio::io::AsyncBufReadExt; use tokio_stream::wrappers::ReadDirStream; use tokio_tar::Archive; use url::Url; @@ -43,9 +44,15 @@ pub async fn unpack(options: UnpackOptions) -> Result<()> { let channel_directory = unpack_dir.join(CHANNEL_DIRECTORY_NAME); tracing::info!("Unarchiving pack to {}", unpack_dir.display()); - unarchive(&options.pack_file, &unpack_dir) - .await - .map_err(|e| anyhow!("Could not unarchive: {}", e))?; + if options.pack_file.extension().unwrap_or_default() == "sh" { + extract_archive_from_shellscript(&options.pack_file, &unpack_dir) + .await + .map_err(|e| anyhow!("Could not extract archive from shell script: {}", e))?; + } else { + unarchive(&options.pack_file, &unpack_dir) + .await + .map_err(|e| anyhow!("Could not unarchive: {}", e))?; + } validate_metadata_file(unpack_dir.join(PIXI_PACK_METADATA_PATH)).await?; @@ -142,6 +149,41 @@ async fn collect_packages(channel_dir: &Path) -> Result Result<()> { + let shell_script = fs::File::open(shell_script_path) + .await + .map_err(|e| anyhow!("could not open shell script: {}", e))?; + + let mut reader = tokio::io::BufReader::new(shell_script); + let mut line = String::new(); + let mut found_end_header = false; + + while reader.read_line(&mut line).await? > 0 { + if line.trim() == "@@END_HEADER@@" { + found_end_header = true; + break; + } + line.clear(); + } + + if !found_end_header { + return Err(anyhow!("Could not find @@END_HEADER@@ in shell script")); + } + + let mut archive = Archive::new(reader); + + archive + .unpack(target_dir) + .await + .map_err(|e| anyhow!("could not unpack archive: {}", e))?; + + Ok(()) +} + /// Unarchive a tarball. pub async fn unarchive(archive_path: &Path, target_dir: &Path) -> Result<()> { let file = fs::File::open(archive_path) From cecfe4effce4227a987868aac069e23461646b36 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 24 Jul 2024 19:38:00 -0400 Subject: [PATCH 05/83] Adding tests --- .pre-commit-config.yaml | 1 + src/header.sh | 42 ++++++---------- src/pack.rs | 5 -- src/unpack.rs | 7 +-- tests/integration_test.rs | 101 +++++++++++++++++++++++++++++++++++++- 5 files changed, 117 insertions(+), 39 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 75753f1..87c28f0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,6 +17,7 @@ repos: types: [text] - id: end-of-file-fixer name: end-of-file-fixer + exclude: src/header.sh entry: pixi run -e lint end-of-file-fixer language: system types: [text] diff --git a/src/header.sh b/src/header.sh index a14c5f8..f0adb14 100644 --- a/src/header.sh +++ b/src/header.sh @@ -7,7 +7,7 @@ PREFIX="env" FORCE=0 INSTALLER="conda" # Default to conda CREATE_ACTIVATION_SCRIPT=false -PARENT_DIR="$(pwd)" +PARENT_DIR="$(dirname "$0")" USAGE=" usage: $0 [options] @@ -27,15 +27,9 @@ create_activation_script() { local shell=$(basename "$3") case "$shell" in - bash) + bash | zsh | fish) extension="sh" ;; - zsh) - extension="zsh" - ;; - fish) - extension="fish" - ;; *) echo "Unsupported shell: $shell" >&2 return 1 @@ -69,26 +63,19 @@ create_activation_script() { # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#191 if [ -d "$env_vars_dir" ]; then - declare -A env_vars - - env_var_files=($(find "$env_vars_dir" -type f | sort)) + env_var_files=$(find "$env_vars_dir" -type f | sort) - for file in "${env_var_files[@]}"; do + for file in $env_var_files; do if jq empty "$file" 2>/dev/null; then - while IFS="=" read -r key value; do + jq -r 'to_entries | map("\(.key)=\(.value)") | .[]' "$file" | while IFS="=" read -r key value; do # Remove quotes from the value - value="${value%\"}" - value="${value#\"}" - env_vars["$key"]="$value" - done < <(jq -r 'to_entries | map("\(.key)=\(.value)") | .[]' "$file") + value=$(echo "$value" | sed 's/^"//; s/"$//') + echo "export $key=\"$value\"" >> "$activate_path" + done else echo "WARNING: Invalid JSON file: $file" >&2 fi done - - for key in "${!env_vars[@]}"; do - echo "export $key=\"${env_vars[$key]}\"" >> "$activate_path" - done fi # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#236 @@ -96,19 +83,18 @@ create_activation_script() { if ! state_json=$(jq '.' "$state_file" 2>/dev/null); then echo "WARNING: Invalid JSON in state file: $state_file" >&2 else - state_env_vars=$(echo "$state_json" | jq -r '.env_vars // {}') - while IFS="=" read -r key value; do + echo "$state_json" | jq -r '.env_vars // {} | to_entries | map("\(.key)=\(.value)") | .[]' | while IFS="=" read -r key value; do if [ -n "$key" ]; then - if [ -n "${env_vars[$key]}" ]; then + if grep -q "export $key=" "$activate_path"; then echo "WARNING: environment variable $key already defined in packages (path: $state_file)" >&2 fi if [ -n "$value" ]; then - env_vars["${key^^}"]="$value" + echo "export ${key}=\"$value\"" >> "$activate_path" else echo "WARNING: environment variable $key has no string value (path: $state_file)" >&2 fi fi - done < <(echo "$state_env_vars" | jq -r 'to_entries | map("\(.key)=\(.value)") | .[]') + done fi echo "export CONDA_ENV_STATE_FILE=\"$state_file\"" >> "$activate_path" fi @@ -151,7 +137,7 @@ elif [ "$FORCE" = "1" ] && [ -e "$PREFIX" ]; then rm -rf "$PREFIX" fi -PREFIX="$(pwd)/$PREFIX" +PREFIX="$PARENT_DIR/$PREFIX" last_line=$(($(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') + 1)) @@ -175,4 +161,4 @@ if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then fi exit 0 -@@END_HEADER@@ +@@END_HEADER@@ \ No newline at end of file diff --git a/src/pack.rs b/src/pack.rs index 485f483..ffbb0ce 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -310,11 +310,6 @@ async fn create_self_extracting_executable(input_dir: &Path, target: &Path) -> R .await .map_err(|e| anyhow!("could not flush output: {}", e))?; - eprintln!( - "Current directory: {}", - std::env::current_dir().unwrap().display() - ); - const HEADER_CONTENT: &[u8] = include_bytes!("header.sh"); let executable_path = target.with_extension("sh"); diff --git a/src/unpack.rs b/src/unpack.rs index 720ea35..0cd4d27 100644 --- a/src/unpack.rs +++ b/src/unpack.rs @@ -45,7 +45,7 @@ pub async fn unpack(options: UnpackOptions) -> Result<()> { tracing::info!("Unarchiving pack to {}", unpack_dir.display()); if options.pack_file.extension().unwrap_or_default() == "sh" { - extract_archive_from_shellscript(&options.pack_file, &unpack_dir) + unarchive_from_shellscript(&options.pack_file, &unpack_dir) .await .map_err(|e| anyhow!("Could not extract archive from shell script: {}", e))?; } else { @@ -150,10 +150,7 @@ async fn collect_packages(channel_dir: &Path) -> Result Result<()> { +pub async fn unarchive_from_shellscript(shell_script_path: &Path, target_dir: &Path) -> Result<()> { let shell_script = fs::File::open(shell_script_path) .await .map_err(|e| anyhow!("could not open shell script: {}", e))?; diff --git a/tests/integration_test.rs b/tests/integration_test.rs index c9c902f..3be6abc 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -30,7 +30,11 @@ fn options( #[default(false)] create_executable: bool, ) -> Options { let output_dir = tempdir().expect("Couldn't create a temp dir for tests"); - let pack_file = output_dir.path().join("environment.tar"); + let pack_file = if create_executable { + output_dir.path().join("environment.sh") + } else { + output_dir.path().join("environment.tar") + }; Options { pack_options: PackOptions { environment, @@ -270,3 +274,98 @@ async fn test_pypi_ignore( let pack_result = pixi_pack::pack(pack_options).await; assert_eq!(pack_result.is_err(), should_fail); } + +#[rstest] +#[tokio::test] +async fn test_create_executable(options: Options, required_fs_objects: Vec<&'static str>) { + let mut pack_options = options.pack_options; + pack_options.create_executable = true; + pack_options.output_file = options.output_dir.path().join("environment.sh"); + + let pack_file = pack_options.output_file.clone(); + + let pack_result = pixi_pack::pack(pack_options).await; + assert!(pack_result.is_ok(), "{:?}", pack_result); + + assert!(pack_file.exists()); + assert_eq!(pack_file.extension().unwrap(), "sh"); + + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + let metadata = std::fs::metadata(&pack_file).unwrap(); + let permissions = metadata.permissions(); + assert!(permissions.mode() & 0o111 != 0); + } + + let unpack_dir = tempdir().expect("Couldn't create a temp dir for tests"); + let unpack_dir_path = unpack_dir.path(); + let unpack_options = UnpackOptions { + pack_file, + output_directory: unpack_dir_path.to_path_buf(), + shell: Some(ShellEnum::Bash(Bash)), + }; + + let unpack_result = pixi_pack::unpack(unpack_options).await; + assert!(unpack_result.is_ok(), "{:?}", unpack_result); + + let env_dir = unpack_dir_path.join("env"); + assert!(env_dir.exists()); + + let activate_file = unpack_dir_path.join("activate.sh"); + assert!(activate_file.exists()); + + required_fs_objects + .iter() + .map(|dir| env_dir.join(dir)) + .for_each(|dir| { + assert!(dir.exists(), "{:?} does not exist", dir); + }); +} + +#[rstest] +#[tokio::test] +async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<&'static str>) { + let mut pack_options = options.pack_options; + pack_options.create_executable = true; + pack_options.output_file = options.output_dir.path().join("environment.sh"); + + let pack_file = pack_options.output_file.clone(); + + let pack_result = pixi_pack::pack(pack_options).await; + assert!(pack_result.is_ok(), "{:?}", pack_result); + + assert!(pack_file.exists()); + assert_eq!(pack_file.extension().unwrap(), "sh"); + + eprintln!("{:?}", pack_file); + + let output = Command::new("sh") + .arg(pack_file) + .arg("-a") + .output() + .expect("Failed to execute packed file for extraction"); + + assert!(output.status.success(), "Extraction failed: {:?}", output); + + let stdout = String::from_utf8_lossy(&output.stdout); + eprintln!("{:?}", stdout); + + let env_dir = options.output_dir.path().join("env"); + assert!( + env_dir.exists(), + "Environment directory not found after extraction" + ); + let activate_file = options.output_dir.path().join("activate.sh"); + assert!( + activate_file.exists(), + "Activation script not found after extraction" + ); + + required_fs_objects + .iter() + .map(|dir| env_dir.join(dir)) + .for_each(|dir| { + assert!(dir.exists(), "{:?} does not exist", dir); + }); +} From 447a6e2006464d2433e453d366153d5bf2f5d358 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 24 Jul 2024 21:09:38 -0400 Subject: [PATCH 06/83] Remove extra line in header.sh --- src/header.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/src/header.sh b/src/header.sh index f0adb14..218297d 100644 --- a/src/header.sh +++ b/src/header.sh @@ -96,7 +96,6 @@ create_activation_script() { fi done fi - echo "export CONDA_ENV_STATE_FILE=\"$state_file\"" >> "$activate_path" fi chmod +x "$activate_path" From c2290a6d5e3f67454ac501f5e4875145d2358da9 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 25 Jul 2024 10:44:29 +0200 Subject: [PATCH 07/83] fix ci --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e75838..b7cba19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,9 +41,6 @@ jobs: steps: - name: Checkout branch uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - fetch-depth: 0 - name: Set up pixi uses: prefix-dev/setup-pixi@ba3bb36eb2066252b2363392b7739741bb777659 with: From 506ff30dae7179d5fa76b574868d0e5f1d3206c3 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Thu, 25 Jul 2024 14:46:09 -0400 Subject: [PATCH 08/83] Removing extra print in header file --- tests/integration_test.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 3be6abc..cfa669d 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -338,8 +338,6 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& assert!(pack_file.exists()); assert_eq!(pack_file.extension().unwrap(), "sh"); - eprintln!("{:?}", pack_file); - let output = Command::new("sh") .arg(pack_file) .arg("-a") From 9cf18a3557d523766db45083c46c6d6714c895eb Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Thu, 25 Jul 2024 17:43:13 -0400 Subject: [PATCH 09/83] Fixing extraction error in header.sh --- src/header.sh | 2 +- tests/integration_test.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/header.sh b/src/header.sh index 218297d..0fede3b 100644 --- a/src/header.sh +++ b/src/header.sh @@ -141,7 +141,7 @@ PREFIX="$PARENT_DIR/$PREFIX" last_line=$(($(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') + 1)) echo "Unpacking payload ..." -tail -n +$last_line "$0" | tar xzv -C "$TEMPDIR" +tail -n +$last_line "$0" | tar -xvf -C "$TEMPDIR" echo "Creating environment using $INSTALLER" diff --git a/tests/integration_test.rs b/tests/integration_test.rs index cfa669d..31cc680 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -325,6 +325,7 @@ async fn test_create_executable(options: Options, required_fs_objects: Vec<&'sta #[rstest] #[tokio::test] +#[cfg(any(target_os = "linux", target_os = "macos"))] async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<&'static str>) { let mut pack_options = options.pack_options; pack_options.create_executable = true; From b23c1a9c330163599a8de4dd6ff5e9f6beff42be Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sat, 3 Aug 2024 10:53:31 -0400 Subject: [PATCH 10/83] Initialized extractor --- Cargo.lock | 9 +++++++++ Cargo.toml | 3 +++ build.rs | 18 ++++++++++++++++++ extractor/Cargo.toml | 9 +++++++++ extractor/src/main.rs | 17 +++++++++++++++++ src/header.sh | 2 ++ 6 files changed, 58 insertions(+) create mode 100644 build.rs create mode 100644 extractor/Cargo.toml create mode 100644 extractor/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index b12dc81..fbe1b57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -842,6 +842,15 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "extractor" +version = "0.1.0" +dependencies = [ + "anyhow", + "rattler", + "rattler_shell", +] + [[package]] name = "fastrand" version = "1.9.0" diff --git a/Cargo.toml b/Cargo.toml index 9b53544..ad75be5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,3 +59,6 @@ tempfile = "3.10.1" [dev-dependencies] async-std = "1.12.0" rstest = "0.21.0" + +[workspace] +members = ["extractor"] diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..8cd755a --- /dev/null +++ b/build.rs @@ -0,0 +1,18 @@ +use std::process::Command; + +fn main() { + // Compile the extractor + let status = Command::new("cargo") + .args([ + "build", + "--release", + "--manifest-path", + "extractor/Cargo.toml", + ]) + .status() + .expect("Failed to compile extractor"); + + if !status.success() { + panic!("Failed to compile extractor"); + } +} diff --git a/extractor/Cargo.toml b/extractor/Cargo.toml new file mode 100644 index 0000000..fb2f6b2 --- /dev/null +++ b/extractor/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "extractor" +version = "0.1.0" +edition = "2021" + +[dependencies] +rattler = { version = "0.26.4", default-features = false } +rattler_shell = "0.20.9" +anyhow = "1.*" diff --git a/extractor/src/main.rs b/extractor/src/main.rs new file mode 100644 index 0000000..07e6a4e --- /dev/null +++ b/extractor/src/main.rs @@ -0,0 +1,17 @@ +use anyhow::{anyhow, Result}; +// use rattler::install::Installer; +// use rattler::package_cache::PackageCache; +use std::env; +use std::path::Path; + +fn main() -> Result<()> { + let args: Vec = env::args().collect(); + if args.len() != 3 { + return Err(anyhow!("Usage: {} ", args[0])); + } + + let _archive_dir = Path::new(&args[1]); + let _output_dir = Path::new(&args[2]); + + Ok(()) +} diff --git a/src/header.sh b/src/header.sh index 0fede3b..5fedf4c 100644 --- a/src/header.sh +++ b/src/header.sh @@ -143,6 +143,8 @@ last_line=$(($(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') + 1)) echo "Unpacking payload ..." tail -n +$last_line "$0" | tar -xvf -C "$TEMPDIR" +tail .... | sh $TEMPDIR + echo "Creating environment using $INSTALLER" cd $TEMPDIR From 4bed8273905db737e74dba2b5dd876fa2f7ea90b Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad <149900742+prsabahrami@users.noreply.github.com> Date: Sat, 3 Aug 2024 10:56:39 -0400 Subject: [PATCH 11/83] Update chore.yml --- .github/workflows/chore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/chore.yml b/.github/workflows/chore.yml index 475d55b..536315e 100644 --- a/.github/workflows/chore.yml +++ b/.github/workflows/chore.yml @@ -1,7 +1,7 @@ name: Chore on: pull_request: - branches: [main] + branches: [main, selfexec_support] types: [opened, reopened, edited, synchronize] concurrency: From 85d50eba1029b4d92743604c328e5ad77e1b2dd2 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad <149900742+prsabahrami@users.noreply.github.com> Date: Sat, 3 Aug 2024 11:06:13 -0400 Subject: [PATCH 12/83] Update ci.yml --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e75838..a715d0a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,12 @@ name: CI on: - pull_request: merge_group: + pull_request: + push: + branches: + - main + - selfexec_support + # Automatically stop old builds on the same branch/PR concurrency: From 5990275a5faf53365ea3a16de15f328d6e2e0100 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sun, 4 Aug 2024 21:01:42 -0400 Subject: [PATCH 13/83] Added extractor --- Cargo.lock | 558 ++++++++++++++++++++++++++++++-------- Cargo.toml | 38 ++- build.rs | 9 +- extractor/Cargo.toml | 24 +- extractor/src/main.rs | 238 +++++++++++++++- src/header.sh | 150 ++++------ src/main.rs | 2 + src/pack.rs | 32 ++- src/unpack.rs | 1 + tests/integration_test.rs | 2 +- 10 files changed, 797 insertions(+), 257 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fbe1b57..9b8e5e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -29,6 +29,18 @@ dependencies = [ "opaque-debug", ] +[[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", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -38,6 +50,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -108,6 +126,15 @@ version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "async-broadcast" version = "0.5.1" @@ -520,9 +547,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -530,9 +557,9 @@ dependencies = [ [[package]] name = "clap-verbosity-flag" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9b20c0dd58e4c2e991c8d203bbeb76c11304d1011659686b5b644bc29aa478" +checksum = "63d19864d6b68464c59f7162c9914a0b569ddc2926b4a2d71afe62a9738eff53" dependencies = [ "clap", "log", @@ -540,9 +567,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -552,9 +579,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck", "proc-macro2", @@ -702,6 +729,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "digest" version = "0.10.7" @@ -734,6 +772,17 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "either" version = "1.12.0" @@ -794,6 +843,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "erased-serde" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +dependencies = [ + "serde", + "typeid", +] + [[package]] name = "errno" version = "0.3.9" @@ -842,15 +901,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "extractor" -version = "0.1.0" -dependencies = [ - "anyhow", - "rattler", - "rattler_shell", -] - [[package]] name = "fastrand" version = "1.9.0" @@ -868,9 +918,9 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "file_url" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1042c5fdc9f2cf548a139ccd0985fa2460d796f99b08574f72f1f53d179e6591" +checksum = "d0d1df57145d7cda57c95c44a2d64c24f579e2d50b8f4f7a779287293ad3adc0" dependencies = [ "itertools", "percent-encoding", @@ -901,6 +951,15 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1210,6 +1269,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "halfbrown" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" +dependencies = [ + "hashbrown 0.14.5", + "serde", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1221,6 +1290,10 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] [[package]] name = "heck" @@ -1401,19 +1474,21 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.26.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", "http 1.1.0", "hyper 1.3.1", "hyper-util", - "rustls 0.22.4", + "rustls 0.23.12", + "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls 0.26.0", "tower-service", + "webpki-roots 0.26.2", ] [[package]] @@ -1573,9 +1648,9 @@ checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -1671,6 +1746,70 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lexical-core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +dependencies = [ + "lexical-parse-integer", + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-parse-integer" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-util" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lexical-write-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +dependencies = [ + "lexical-util", + "lexical-write-integer", + "static_assertions", +] + +[[package]] +name = "lexical-write-integer" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +dependencies = [ + "lexical-util", + "static_assertions", +] + [[package]] name = "libc" version = "0.2.155" @@ -1719,6 +1858,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + [[package]] name = "log" version = "0.4.21" @@ -1803,13 +1948,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2212,7 +2358,7 @@ dependencies = [ [[package]] name = "pixi-pack" -version = "0.1.3" +version = "0.1.5" dependencies = [ "anyhow", "async-std", @@ -2223,13 +2369,13 @@ dependencies = [ "indicatif", "rattler", "rattler_conda_types", - "rattler_digest", + "rattler_digest 1.0.0", "rattler_index", "rattler_lock", "rattler_networking", "rattler_package_streaming", "rattler_shell", - "reqwest 0.12.4", + "reqwest 0.12.5", "reqwest-middleware", "rstest", "serde", @@ -2343,6 +2489,52 @@ dependencies = [ "unicase", ] +[[package]] +name = "quinn" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.23.12", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" +dependencies = [ + "bytes", + "rand", + "ring", + "rustc-hash", + "rustls 0.23.12", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +dependencies = [ + "libc", + "once_cell", + "socket2 0.5.7", + "windows-sys 0.52.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -2384,18 +2576,15 @@ dependencies = [ [[package]] name = "rattler" -version = "0.26.4" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d5504e8afc260cceebb79886032ac146c9344c55fbaf9034ca45a0c00b7447" +checksum = "d9ad5c5d7fbab0f7180ff1266c3f63c1e1cefd0774b20f1d89e0820732c60ea9" dependencies = [ "anyhow", - "bytes", - "chrono", "digest", "dirs", "fs-err", "futures", - "fxhash", "humantime", "indexmap 2.2.6", "itertools", @@ -2405,20 +2594,19 @@ dependencies = [ "parking_lot", "rattler_cache", "rattler_conda_types", - "rattler_digest", + "rattler_digest 0.19.5", "rattler_networking", "rattler_package_streaming", "rattler_shell", "reflink-copy", "regex", - "reqwest 0.12.4", + "reqwest 0.12.5", "reqwest-middleware", "simple_spawn_blocking", "smallvec", "tempfile", "thiserror", "tokio", - "tokio-stream", "tracing", "url", "uuid", @@ -2426,22 +2614,21 @@ dependencies = [ [[package]] name = "rattler_cache" -version = "0.1.0" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdad5b1a62c97fe6acbad6f1421eed77bf75f736a5af44a18f0e46d6d1cd5c81" +checksum = "890a18f5e336f9712991fd9a116c6b074839167b3135348d43d9ae89dffedd2f" dependencies = [ "anyhow", - "chrono", "digest", "dirs", "fxhash", "itertools", "parking_lot", "rattler_conda_types", - "rattler_digest", + "rattler_digest 0.19.5", "rattler_networking", "rattler_package_streaming", - "reqwest 0.12.4", + "reqwest 0.12.5", "reqwest-middleware", "thiserror", "tokio", @@ -2451,26 +2638,30 @@ dependencies = [ [[package]] name = "rattler_conda_types" -version = "0.25.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d6d35c484af9b1a3ce13ace90de388c8a21b1f832bf2ee97b5681a94178326" +checksum = "fa8a3f6f355aebb8a7af60bf5d961adce58689892d646616201d1f5daba1c525" dependencies = [ "chrono", "file_url", "fxhash", "glob", "hex", + "indexmap 2.2.6", "itertools", "lazy-regex", "nom", "purl", - "rattler_digest", + "rattler_digest 0.19.5", "rattler_macros", "regex", "serde", + "serde-untagged", "serde_json", "serde_repr", "serde_with", + "serde_yaml", + "simd-json", "smallvec", "strum", "thiserror", @@ -2481,9 +2672,9 @@ dependencies = [ [[package]] name = "rattler_digest" -version = "0.19.4" +version = "0.19.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf69475918dd44152f7df690b13f2909f34cc762ae18a2e2c55824b546de161" +checksum = "eeb0228f734983274fb6938844123e88aa55158d53ead37e8ae3deb641fe05aa" dependencies = [ "blake2", "digest", @@ -2495,15 +2686,29 @@ dependencies = [ "sha2", ] +[[package]] +name = "rattler_digest" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b747092584fbc2bfef5e4f7286a0b6f81aec1bf67b537ef9f1749cb7931ac7f" +dependencies = [ + "blake2", + "digest", + "hex", + "md-5", + "serde_with", + "sha2", +] + [[package]] name = "rattler_index" -version = "0.19.17" +version = "0.19.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aef7d09c64b9710ada881425733f46093124a7d152114cd9aab5f4341179562" +checksum = "fb638cc256c0ccb68f8faf0dad3d703a64d11834323aa746f12e54d8f2bf236e" dependencies = [ "fs-err", "rattler_conda_types", - "rattler_digest", + "rattler_digest 0.19.5", "rattler_package_streaming", "serde_json", "tracing", @@ -2512,9 +2717,9 @@ dependencies = [ [[package]] name = "rattler_lock" -version = "0.22.12" +version = "0.22.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb54f27b97a03b9b2921bd18967947bc5788a8d653fcd6b6bdd18dad192312f" +checksum = "70241633ceba0c8d4396eaaba4c488be0b22e2a9c62639eeafff2841f604fab2" dependencies = [ "chrono", "file_url", @@ -2523,11 +2728,9 @@ dependencies = [ "itertools", "pep440_rs", "pep508_rs", - "purl", "rattler_conda_types", - "rattler_digest", + "rattler_digest 0.19.5", "serde", - "serde_json", "serde_repr", "serde_with", "serde_yaml", @@ -2537,9 +2740,9 @@ dependencies = [ [[package]] name = "rattler_macros" -version = "0.19.3" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cef20e8356ea6840294e5754c6a8663b0eb1b97f29d517642f0f99215a2483" +checksum = "b4961d74ca0a15a62c83e439dfd9f440f35f8c31dfb71afe990b2d8fbf916f7a" dependencies = [ "quote", "syn 2.0.66", @@ -2547,26 +2750,23 @@ dependencies = [ [[package]] name = "rattler_networking" -version = "0.20.8" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c582ad6d82b397d1e1522910b34dc052bbed4dedc0eed7fb640024de0dc6f5f6" +checksum = "0fec041e559f2b4cb21556816f10b3da174932f49280f335b21563d06d2a4737" dependencies = [ "anyhow", "async-trait", "base64 0.22.1", - "bytes", "chrono", "dirs", "fslock", - "futures", "getrandom", "google-cloud-auth", "http 1.1.0", "itertools", "keyring", "netrc-rs", - "pin-project-lite", - "reqwest 0.12.4", + "reqwest 0.12.5", "reqwest-middleware", "retry-policies", "serde", @@ -2578,18 +2778,18 @@ dependencies = [ [[package]] name = "rattler_package_streaming" -version = "0.21.3" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390c453b80d7904362e121c89f29aee796fb4d38cc7b24fe7ba9e583ef77a27b" +checksum = "c3a65e6c6ebda42aef76886decf080450eb278bb584bebe3e11fb84b3b541b2d" dependencies = [ "bzip2", "chrono", "futures-util", "num_cpus", "rattler_conda_types", - "rattler_digest", + "rattler_digest 0.19.5", "rattler_networking", - "reqwest 0.12.4", + "reqwest 0.12.5", "reqwest-middleware", "serde_json", "tar", @@ -2604,9 +2804,9 @@ dependencies = [ [[package]] name = "rattler_shell" -version = "0.20.9" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17c8a64079dc3a7b8b0070e0d7c4bee4008bf16d799b8b621a9aa88968650c6" +checksum = "3017971018213c53bfdd4679542922269c8e30d235b88b1dd0bc6e25425c3437" dependencies = [ "enum_dispatch", "indexmap 2.2.6", @@ -2657,6 +2857,26 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "reflink-copy" version = "0.1.17" @@ -2748,7 +2968,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", "tokio-native-tls", @@ -2764,9 +2984,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ "async-compression", "base64 0.22.1", @@ -2778,7 +2998,7 @@ dependencies = [ "http-body 1.0.0", "http-body-util", "hyper 1.3.1", - "hyper-rustls 0.26.0", + "hyper-rustls 0.27.2", "hyper-tls 0.6.0", "hyper-util", "ipnet", @@ -2789,18 +3009,19 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.22.4", + "quinn", + "rustls 0.23.12", "rustls-native-certs", "rustls-pemfile 2.1.2", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls 0.25.0", + "tokio-rustls 0.26.0", "tokio-util", "tower-service", "url", @@ -2814,14 +3035,14 @@ dependencies = [ [[package]] name = "reqwest-middleware" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45d100244a467870f6cb763c4484d010a6bed6bd610b3676e3825d93fb4cfbd" +checksum = "39346a33ddfe6be00cbc17a34ce996818b97b230b87229f10114693becca1268" dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.4", + "reqwest 0.12.5", "serde", "thiserror", "tower-service", @@ -2829,12 +3050,10 @@ dependencies = [ [[package]] name = "retry-policies" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "493b4243e32d6eedd29f9a398896e35c6943a123b55eec97dcaee98310d25810" +checksum = "5875471e6cab2871bc150ecb8c727db5113c9338cc3354dc5ee3425b6aa40a1c" dependencies = [ - "anyhow", - "chrono", "rand", ] @@ -2889,6 +3108,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc_version" version = "0.4.0" @@ -2939,14 +3164,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.4" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ - "log", + "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.4", + "rustls-webpki 0.102.6", "subtle", "zeroize", ] @@ -3001,9 +3226,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.4" +version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ "ring", "rustls-pki-types", @@ -3106,18 +3331,29 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", @@ -3126,12 +3362,13 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "indexmap 2.2.6", "itoa", + "memchr", "ryu", "serde", ] @@ -3248,6 +3485,34 @@ dependencies = [ "libc", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simd-json" +version = "0.13.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "570c430b3d902ea083097e853263ae782dfe40857d93db019a12356c8e8143fa" +dependencies = [ + "getrandom", + "halfbrown", + "lexical-core", + "ref-cast", + "serde", + "serde_json", + "simdutf8", + "value-trait", +] + +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "simple_asn1" version = "0.6.2" @@ -3344,9 +3609,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.26.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ "strum_macros", ] @@ -3398,6 +3663,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + [[package]] name = "system-configuration" version = "0.5.1" @@ -3520,27 +3791,26 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", "socket2 0.5.7", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", @@ -3569,11 +3839,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.22.4", + "rustls 0.23.12", "rustls-pki-types", "tokio", ] @@ -3587,7 +3857,6 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", - "tokio-util", ] [[package]] @@ -3742,9 +4011,15 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typed-path" -version = "0.8.0" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04645b6c01cfb2ddabffc7c67ae6bfe7c3e28a5c37d729f6bb498e784f1fd70c" + +[[package]] +name = "typeid" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6069e2cc1d241fd4ff5fa067e8882996fcfce20986d078696e05abccbcf27b43" +checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf" [[package]] name = "typenum" @@ -3819,9 +4094,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -3863,6 +4138,18 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101" +[[package]] +name = "value-trait" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad8db98c1e677797df21ba03fca7d3bf9bec3ca38db930954e4fe6e1ea27eb4" +dependencies = [ + "float-cmp", + "halfbrown", + "itoa", + "ryu", +] + [[package]] name = "vcpkg" version = "0.2.15" @@ -4358,6 +4645,26 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "zeroize" version = "1.8.1" @@ -4366,15 +4673,34 @@ checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] name = "zip" -version = "0.6.6" +version = "2.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +checksum = "40dd8c92efc296286ce1fbd16657c5dbefff44f1b4ca01cc5f517d8b7b3d3e2e" dependencies = [ - "byteorder", + "arbitrary", "crc32fast", "crossbeam-utils", + "displaydoc", "flate2", + "indexmap 2.2.6", + "memchr", + "thiserror", "time", + "zopfli", +] + +[[package]] +name = "zopfli" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" +dependencies = [ + "bumpalo", + "crc32fast", + "lockfree-object-pool", + "log", + "once_cell", + "simd-adler32", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index ad75be5..582a300 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,9 @@ [package] name = "pixi-pack" description = "A command line tool to pack and unpack conda environments for easy sharing" -version = "0.1.3" +version = "0.1.5" edition = "2021" +build = "build.rs" [features] default = ["native-tls"] @@ -23,28 +24,28 @@ rustls-tls = [ [dependencies] anyhow = "1.*" -clap = { version = "4.5.4", features = ["derive", "string"] } -clap-verbosity-flag = "2.2.0" +clap = { version = "4.5.13", features = ["derive", "string"] } +clap-verbosity-flag = "2.2.1" futures = "0.3.30" indicatif = "0.17.8" -rattler = { version = "0.26.4", default-features = false } -rattler_digest = "0.19.4" -rattler_conda_types = "0.25.2" -rattler_index = "0.19.17" -rattler_lock = "0.22.12" -rattler_networking = { version = "0.20.8", default-features = false } -rattler_package_streaming = { version = "0.21.3", default-features = false } -rattler_shell = "0.20.9" -reqwest = { version = "0.12.4", default-features = false, features = [ +rattler = { version = "0.27.2", default-features = false } +rattler_digest = "1.0.0" +rattler_conda_types = "0.26.3" +rattler_index = "0.19.21" +rattler_lock = "0.22.16" +rattler_networking = { version = "0.20.10", default-features = false } +rattler_package_streaming = { version = "0.21.7", default-features = false } +rattler_shell = "0.21.3" +reqwest = { version = "0.12.5", default-features = false, features = [ "http2", "macos-system-configuration", ] } -reqwest-middleware = "0.3.1" -serde = { version = "1.0.203", features = ["derive"] } -serde_json = "1.0.117" +reqwest-middleware = "0.3.2" +serde = { version = "1.0.204", features = ["derive"] } +serde_json = "1.0.121" serde_yaml = "0.9.34" tokio-tar = "0.3.1" -tokio = { version = "1.37.0", features = ["rt-multi-thread"] } +tokio = { version = "1.39.2", features = ["rt-multi-thread"] } tokio-stream = { version = "0.1.15", features = ["fs"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = [ @@ -52,13 +53,10 @@ tracing-subscriber = { version = "0.3.18", features = [ "env-filter", ] } tracing-log = "0.2" -url = "2.5.0" +url = "2.5.2" fxhash = "0.2.1" tempfile = "3.10.1" [dev-dependencies] async-std = "1.12.0" rstest = "0.21.0" - -[workspace] -members = ["extractor"] diff --git a/build.rs b/build.rs index 8cd755a..9178de4 100644 --- a/build.rs +++ b/build.rs @@ -1,18 +1,19 @@ use std::process::Command; fn main() { - // Compile the extractor + let extractor_path = "./extractor"; + let status = Command::new("cargo") .args([ "build", "--release", "--manifest-path", - "extractor/Cargo.toml", + &format!("{}/Cargo.toml", extractor_path), ]) .status() - .expect("Failed to compile extractor"); + .expect("Failed to build extractor"); if !status.success() { - panic!("Failed to compile extractor"); + panic!("Failed to compile the extractor project."); } } diff --git a/extractor/Cargo.toml b/extractor/Cargo.toml index fb2f6b2..1e1150f 100644 --- a/extractor/Cargo.toml +++ b/extractor/Cargo.toml @@ -4,6 +4,26 @@ version = "0.1.0" edition = "2021" [dependencies] -rattler = { version = "0.26.4", default-features = false } -rattler_shell = "0.20.9" anyhow = "1.*" +futures = "0.3.30" +rattler = { version = "0.27.2", default-features = false } +rattler_digest = "1.0.0" +rattler_conda_types = "0.26.3" +rattler_index = "0.19.21" +rattler_lock = "0.22.16" +rattler_networking = { version = "0.20.10", default-features = false } +rattler_package_streaming = { version = "0.21.7", default-features = false } +rattler_shell = "0.21.3" +reqwest = { version = "0.12.5", default-features = false, features = [ + "http2", + "macos-system-configuration", +] } +reqwest-middleware = "0.3.2" +serde = { version = "1.0.204", features = ["derive"] } +serde_json = "1.0.121" +serde_yaml = "0.9.34" +tokio = { version = "1.39.2", features = ["rt-multi-thread"] } +tokio-stream = { version = "0.1.15", features = ["fs"] } +url = "2.5.2" +fxhash = "0.2.1" +tempfile = "3.10.1" diff --git a/extractor/src/main.rs b/extractor/src/main.rs index 07e6a4e..adb69b9 100644 --- a/extractor/src/main.rs +++ b/extractor/src/main.rs @@ -1,17 +1,231 @@ -use anyhow::{anyhow, Result}; -// use rattler::install::Installer; -// use rattler::package_cache::PackageCache; -use std::env; -use std::path::Path; - -fn main() -> Result<()> { - let args: Vec = env::args().collect(); - if args.len() != 3 { - return Err(anyhow!("Usage: {} ", args[0])); +use std::path::{Path, PathBuf}; + +use fxhash::FxHashMap; +use tokio::fs; +use tokio_stream::wrappers::ReadDirStream; + +use anyhow::anyhow; +use anyhow::Result; +use futures::{stream, StreamExt, TryStreamExt}; +use rattler::{ + install::Installer, + package_cache::{CacheKey, PackageCache}, +}; +use rattler_conda_types::{PackageRecord, Platform, RepoData, RepoDataRecord}; +use rattler_package_streaming::fs::extract; +use rattler_shell::{ + activation::{ActivationVariables, Activator, PathModificationBehavior}, + shell::{Shell, ShellEnum}, +}; +use serde::{Deserialize, Serialize}; +use url::Url; + +/// The metadata for a "pixi-pack". +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] +pub struct PixiPackMetadata { + /// The pack format version. + pub version: String, + /// The platform the pack was created for. + pub platform: Platform, +} + +#[tokio::main] +async fn main() -> Result<()> { + let args: Vec = std::env::args().collect(); + if args.len() != 4 { + return Err(anyhow!( + "Usage: {} ", + args[0] + )); + } + + let task = &args[1]; + let input_dir = Path::new(&args[2]); + let output_dir = Path::new(&args[3]); + + if task == "unpack" { + unpack(input_dir, output_dir).await?; + } else if task == "create-script" { + create_activation_script(input_dir, output_dir).await?; + } else { + return Err(anyhow!( + "Unknown task: {}. Task should be either 'unpack' or 'create-script'", + task + )); + } + + Ok(()) +} + +/// Unpack a pixi environment from a directory +pub async fn unpack(archive_dir: &Path, output_dir: &Path) -> Result<()> { + let channel_directory = archive_dir.join(std::env::var("PIXI_PACK_CHANNEL_DIRECTORY").unwrap()); + + validate_metadata_file(archive_dir.join(std::env::var("PIXI_PACK_METADATA_PATH").unwrap())) + .await?; + + create_prefix(&channel_directory, output_dir) + .await + .map_err(|e| anyhow!("Could not create prefix: {}", e))?; + + Ok(()) +} + +async fn collect_packages_in_subdir(subdir: PathBuf) -> Result> { + let repodata = subdir.join("repodata.json"); + + let raw_repodata_json = fs::read_to_string(repodata) + .await + .map_err(|e| anyhow!("could not read repodata in subdir: {}", e))?; + + let repodata: RepoData = serde_json::from_str(&raw_repodata_json).map_err(|e| { + anyhow!( + "could not parse repodata in subdir {}: {}", + subdir.display(), + e + ) + })?; + + let mut conda_packages = repodata.conda_packages; + let packages = repodata.packages; + conda_packages.extend(packages); + Ok(conda_packages) +} + +async fn validate_metadata_file(metadata_file: PathBuf) -> Result<()> { + let metadata_contents = fs::read_to_string(&metadata_file) + .await + .map_err(|e| anyhow!("Could not read metadata file: {}", e))?; + + let metadata: PixiPackMetadata = serde_json::from_str(&metadata_contents)?; + + if metadata.version != std::env::var("PIXI_PACK_DEFAULT_VERSION").unwrap() { + anyhow::bail!("Unsupported pixi-pack version: {}", metadata.version); + } + if metadata.platform != Platform::current() { + anyhow::bail!("The pack was created for a different platform"); } - let _archive_dir = Path::new(&args[1]); - let _output_dir = Path::new(&args[2]); + Ok(()) +} + +/// Collect all packages in a directory. +async fn collect_packages(channel_dir: &Path) -> Result> { + let subdirs = fs::read_dir(channel_dir) + .await + .map_err(|e| anyhow!("could not read channel directory: {}", e))?; + + let stream = ReadDirStream::new(subdirs); + + let packages = stream + .try_filter_map(|entry| async move { + let path = entry.path(); + + if path.is_dir() { + Ok(Some(path)) + } else { + Ok(None) // Ignore non-directory entries + } + }) + .map_ok(collect_packages_in_subdir) + .map_err(|e| anyhow!("could not read channel directory: {}", e)) + .try_buffer_unordered(10) + .try_concat() + .await?; + + Ok(packages) +} + +async fn create_prefix(channel_dir: &Path, target_prefix: &Path) -> Result<()> { + let packages = collect_packages(channel_dir) + .await + .map_err(|e| anyhow!("could not collect packages: {}", e))?; + + let cache_dir = tempfile::tempdir() + .map_err(|e| anyhow!("could not create temporary directory: {}", e))? + .into_path(); + + eprintln!( + "⏳ Extracting and installing {} packages...", + packages.len() + ); + + // extract packages to cache + let package_cache = PackageCache::new(cache_dir); + + let repodata_records: Vec = stream::iter(packages) + .map(|(file_name, package_record)| { + let cache_key = CacheKey::from(&package_record); + + let package_path = channel_dir.join(&package_record.subdir).join(&file_name); + + let url = Url::parse(&format!("file:///{}", file_name)).unwrap(); + + let repodata_record = RepoDataRecord { + package_record, + file_name, + url, + channel: "local".to_string(), + }; + + async { + // We have to prepare the package cache by inserting all packages into it. + // We can only do so by calling `get_or_fetch` on each package, which will + // use the provided closure to fetch the package and insert it into the cache. + package_cache + .get_or_fetch( + cache_key, + |destination| async move { + extract(&package_path, &destination).map(|_| ()) + }, + None, + ) + .await + .map_err(|e| anyhow!("could not extract package: {}", e))?; + + Ok::(repodata_record) + } + }) + .buffer_unordered(50) + .try_collect() + .await?; + + // Invariant: all packages are in the cache + let installer = Installer::default(); + installer + .with_package_cache(package_cache) + .install(&target_prefix, repodata_records) + .await + .map_err(|e| anyhow!("could not install packages: {}", e))?; + + let history_path = target_prefix.join("conda-meta").join("history"); + + fs::write( + history_path, + "// not relevant for pixi but for `conda run -p`", + ) + .await + .map_err(|e| anyhow!("Could not write history file: {}", e))?; + + Ok(()) +} + +async fn create_activation_script(destination: &Path, prefix: &Path) -> Result<()> { + let shell = ShellEnum::default(); + let file_extension = shell.extension(); + let activate_path = destination.join(format!("activate.{}", file_extension)); + let activator = Activator::from_path(prefix, shell, Platform::current())?; + + let result = activator.activation(ActivationVariables { + conda_prefix: None, + path: None, + path_modification_behavior: PathModificationBehavior::Prepend, + })?; + + let contents = result.script.contents()?; + fs::write(activate_path, contents) + .await + .map_err(|e| anyhow!("Could not write activate script: {}", e))?; Ok(()) } diff --git a/src/header.sh b/src/header.sh index 5fedf4c..b28ca27 100644 --- a/src/header.sh +++ b/src/header.sh @@ -5,9 +5,13 @@ set -eu TEMPDIR=`mktemp -d` PREFIX="env" FORCE=0 -INSTALLER="conda" # Default to conda +INSTALLER="rattler" # Default to rattler CREATE_ACTIVATION_SCRIPT=false -PARENT_DIR="$(dirname "$0")" + +# Pixi Constants ./lib.rs +PIXI_PACK_CHANNEL_DIRECTORY="" +PIXI_PACK_METADATA_PATH="" +PIXI_PACK_DEFAULT_VERSION="" USAGE=" usage: $0 [options] @@ -21,87 +25,6 @@ Unpacks an environment packed with pixi-pack -a create an activation script to activate the environment " -create_activation_script() { - local destination="$1" - local prefix="$2" - local shell=$(basename "$3") - - case "$shell" in - bash | zsh | fish) - extension="sh" - ;; - *) - echo "Unsupported shell: $shell" >&2 - return 1 - ;; - esac - - activate_path="${destination}/activate.${extension}" - - activation_dir="${prefix}/etc/conda/activate.d" - deactivation_dir="${prefix}/etc/conda/deactivate.d" - env_vars_dir="${prefix}/etc/conda/env_vars.d" - state_file="${prefix}/conda-meta/state" - - touch "$activate_path" - echo "export PATH=\"$prefix/bin:\$PATH\"" >> "$activate_path" - echo "export CONDA_PREFIX=\"$prefix\"" >> "$activate_path" - - # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#335 - if [ -d "$activation_dir" ]; then - for file in "${activation_dir}/*"; do - echo ". \"$file\"" >> "$activate_path" - done - fi - - # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#337 - if [ -d "$deactivation_dir" ]; then - for file in "${deactivation_dir}/*"; do - echo ". \"$file\"" >> "$activate_path" - done - fi - - # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#191 - if [ -d "$env_vars_dir" ]; then - env_var_files=$(find "$env_vars_dir" -type f | sort) - - for file in $env_var_files; do - if jq empty "$file" 2>/dev/null; then - jq -r 'to_entries | map("\(.key)=\(.value)") | .[]' "$file" | while IFS="=" read -r key value; do - # Remove quotes from the value - value=$(echo "$value" | sed 's/^"//; s/"$//') - echo "export $key=\"$value\"" >> "$activate_path" - done - else - echo "WARNING: Invalid JSON file: $file" >&2 - fi - done - fi - - # https://docs.rs/rattler_shell/latest/src/rattler_shell/activation.rs.html#236 - if [ -e "$state_file" ]; then - if ! state_json=$(jq '.' "$state_file" 2>/dev/null); then - echo "WARNING: Invalid JSON in state file: $state_file" >&2 - else - echo "$state_json" | jq -r '.env_vars // {} | to_entries | map("\(.key)=\(.value)") | .[]' | while IFS="=" read -r key value; do - if [ -n "$key" ]; then - if grep -q "export $key=" "$activate_path"; then - echo "WARNING: environment variable $key already defined in packages (path: $state_file)" >&2 - fi - if [ -n "$value" ]; then - echo "export ${key}=\"$value\"" >> "$activate_path" - else - echo "WARNING: environment variable $key has no string value (path: $state_file)" >&2 - fi - fi - done - fi - fi - - chmod +x "$activate_path" - echo "Activation script created at $activate_path" -} - while getopts ":fhai:p:" x; do case "$x" in f) @@ -123,7 +46,7 @@ while getopts ":fhai:p:" x; do esac done -if [ "$INSTALLER" != "conda" ] && [ "$INSTALLER" != "micromamba" ]; then +if [ "$INSTALLER" != "rattler" ] && [ "$INSTALLER" != "conda" ] && [ "$INSTALLER" != "micromamba" ]; then echo "ERROR: Invalid installer: '$INSTALLER'" >&2 exit 1 fi @@ -132,34 +55,67 @@ if [ "$FORCE" = "0" ] && [ -e "$PREFIX" ]; then echo "ERROR: File or directory already exists: '$PREFIX'" >&2 echo "If you want to update an existing environment, use the -f option." >&2 exit 1 -elif [ "$FORCE" = "1" ] && [ -e "$PREFIX" ]; then +fi + +if [ "$FORCE" = "1" ] && [ -e "$PREFIX" ]; then rm -rf "$PREFIX" fi -PREFIX="$PARENT_DIR/$PREFIX" +if [ "$CREATE_ACTIVATION_SCRIPT" = true ] && [ "$INSTALLER" = "conda" ]; then + echo "ERROR: Activation script creation is only supported with rattler or micromamba as the installer." >&2 + exit 1 +fi -last_line=$(($(grep -anm 1 '^@@END_HEADER@@' "$0" | sed 's/:.*//') + 1)) +mkdir -p "$PREFIX" +PREFIX="$(realpath "$PREFIX")" +PARENT_DIR="$(dirname "$PREFIX")" -echo "Unpacking payload ..." -tail -n +$last_line "$0" | tar -xvf -C "$TEMPDIR" +archive_begin=$(($(grep -anm 1 "^@@END_HEADER@@" "$0" | sed 's/:.*//') + 1)) +archive_end=$(($(grep -anm 1 "^@@END_ARCHIVE@@" "$0" | sed 's/:.*//') - 1)) -tail .... | sh $TEMPDIR +echo "Unpacking payload ..." +tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1)) | tar -xvf - -C "$TEMPDIR" echo "Creating environment using $INSTALLER" -cd $TEMPDIR +if [ "$INSTALLER" = "rattler" ]; then + ( + ls $TEMPDIR + + export PIXI_PACK_CHANNEL_DIRECTORY=$PIXI_PACK_CHANNEL_DIRECTORY + export PIXI_PACK_METADATA_PATH=$PIXI_PACK_METADATA_PATH + export PIXI_PACK_DEFAULT_VERSION=$PIXI_PACK_DEFAULT_VERSION + + rattler_start=$(($archive_end + 2)) -if [ "$INSTALLER" = "conda" ]; then + tail -n +$rattler_start "$0" > "$TEMPDIR/rattler" + chmod +x "$TEMPDIR/rattler" + + "$TEMPDIR/rattler" "unpack" "$TEMPDIR" "$PREFIX" + echo "Environment created at $PREFIX" + + if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then + "$TEMPDIR/rattler" "create-script" "$PARENT_DIR" "$PREFIX" + echo "Activation script created at $PARENT_DIR/activate.sh" + fi + ) +elif [ "$INSTALLER" = "conda" ]; then + cd $TEMPDIR conda env create -p $PREFIX --file environment.yml -else + echo "Environment created at $PREFIX" +elif [ "$INSTALLER" = "micromamba" ]; then + cd $TEMPDIR micromamba create -p $PREFIX --file environment.yml -fi -cd $PARENT_DIR + echo "Environment created at $PREFIX" -if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then - create_activation_script "$PARENT_DIR" "$PREFIX" "$SHELL" + if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then + micromamba shell activate -p $PREFIX > $PARENTDIR/activate.sh + echo "Activation script created at $PARENTDIR/activate.sh" + fi fi +cd $PARENT_DIR + exit 0 @@END_HEADER@@ \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 5cb1c07..6d6a37b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -117,6 +117,8 @@ async fn main() -> Result<()> { let mut output_file_with_extension = output_file; if create_executable { + // TODO: Add support for other platforms + // Change this to shell.extension() output_file_with_extension = output_file_with_extension.with_extension("sh"); } else { output_file_with_extension = output_file_with_extension.with_extension("tar"); diff --git a/src/pack.rs b/src/pack.rs index ffbb0ce..5d788cc 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -21,7 +21,8 @@ use reqwest_middleware::ClientWithMiddleware; use tokio_tar::Builder; use crate::{ - get_size, PixiPackMetadata, ProgressReporter, CHANNEL_DIRECTORY_NAME, PIXI_PACK_METADATA_PATH, + get_size, PixiPackMetadata, ProgressReporter, CHANNEL_DIRECTORY_NAME, + DEFAULT_PIXI_PACK_VERSION, PIXI_PACK_METADATA_PATH, }; use anyhow::anyhow; @@ -310,18 +311,39 @@ async fn create_self_extracting_executable(input_dir: &Path, target: &Path) -> R .await .map_err(|e| anyhow!("could not flush output: {}", e))?; - const HEADER_CONTENT: &[u8] = include_bytes!("header.sh"); + let header = include_str!("header.sh") + .to_string() + .replace( + "PIXI_PACK_CHANNEL_DIRECTORY=\"\"", + &format!("PIXI_PACK_CHANNEL_DIRECTORY=\"{}\"", CHANNEL_DIRECTORY_NAME), + ) + .replace( + "PIXI_PACK_METADATA_PATH=\"\"", + &format!("PIXI_PACK_METADATA_PATH=\"{}\"", PIXI_PACK_METADATA_PATH), + ) + .replace( + "PIXI_PACK_DEFAULT_VERSION=\"\"", + &format!( + "PIXI_PACK_DEFAULT_VERSION=\"{}\"", + DEFAULT_PIXI_PACK_VERSION + ), + ); let executable_path = target.with_extension("sh"); - let mut final_executable = tokio::fs::File::create(&executable_path) + // Add the binary of extractor to the final executable + const EXTRACTOR: &[u8] = include_bytes!("../extractor/target/release/extractor"); + + let mut final_executable = File::create(&executable_path) .await .map_err(|e| anyhow!("could not create final executable file: {}", e))?; - final_executable.write_all(HEADER_CONTENT).await?; + final_executable.write_all(header.as_bytes()).await?; final_executable.write_all(b"\n").await?; // Add a newline after the header - final_executable.write_all(&compressor).await?; + final_executable.write_all(b"\n").await?; + final_executable.write_all(b"@@END_ARCHIVE@@\n").await?; + final_executable.write_all(EXTRACTOR).await?; // Make the file executable #[cfg(unix)] diff --git a/src/unpack.rs b/src/unpack.rs index 0cd4d27..8cb3a65 100644 --- a/src/unpack.rs +++ b/src/unpack.rs @@ -16,6 +16,7 @@ use rattler_shell::{ activation::{ActivationVariables, Activator, PathModificationBehavior}, shell::{Shell, ShellEnum}, }; + use tokio::fs; use tokio::io::AsyncBufReadExt; use tokio_stream::wrappers::ReadDirStream; diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 31cc680..44a7943 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -341,7 +341,7 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& let output = Command::new("sh") .arg(pack_file) - .arg("-a") + .arg("-af") .output() .expect("Failed to execute packed file for extraction"); From 78352cb6528c261fa88e07620c40c427f07c846a Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 5 Aug 2024 10:17:42 -0400 Subject: [PATCH 14/83] Fixed unpack shell script --- src/unpack.rs | 42 ++++++++++++++++++++++++--------------- tests/integration_test.rs | 2 ++ 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/unpack.rs b/src/unpack.rs index 8cb3a65..642353e 100644 --- a/src/unpack.rs +++ b/src/unpack.rs @@ -1,4 +1,7 @@ -use std::path::{Path, PathBuf}; +use std::{ + io::Cursor, + path::{Path, PathBuf}, +}; use anyhow::{anyhow, Result}; use futures::{ @@ -18,7 +21,7 @@ use rattler_shell::{ }; use tokio::fs; -use tokio::io::AsyncBufReadExt; +use tokio::io::AsyncReadExt; use tokio_stream::wrappers::ReadDirStream; use tokio_tar::Archive; use url::Url; @@ -152,26 +155,33 @@ async fn collect_packages(channel_dir: &Path) -> Result Result<()> { - let shell_script = fs::File::open(shell_script_path) + let mut shell_script = fs::File::open(shell_script_path) .await .map_err(|e| anyhow!("could not open shell script: {}", e))?; - let mut reader = tokio::io::BufReader::new(shell_script); - let mut line = String::new(); - let mut found_end_header = false; + let mut content = Vec::new(); + shell_script + .read_to_end(&mut content) + .await + .map_err(|e| anyhow!("could not read shell script: {}", e))?; - while reader.read_line(&mut line).await? > 0 { - if line.trim() == "@@END_HEADER@@" { - found_end_header = true; - break; - } - line.clear(); - } + let end_header = b"@@END_HEADER@@\n"; + let end_archive = b"@@END_ARCHIVE@@\n"; - if !found_end_header { - return Err(anyhow!("Could not find @@END_HEADER@@ in shell script")); - } + let start = content + .windows(end_header.len()) + .position(|window| window == end_header) + .map(|pos| pos + end_header.len()) + .ok_or_else(|| anyhow!("Could not find @@END_HEADER@@ in shell script"))?; + + let end = content + .windows(end_archive.len()) + .position(|window| window == end_archive) + .ok_or_else(|| anyhow!("Could not find @@END_ARCHIVE@@ in shell script"))?; + + let archive_content = &content[start..end]; + let reader = tokio::io::BufReader::new(Cursor::new(archive_content)); let mut archive = Archive::new(reader); archive diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 44a7943..ef978d0 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -342,6 +342,8 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& let output = Command::new("sh") .arg(pack_file) .arg("-af") + .arg("-p") + .arg(options.output_dir.path().join("env")) .output() .expect("Failed to execute packed file for extraction"); From bab4334a4998c0d055f4e3959efd1e381831ebff Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 21 Aug 2024 00:33:53 -0400 Subject: [PATCH 15/83] Updated Cargo.toml and Cargo.lock --- Cargo.lock | 804 +++++++++++++++++++++++++---------------------------- Cargo.toml | 6 +- 2 files changed, 385 insertions(+), 425 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9b51db8..61f6a92 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aes" version = "0.8.4" @@ -28,18 +34,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 = "ahash" version = "0.8.11" @@ -148,12 +142,14 @@ dependencies = [ [[package]] name = "async-broadcast" -version = "0.5.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" dependencies = [ - "event-listener 2.5.3", + "event-listener 5.3.1", + "event-listener-strategy", "futures-core", + "pin-project-lite", ] [[package]] @@ -207,14 +203,13 @@ dependencies = [ [[package]] name = "async-fs" -version = "1.6.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 2.8.0", - "autocfg", + "async-lock 3.4.0", "blocking", - "futures-lite 1.13.0", + "futures-lite 2.3.0", ] [[package]] @@ -225,7 +220,7 @@ checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ "async-channel 2.3.1", "async-executor", - "async-io 2.3.3", + "async-io 2.3.4", "async-lock 3.4.0", "blocking", "futures-lite 2.3.0", @@ -254,9 +249,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.3" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ "async-lock 3.4.0", "cfg-if", @@ -264,11 +259,11 @@ dependencies = [ "futures-io", "futures-lite 2.3.0", "parking", - "polling 3.7.2", + "polling 3.7.3", "rustix 0.38.34", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -293,19 +288,22 @@ dependencies = [ [[package]] name = "async-process" -version = "1.8.1" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", + "async-channel 2.3.1", + "async-io 2.3.4", + "async-lock 3.4.0", "async-signal", + "async-task", "blocking", "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", + "event-listener 5.3.1", + "futures-lite 2.3.0", "rustix 0.38.34", - "windows-sys 0.48.0", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -316,16 +314,16 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "async-signal" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.3.3", + "async-io 2.3.4", "async-lock 3.4.0", "atomic-waker", "cfg-if", @@ -334,7 +332,7 @@ dependencies = [ "rustix 0.38.34", "signal-hook-registry", "slab", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -377,7 +375,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -402,7 +400,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.7.4", "object", "rustc-demangle", ] @@ -521,12 +519,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.7" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -535,6 +534,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.38" @@ -560,9 +565,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.13" +version = "4.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" dependencies = [ "clap_builder", "clap_derive", @@ -580,9 +585,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -599,7 +604,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -648,15 +653,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -707,7 +712,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -718,7 +723,36 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.72", + "syn 2.0.75", +] + +[[package]] +name = "dbus" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" +dependencies = [ + "libc", + "libdbus-sys", + "winapi", +] + +[[package]] +name = "dbus-secret-service" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1caa0c241c01ad8d99a78d553567d38f873dd3ac16eca33a5370d650ab25584e" +dependencies = [ + "aes", + "block-padding", + "cbc", + "dbus", + "futures-util", + "hkdf", + "num", + "once_cell", + "rand", + "sha2", ] [[package]] @@ -750,7 +784,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -793,7 +827,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -817,6 +851,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + [[package]] name = "enum_dispatch" version = "0.3.13" @@ -826,7 +866,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -847,7 +887,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -882,17 +922,6 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" -[[package]] -name = "event-listener" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - [[package]] name = "event-listener" version = "5.3.1" @@ -931,9 +960,9 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "file_url" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d1df57145d7cda57c95c44a2d64c24f579e2d50b8f4f7a779287293ad3adc0" +checksum = "5c4602b5420b868957e88e55b927d67e273c764ce9fb6def7369248862928230" dependencies = [ "itertools", "percent-encoding", @@ -944,24 +973,24 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -1106,7 +1135,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1256,7 +1285,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.3.0", + "indexmap 2.4.0", "slab", "tokio", "tokio-util", @@ -1265,9 +1294,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", "bytes", @@ -1275,7 +1304,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.3.0", + "indexmap 2.4.0", "slab", "tokio", "tokio-util", @@ -1466,7 +1495,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.5", + "h2 0.4.6", "http 1.1.0", "http-body 1.0.1", "httparse", @@ -1541,9 +1570,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" dependencies = [ "bytes", "futures-channel", @@ -1611,9 +1640,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -1701,9 +1730,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -1725,16 +1754,16 @@ dependencies = [ [[package]] name = "keyring" -version = "2.3.3" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "363387f0019d714aa60cc30ab4fe501a747f4c08fc58f069dd14be971bd495a0" +checksum = "73b9af47ded4df3067484d7d45758ca2b36bd083bf6d024c2952bbd8af1cdaa4" dependencies = [ "byteorder", - "lazy_static", - "linux-keyutils", + "dbus-secret-service", "secret-service", "security-framework", - "windows-sys 0.52.0", + "windows-sys 0.59.0", + "zbus", ] [[package]] @@ -1766,7 +1795,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1840,75 +1869,20 @@ dependencies = [ ] [[package]] -name = "lexical-core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" -dependencies = [ - "lexical-parse-float", - "lexical-parse-integer", - "lexical-util", - "lexical-write-float", - "lexical-write-integer", -] - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "lexical-write-float" -version = "0.8.5" +name = "libc" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" -dependencies = [ - "lexical-util", - "lexical-write-integer", - "static_assertions", -] +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] -name = "lexical-write-integer" -version = "0.8.5" +name = "libdbus-sys" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" dependencies = [ - "lexical-util", - "static_assertions", + "pkg-config", ] -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - [[package]] name = "libredox" version = "0.1.3" @@ -1917,16 +1891,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", -] - -[[package]] -name = "linux-keyutils" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e" -dependencies = [ - "bitflags 2.6.0", - "libc", + "redox_syscall 0.5.3", ] [[package]] @@ -2000,15 +1965,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.1" @@ -2039,11 +1995,20 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + [[package]] name = "mio" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", @@ -2076,14 +2041,15 @@ checksum = "ea2970fbbc8c785e8246234a7bd004ed66cd1ed1a35ec73669a92545e419b836" [[package]] name = "nix" -version = "0.26.4" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "cfg-if", + "cfg_aliases", "libc", - "memoffset 0.7.1", + "memoffset", ] [[package]] @@ -2203,9 +2169,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.36.2" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -2239,7 +2205,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -2386,7 +2352,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "unicase", ] @@ -2417,7 +2383,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -2434,9 +2400,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", "fastrand 2.1.0", @@ -2456,13 +2422,13 @@ dependencies = [ "indicatif", "rattler", "rattler_conda_types", - "rattler_digest 1.0.0", + "rattler_digest", "rattler_index", "rattler_lock", "rattler_networking", "rattler_package_streaming", "rattler_shell", - "reqwest 0.12.5", + "reqwest 0.12.7", "reqwest-middleware", "rstest", "serde", @@ -2502,9 +2468,9 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.2" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if", "concurrent-queue", @@ -2512,7 +2478,7 @@ dependencies = [ "pin-project-lite", "rustix 0.38.34", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2529,21 +2495,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy 0.6.6", -] - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "zerocopy", ] [[package]] @@ -2552,7 +2508,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -2581,9 +2537,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" dependencies = [ "bytes", "pin-project-lite", @@ -2591,6 +2547,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls 0.23.12", + "socket2 0.5.7", "thiserror", "tokio", "tracing", @@ -2598,9 +2555,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.3" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" +checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" dependencies = [ "bytes", "rand", @@ -2622,6 +2579,7 @@ dependencies = [ "libc", "once_cell", "socket2 0.5.7", + "tracing", "windows-sys 0.52.0", ] @@ -2666,9 +2624,9 @@ dependencies = [ [[package]] name = "rattler" -version = "0.27.2" +version = "0.27.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ad5c5d7fbab0f7180ff1266c3f63c1e1cefd0774b20f1d89e0820732c60ea9" +checksum = "70e94e9ac249e66d45f10216692c29750f39cb95f4ea701c623f0b3138c24fdb" dependencies = [ "anyhow", "digest", @@ -2676,7 +2634,7 @@ dependencies = [ "fs-err", "futures", "humantime", - "indexmap 2.3.0", + "indexmap 2.4.0", "itertools", "memchr", "memmap2", @@ -2684,13 +2642,13 @@ dependencies = [ "parking_lot", "rattler_cache", "rattler_conda_types", - "rattler_digest 0.19.5", + "rattler_digest", "rattler_networking", "rattler_package_streaming", "rattler_shell", "reflink-copy", "regex", - "reqwest 0.12.5", + "reqwest 0.12.7", "reqwest-middleware", "simple_spawn_blocking", "smallvec", @@ -2704,9 +2662,9 @@ dependencies = [ [[package]] name = "rattler_cache" -version = "0.1.4" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "890a18f5e336f9712991fd9a116c6b074839167b3135348d43d9ae89dffedd2f" +checksum = "534344446506ef7b6035b2a3d75937b8375dea7a99da6eeb3631fd478782fa34" dependencies = [ "anyhow", "digest", @@ -2715,10 +2673,10 @@ dependencies = [ "itertools", "parking_lot", "rattler_conda_types", - "rattler_digest 0.19.5", + "rattler_digest", "rattler_networking", "rattler_package_streaming", - "reqwest 0.12.5", + "reqwest 0.12.7", "reqwest-middleware", "thiserror", "tokio", @@ -2728,22 +2686,24 @@ dependencies = [ [[package]] name = "rattler_conda_types" -version = "0.26.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8a3f6f355aebb8a7af60bf5d961adce58689892d646616201d1f5daba1c525" +checksum = "d4dc7a58ae237e3f57310095033da58b37d98ce7c167bc928b0f81951279c514" dependencies = [ "chrono", + "dirs", "file_url", "fxhash", "glob", "hex", - "indexmap 2.3.0", + "indexmap 2.4.0", "itertools", "lazy-regex", "nom", "purl", - "rattler_digest 0.19.5", + "rattler_digest", "rattler_macros", + "rattler_redaction", "regex", "serde", "serde-untagged", @@ -2762,9 +2722,9 @@ dependencies = [ [[package]] name = "rattler_digest" -version = "0.19.5" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb0228f734983274fb6938844123e88aa55158d53ead37e8ae3deb641fe05aa" +checksum = "d699fe089907cc0ca66966f6b94e0dc04792a1451b2a60ba49c0abb75fba33da" dependencies = [ "blake2", "digest", @@ -2776,29 +2736,15 @@ dependencies = [ "sha2", ] -[[package]] -name = "rattler_digest" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b747092584fbc2bfef5e4f7286a0b6f81aec1bf67b537ef9f1749cb7931ac7f" -dependencies = [ - "blake2", - "digest", - "hex", - "md-5", - "serde_with", - "sha2", -] - [[package]] name = "rattler_index" -version = "0.19.21" +version = "0.19.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb638cc256c0ccb68f8faf0dad3d703a64d11834323aa746f12e54d8f2bf236e" +checksum = "665dccb14dc21342a87dcb9d095bc1d3b96e76b65e4cfda86d1e65e3b8c06c79" dependencies = [ "fs-err", "rattler_conda_types", - "rattler_digest 0.19.5", + "rattler_digest", "rattler_package_streaming", "serde_json", "tracing", @@ -2807,19 +2753,19 @@ dependencies = [ [[package]] name = "rattler_lock" -version = "0.22.16" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70241633ceba0c8d4396eaaba4c488be0b22e2a9c62639eeafff2841f604fab2" +checksum = "1ce9290c3c0a702806b74b015a5c3dd638211255379f59d261e098ffc12d98d9" dependencies = [ "chrono", "file_url", "fxhash", - "indexmap 2.3.0", + "indexmap 2.4.0", "itertools", "pep440_rs", "pep508_rs", "rattler_conda_types", - "rattler_digest 0.19.5", + "rattler_digest", "serde", "serde_repr", "serde_with", @@ -2830,19 +2776,19 @@ dependencies = [ [[package]] name = "rattler_macros" -version = "0.19.4" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4961d74ca0a15a62c83e439dfd9f440f35f8c31dfb71afe990b2d8fbf916f7a" +checksum = "18011e84fcc8dba03a4af5b70cbb99362968cdace525139df430b4f268ef58e0" dependencies = [ "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "rattler_networking" -version = "0.20.10" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fec041e559f2b4cb21556816f10b3da174932f49280f335b21563d06d2a4737" +checksum = "c53c13a325db9d307886a6a31c3c88a3126b006fe618974b528b6dcf1943ece1" dependencies = [ "anyhow", "async-trait", @@ -2856,7 +2802,7 @@ dependencies = [ "itertools", "keyring", "netrc-rs", - "reqwest 0.12.5", + "reqwest 0.12.7", "reqwest-middleware", "retry-policies", "serde", @@ -2868,18 +2814,19 @@ dependencies = [ [[package]] name = "rattler_package_streaming" -version = "0.21.7" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a65e6c6ebda42aef76886decf080450eb278bb584bebe3e11fb84b3b541b2d" +checksum = "fe4f972fe90d9ebbb055ca3cf3527d9206ff908fee1a39f880d5db209c729976" dependencies = [ "bzip2", "chrono", "futures-util", "num_cpus", "rattler_conda_types", - "rattler_digest 0.19.5", + "rattler_digest", "rattler_networking", - "reqwest 0.12.5", + "rattler_redaction", + "reqwest 0.12.7", "reqwest-middleware", "serde_json", "tar", @@ -2887,19 +2834,31 @@ dependencies = [ "thiserror", "tokio", "tokio-util", + "tracing", "url", "zip", "zstd", ] +[[package]] +name = "rattler_redaction" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b8739ebf209f017d70f4a27b2726358bade979cc3327b1765163c93a18d46f" +dependencies = [ + "reqwest 0.12.7", + "reqwest-middleware", + "url", +] + [[package]] name = "rattler_shell" -version = "0.21.3" +version = "0.21.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3017971018213c53bfdd4679542922269c8e30d235b88b1dd0bc6e25425c3437" +checksum = "470fb87026522cb8bdf914b7d044644889d62d91e18f57d3e01f90983a4d49b1" dependencies = [ "enum_dispatch", - "indexmap 2.3.0", + "indexmap 2.4.0", "itertools", "rattler_conda_types", "serde_json", @@ -2918,15 +2877,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.5.3" @@ -2938,9 +2888,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", @@ -2964,7 +2914,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -2980,9 +2930,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -3059,7 +3009,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", - "system-configuration", + "system-configuration 0.5.1", "tokio", "tokio-native-tls", "tokio-rustls 0.24.1", @@ -3069,21 +3019,21 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots 0.25.4", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "async-compression", "base64 0.22.1", "bytes", "futures-core", "futures-util", - "h2 0.4.5", + "h2 0.4.6", "http 1.1.0", "http-body 1.0.1", "http-body-util", @@ -3102,13 +3052,13 @@ dependencies = [ "quinn", "rustls 0.23.12", "rustls-native-certs", - "rustls-pemfile 2.1.2", + "rustls-pemfile 2.1.3", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration", + "system-configuration 0.6.0", "tokio", "tokio-native-tls", "tokio-rustls 0.26.0", @@ -3120,19 +3070,19 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots 0.26.3", - "winreg 0.52.0", + "windows-registry", ] [[package]] name = "reqwest-middleware" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39346a33ddfe6be00cbc17a34ce996818b97b230b87229f10114693becca1268" +checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde", "thiserror", "tower-service", @@ -3182,13 +3132,13 @@ checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d" dependencies = [ "cfg-if", "glob", - "proc-macro-crate 3.1.0", + "proc-macro-crate", "proc-macro2", "quote", "regex", "relative-path", "rustc_version", - "syn 2.0.72", + "syn 2.0.75", "unicode-ident", ] @@ -3200,9 +3150,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc_version" @@ -3268,12 +3218,12 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba" +checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.2", + "rustls-pemfile 2.1.3", "rustls-pki-types", "schannel", "security-framework", @@ -3290,9 +3240,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ "base64 0.22.1", "rustls-pki-types", @@ -3300,9 +3250,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-webpki" @@ -3373,9 +3323,9 @@ dependencies = [ [[package]] name = "secret-service" -version = "3.1.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5204d39df37f06d1944935232fd2dfe05008def7ca599bf28c0800366c8a8f9" +checksum = "e4d35ad99a181be0a60ffcbe85d680d98f87bdc4d7644ade319b87076b9dbfd4" dependencies = [ "aes", "cbc", @@ -3421,9 +3371,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] @@ -3441,22 +3391,22 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "itoa", "memchr", "ryu", @@ -3471,7 +3421,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -3496,7 +3446,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.3.0", + "indexmap 2.4.0", "serde", "serde_derive", "serde_json", @@ -3513,7 +3463,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -3522,7 +3472,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "itoa", "ryu", "serde", @@ -3716,7 +3666,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -3738,9 +3688,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" dependencies = [ "proc-macro2", "quote", @@ -3758,6 +3708,9 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] [[package]] name = "system-configuration" @@ -3767,7 +3720,18 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "system-configuration-sys 0.6.0", ] [[package]] @@ -3780,6 +3744,16 @@ dependencies = [ "libc", ] +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tar" version = "0.4.41" @@ -3793,14 +3767,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand 2.1.0", + "once_cell", "rustix 0.38.34", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3820,7 +3795,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -3881,9 +3856,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.39.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" dependencies = [ "backtrace", "bytes", @@ -3904,7 +3879,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -3983,24 +3958,13 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.3.0", - "toml_datetime", - "winnow", -] - [[package]] name = "toml_edit" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.3.0", + "indexmap 2.4.0", "toml_datetime", "winnow", ] @@ -4022,15 +3986,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -4051,7 +4015,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -4107,9 +4071,9 @@ checksum = "04645b6c01cfb2ddabffc7c67ae6bfe7c3e28a5c37d729f6bb498e784f1fd70c" [[package]] name = "typeid" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf" +checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" @@ -4123,7 +4087,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.1", + "memoffset", "tempfile", "winapi", ] @@ -4285,34 +4249,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -4322,9 +4287,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4332,22 +4297,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-streams" @@ -4364,9 +4329,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", @@ -4405,11 +4370,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4458,7 +4423,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -4469,7 +4434,18 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] @@ -4509,6 +4485,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -4649,16 +4634,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "xattr" version = "1.3.1" @@ -4672,40 +4647,37 @@ dependencies = [ [[package]] name = "xdg-home" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "zbus" -version = "3.15.2" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" +checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" dependencies = [ "async-broadcast", "async-executor", "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io 2.3.4", + "async-lock 3.4.0", "async-process", "async-recursion", "async-task", "async-trait", "blocking", - "byteorder", - "derivative", "enumflags2", - "event-listener 2.5.3", + "event-listener 5.3.1", "futures-core", "futures-sink", "futures-util", "hex", "nix", - "once_cell", "ordered-stream", "rand", "serde", @@ -4714,7 +4686,7 @@ dependencies = [ "static_assertions", "tracing", "uds_windows", - "winapi", + "windows-sys 0.52.0", "xdg-home", "zbus_macros", "zbus_names", @@ -4723,23 +4695,22 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.15.2" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5" +checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "regex", - "syn 1.0.109", + "syn 2.0.75", "zvariant_utils", ] [[package]] name = "zbus_names" -version = "2.6.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", @@ -4752,18 +4723,8 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy-derive" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", + "byteorder", + "zerocopy-derive", ] [[package]] @@ -4774,7 +4735,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -4785,16 +4746,16 @@ checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] name = "zip" -version = "2.1.6" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40dd8c92efc296286ce1fbd16657c5dbefff44f1b4ca01cc5f517d8b7b3d3e2e" +checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" dependencies = [ "arbitrary", "crc32fast", "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.3.0", + "indexmap 2.4.0", "memchr", "thiserror", "time", @@ -4826,18 +4787,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.0" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", @@ -4845,13 +4806,12 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.15.2" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db" +checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" dependencies = [ - "byteorder", + "endi", "enumflags2", - "libc", "serde", "static_assertions", "zvariant_derive", @@ -4859,24 +4819,24 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "3.15.2" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9" +checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.75", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.75", ] diff --git a/Cargo.toml b/Cargo.toml index 582a300..a496d0d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,11 +30,11 @@ futures = "0.3.30" indicatif = "0.17.8" rattler = { version = "0.27.2", default-features = false } rattler_digest = "1.0.0" -rattler_conda_types = "0.26.3" +rattler_conda_types = "0.27.2" rattler_index = "0.19.21" rattler_lock = "0.22.16" -rattler_networking = { version = "0.20.10", default-features = false } -rattler_package_streaming = { version = "0.21.7", default-features = false } +rattler_networking = { version = "0.21.2", default-features = false } +rattler_package_streaming = { version = "0.22.3", default-features = false } rattler_shell = "0.21.3" reqwest = { version = "0.12.5", default-features = false, features = [ "http2", From 2c70aa1b5fab17959f715f9bd6fd96ebf9cf07e1 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 21 Aug 2024 00:45:20 -0400 Subject: [PATCH 16/83] Fixed unpack.rs --- Cargo.lock | 36 ++++-------------------------------- src/unpack.rs | 4 ++-- 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7558545..0839074 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2425,8 +2425,8 @@ dependencies = [ "rattler_digest", "rattler_index", "rattler_lock", - "rattler_networking 0.21.1", - "rattler_package_streaming 0.21.7", + "rattler_networking", + "rattler_package_streaming", "rattler_shell", "reqwest 0.12.7", "reqwest-middleware", @@ -2812,34 +2812,6 @@ dependencies = [ "url", ] -[[package]] -name = "rattler_networking" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d635bd42b45a0446ba7cfe21ac07e6efc6016e28ef35c40f6b6e3aa22681667f" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.22.1", - "chrono", - "dirs", - "fslock", - "getrandom", - "google-cloud-auth", - "http 1.1.0", - "itertools", - "keyring", - "netrc-rs", - "reqwest 0.12.5", - "reqwest-middleware", - "retry-policies", - "serde", - "serde_json", - "thiserror", - "tracing", - "url", -] - [[package]] name = "rattler_package_streaming" version = "0.22.3" @@ -2888,7 +2860,7 @@ dependencies = [ "enum_dispatch", "indexmap 2.4.0", "itertools", - "rattler_conda_types 0.27.2", + "rattler_conda_types", "serde_json", "shlex", "tempfile", @@ -3401,7 +3373,7 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" name = "serde" version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"\ +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] diff --git a/src/unpack.rs b/src/unpack.rs index c333f72..d9e3464 100644 --- a/src/unpack.rs +++ b/src/unpack.rs @@ -47,11 +47,11 @@ pub async fn unpack(options: UnpackOptions) -> Result<()> { tracing::info!("Unarchiving pack to {}", unpack_dir.display()); if options.pack_file.extension().unwrap_or_default() == "sh" { - unarchive_from_shellscript(&options.pack_file, &unpack_dir) + unarchive_from_shellscript(&options.pack_file, unpack_dir) .await .map_err(|e| anyhow!("Could not extract archive from shell script: {}", e))?; } else { - unarchive(&options.pack_file, &unpack_dir) + unarchive(&options.pack_file, unpack_dir) .await .map_err(|e| anyhow!("Could not unarchive: {}", e))?; } From aeb88737df43c6ac8abba26645bb17b878c9ded9 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Thu, 22 Aug 2024 15:58:26 -0400 Subject: [PATCH 17/83] Revert "Merge branch 'main' into selfexec_support" This reverts commit 959188336e280f75de58f26073207c72bd0b0646, reversing changes made to 2c70aa1b5fab17959f715f9bd6fd96ebf9cf07e1. --- .github/workflows/chore.yml | 2 +- .github/workflows/ci.yml | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/chore.yml b/.github/workflows/chore.yml index 536315e..475d55b 100644 --- a/.github/workflows/chore.yml +++ b/.github/workflows/chore.yml @@ -1,7 +1,7 @@ name: Chore on: pull_request: - branches: [main, selfexec_support] + branches: [main] types: [opened, reopened, edited, synchronize] concurrency: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c1240ab..b7cba19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,7 @@ name: CI on: - merge_group: pull_request: - push: - branches: - - main - - selfexec_support - + merge_group: # Automatically stop old builds on the same branch/PR concurrency: From 0137e5b06ac8da7030bf878a4134fa9a5feadd1e Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Thu, 22 Aug 2024 16:49:24 -0400 Subject: [PATCH 18/83] Fixed cargo.toml and added support for windows --- build.rs | 2 ++ extractor/Cargo.toml | 16 ++++++++-------- src/pack.rs | 3 +++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/build.rs b/build.rs index 9178de4..b698501 100644 --- a/build.rs +++ b/build.rs @@ -9,6 +9,8 @@ fn main() { "--release", "--manifest-path", &format!("{}/Cargo.toml", extractor_path), + "--target-dir", + "extractor/target", ]) .status() .expect("Failed to build extractor"); diff --git a/extractor/Cargo.toml b/extractor/Cargo.toml index 1e1150f..4e94963 100644 --- a/extractor/Cargo.toml +++ b/extractor/Cargo.toml @@ -6,14 +6,14 @@ edition = "2021" [dependencies] anyhow = "1.*" futures = "0.3.30" -rattler = { version = "0.27.2", default-features = false } -rattler_digest = "1.0.0" -rattler_conda_types = "0.26.3" -rattler_index = "0.19.21" -rattler_lock = "0.22.16" -rattler_networking = { version = "0.20.10", default-features = false } -rattler_package_streaming = { version = "0.21.7", default-features = false } -rattler_shell = "0.21.3" +rattler = { version = "0.27.5", default-features = false } +rattler_digest = "1.0.1" +rattler_conda_types = "0.27.2" +rattler_index = "0.19.24" +rattler_lock = "0.22.19" +rattler_networking = { version = "0.21.2", default-features = false } +rattler_package_streaming = { version = "0.22.3", default-features = false } +rattler_shell = "0.21.6" reqwest = { version = "0.12.5", default-features = false, features = [ "http2", "macos-system-configuration", diff --git a/src/pack.rs b/src/pack.rs index 5d788cc..ae17658 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -332,6 +332,9 @@ async fn create_self_extracting_executable(input_dir: &Path, target: &Path) -> R let executable_path = target.with_extension("sh"); // Add the binary of extractor to the final executable + #[cfg(windows)] + const EXTRACTOR: &[u8] = include_bytes!("../extractor/target/release/extractor.exe"); + #[cfg(not(windows))] const EXTRACTOR: &[u8] = include_bytes!("../extractor/target/release/extractor"); let mut final_executable = File::create(&executable_path) From 04b3a457d2adeccf82a0c2915b66783b5d4d244d Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sat, 31 Aug 2024 13:49:55 -0400 Subject: [PATCH 19/83] Adding tests --- extractor/Cargo.toml | 3 ++ extractor/src/main.rs | 81 +++++++++++++++++++++++++++++++++++++++ pixi.toml | 4 +- tests/integration_test.rs | 5 +-- 4 files changed, 88 insertions(+), 5 deletions(-) diff --git a/extractor/Cargo.toml b/extractor/Cargo.toml index 4e94963..8811653 100644 --- a/extractor/Cargo.toml +++ b/extractor/Cargo.toml @@ -27,3 +27,6 @@ tokio-stream = { version = "0.1.15", features = ["fs"] } url = "2.5.2" fxhash = "0.2.1" tempfile = "3.10.1" + +[dev-dependencies] +rstest = "0.22.0" diff --git a/extractor/src/main.rs b/extractor/src/main.rs index adb69b9..d940bff 100644 --- a/extractor/src/main.rs +++ b/extractor/src/main.rs @@ -229,3 +229,84 @@ async fn create_activation_script(destination: &Path, prefix: &Path) -> Result<( Ok(()) } + +/* --------------------------------------------------------------------------------------------- */ +/* TESTS */ +/* --------------------------------------------------------------------------------------------- */ +#[cfg(test)] +mod tests { + use super::*; + use rstest::*; + use serde_json::json; + use std::io::Write; + use tempfile::NamedTempFile; + + fn other_platform() -> Platform { + match Platform::current() { + Platform::Linux64 => Platform::Win64, + _ => Platform::Linux64, + } + } + + #[fixture] + fn metadata_file( + #[default(std::env::var("PIXI_PACK_DEFAULT_VERSION").unwrap())] version: String, + #[default(Platform::current())] platform: Platform, + ) -> NamedTempFile { + let mut metadata_file = NamedTempFile::new().unwrap(); + let metadata = PixiPackMetadata { version, platform }; + let buffer = metadata_file.as_file_mut(); + buffer + .write_all(json!(metadata).to_string().as_bytes()) + .unwrap(); + metadata_file + } + + #[rstest] + #[tokio::test] + async fn test_metadata_file_valid(metadata_file: NamedTempFile) { + assert!(validate_metadata_file(metadata_file.path().to_path_buf()) + .await + .is_ok()) + } + + #[rstest] + #[tokio::test] + async fn test_metadata_file_empty() { + assert!( + validate_metadata_file(NamedTempFile::new().unwrap().path().to_path_buf()) + .await + .is_err() + ) + } + + #[rstest] + #[tokio::test] + async fn test_metadata_file_non_existent() { + assert!(validate_metadata_file(PathBuf::new()).await.is_err()) + } + + #[rstest] + #[tokio::test] + async fn test_metadata_file_invalid_version( + #[with("v0".to_string())] metadata_file: NamedTempFile, + ) { + let result = validate_metadata_file(metadata_file.path().to_path_buf()).await; + let error = result.unwrap_err(); + assert_eq!(error.to_string(), "Unsupported pixi-pack version: v0"); + } + + #[rstest] + #[tokio::test] + async fn test_metadata_file_wrong_platform( + #[with(std::env::var("PIXI_PACK_DEFAULT_VERSION").unwrap(), other_platform())] + metadata_file: NamedTempFile, + ) { + let result = validate_metadata_file(metadata_file.path().to_path_buf()).await; + let error = result.unwrap_err(); + assert_eq!( + error.to_string(), + "The pack was created for a different platform" + ); + } +} diff --git a/pixi.toml b/pixi.toml index 79b8e75..5686dd8 100644 --- a/pixi.toml +++ b/pixi.toml @@ -5,7 +5,9 @@ platforms = ["osx-arm64", "osx-64", "linux-64", "linux-aarch64", "win-64"] [tasks] build = "cargo build --release" -test = "cargo test" +test-pixi-pack = "cargo test" +test-extractor = { cmd = "cargo test --manifest-path extractor/Cargo.toml", env = { PIXI_PACK_DEFAULT_VERSION = "1" } } +test = { depends-on = ["test-pixi-pack", "test-extractor"] } [dependencies] rust = "1.77.2" diff --git a/tests/integration_test.rs b/tests/integration_test.rs index ef978d0..f8f96b3 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -210,7 +210,7 @@ async fn test_compatibility( let pack_file = options.unpack_options.pack_file.clone(); let pack_result = pixi_pack::pack(pack_options).await; - println!("{:?}", pack_result); + assert!(pack_result.is_ok(), "{:?}", pack_result); assert!(pack_file.is_file()); assert!(pack_file.exists()); @@ -349,9 +349,6 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& assert!(output.status.success(), "Extraction failed: {:?}", output); - let stdout = String::from_utf8_lossy(&output.stdout); - eprintln!("{:?}", stdout); - let env_dir = options.output_dir.path().join("env"); assert!( env_dir.exists(), From 62ec962e175e2dfc3f37891e6fa35834c3cae9f5 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Thu, 5 Sep 2024 12:21:16 -0400 Subject: [PATCH 20/83] Fixed merge conflict --- Cargo.lock | 46 +++----------------------------------------- extractor/Cargo.toml | 4 ++-- 2 files changed, 5 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4ce75d1..0464c95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -755,35 +755,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "dbus" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - -[[package]] -name = "dbus-secret-service" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1caa0c241c01ad8d99a78d553567d38f873dd3ac16eca33a5370d650ab25584e" -dependencies = [ - "aes", - "block-padding", - "cbc", - "dbus", - "futures-util", - "hkdf", - "num", - "once_cell", - "rand", - "sha2", -] - [[package]] name = "deranged" version = "0.3.11" @@ -4477,17 +4448,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets 0.52.6", -] - [[package]] name = "windows-result" version = "0.2.0" @@ -4742,7 +4702,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.75", "zvariant_utils", ] @@ -4866,7 +4826,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.75", "zvariant_utils", ] @@ -4878,5 +4838,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.75", ] diff --git a/extractor/Cargo.toml b/extractor/Cargo.toml index 8811653..a335285 100644 --- a/extractor/Cargo.toml +++ b/extractor/Cargo.toml @@ -10,8 +10,8 @@ rattler = { version = "0.27.5", default-features = false } rattler_digest = "1.0.1" rattler_conda_types = "0.27.2" rattler_index = "0.19.24" -rattler_lock = "0.22.19" -rattler_networking = { version = "0.21.2", default-features = false } +rattler_lock = "0.22.20" +rattler_networking = { version = "0.21.1", default-features = false } rattler_package_streaming = { version = "0.22.3", default-features = false } rattler_shell = "0.21.6" reqwest = { version = "0.12.5", default-features = false, features = [ From b7abd97caf727928c78580a114c55c9dc54f94ca Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Thu, 5 Sep 2024 21:02:03 -0400 Subject: [PATCH 21/83] Update dependencies --- extractor/Cargo.toml | 14 +++++++------- extractor/src/main.rs | 34 +++++++++++++++++++--------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/extractor/Cargo.toml b/extractor/Cargo.toml index a335285..f952b83 100644 --- a/extractor/Cargo.toml +++ b/extractor/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] anyhow = "1.*" futures = "0.3.30" -rattler = { version = "0.27.5", default-features = false } +rattler = { version = "0.27.6", default-features = false } rattler_digest = "1.0.1" rattler_conda_types = "0.27.2" rattler_index = "0.19.24" @@ -14,19 +14,19 @@ rattler_lock = "0.22.20" rattler_networking = { version = "0.21.1", default-features = false } rattler_package_streaming = { version = "0.22.3", default-features = false } rattler_shell = "0.21.6" -reqwest = { version = "0.12.5", default-features = false, features = [ +reqwest = { version = "0.12.7", default-features = false, features = [ "http2", "macos-system-configuration", ] } -reqwest-middleware = "0.3.2" -serde = { version = "1.0.204", features = ["derive"] } -serde_json = "1.0.121" +reqwest-middleware = "0.3.3" +serde = { version = "1.0.209", features = ["derive"] } +serde_json = "1.0.127" serde_yaml = "0.9.34" -tokio = { version = "1.39.2", features = ["rt-multi-thread"] } +tokio = { version = "1.40.0", features = ["rt-multi-thread"] } tokio-stream = { version = "0.1.15", features = ["fs"] } url = "2.5.2" fxhash = "0.2.1" -tempfile = "3.10.1" +tempfile = "3.12.0" [dev-dependencies] rstest = "0.22.0" diff --git a/extractor/src/main.rs b/extractor/src/main.rs index d940bff..dbd28d6 100644 --- a/extractor/src/main.rs +++ b/extractor/src/main.rs @@ -6,7 +6,7 @@ use tokio_stream::wrappers::ReadDirStream; use anyhow::anyhow; use anyhow::Result; -use futures::{stream, StreamExt, TryStreamExt}; +use futures::{stream, StreamExt, TryFutureExt, TryStreamExt}; use rattler::{ install::Installer, package_cache::{CacheKey, PackageCache}, @@ -60,11 +60,12 @@ async fn main() -> Result<()> { /// Unpack a pixi environment from a directory pub async fn unpack(archive_dir: &Path, output_dir: &Path) -> Result<()> { let channel_directory = archive_dir.join(std::env::var("PIXI_PACK_CHANNEL_DIRECTORY").unwrap()); + let cache_dir = archive_dir.join("cache"); validate_metadata_file(archive_dir.join(std::env::var("PIXI_PACK_METADATA_PATH").unwrap())) .await?; - create_prefix(&channel_directory, output_dir) + create_prefix(&channel_directory, output_dir, &cache_dir) .await .map_err(|e| anyhow!("Could not create prefix: {}", e))?; @@ -136,20 +137,16 @@ async fn collect_packages(channel_dir: &Path) -> Result Result<()> { +async fn create_prefix(channel_dir: &Path, target_prefix: &Path, cache_dir: &Path) -> Result<()> { let packages = collect_packages(channel_dir) .await .map_err(|e| anyhow!("could not collect packages: {}", e))?; - let cache_dir = tempfile::tempdir() - .map_err(|e| anyhow!("could not create temporary directory: {}", e))? - .into_path(); - eprintln!( - "⏳ Extracting and installing {} packages...", - packages.len() + "⏳ Extracting and installing {} packages to {}...", + packages.len(), + cache_dir.display() ); - // extract packages to cache let package_cache = PackageCache::new(cache_dir); @@ -175,13 +172,20 @@ async fn create_prefix(channel_dir: &Path, target_prefix: &Path) -> Result<()> { package_cache .get_or_fetch( cache_key, - |destination| async move { - extract(&package_path, &destination).map(|_| ()) + move |destination| { + let package_path_clone = package_path.clone(); + async move { extract(&package_path_clone, &destination).map(|_| ()) } }, None, ) .await - .map_err(|e| anyhow!("could not extract package: {}", e))?; + .map_err(|e| { + anyhow!( + "could not extract \"{}\": {}", + repodata_record.as_ref().name.as_source(), + e + ) + })?; Ok::(repodata_record) } @@ -204,8 +208,8 @@ async fn create_prefix(channel_dir: &Path, target_prefix: &Path) -> Result<()> { history_path, "// not relevant for pixi but for `conda run -p`", ) - .await - .map_err(|e| anyhow!("Could not write history file: {}", e))?; + .map_err(|e| anyhow!("Could not write history file: {}", e)) + .await?; Ok(()) } From 89a242d68b0c07a74970d538fc4a87211ca6a581 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Fri, 20 Sep 2024 01:50:23 -0400 Subject: [PATCH 22/83] added download to pack --- Cargo.toml | 1 - build.rs | 21 -- examples/webserver/my_webserver/__init__.py | 8 - extractor/Cargo.toml | 32 -- extractor/src/main.rs | 316 -------------------- src/header.sh | 63 ++-- src/pack.rs | 72 +++-- src/unpack.rs | 29 +- 8 files changed, 88 insertions(+), 454 deletions(-) delete mode 100644 build.rs delete mode 100644 examples/webserver/my_webserver/__init__.py delete mode 100644 extractor/Cargo.toml delete mode 100644 extractor/src/main.rs diff --git a/Cargo.toml b/Cargo.toml index 54cf706..f974dcb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,6 @@ name = "pixi-pack" description = "A command line tool to pack and unpack conda environments for easy sharing" version = "0.1.8" edition = "2021" -build = "build.rs" [features] default = ["native-tls"] diff --git a/build.rs b/build.rs deleted file mode 100644 index b698501..0000000 --- a/build.rs +++ /dev/null @@ -1,21 +0,0 @@ -use std::process::Command; - -fn main() { - let extractor_path = "./extractor"; - - let status = Command::new("cargo") - .args([ - "build", - "--release", - "--manifest-path", - &format!("{}/Cargo.toml", extractor_path), - "--target-dir", - "extractor/target", - ]) - .status() - .expect("Failed to build extractor"); - - if !status.success() { - panic!("Failed to compile the extractor project."); - } -} diff --git a/examples/webserver/my_webserver/__init__.py b/examples/webserver/my_webserver/__init__.py deleted file mode 100644 index 52f0d71..0000000 --- a/examples/webserver/my_webserver/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from fastapi import FastAPI - -app = FastAPI() - - -@app.get("/") -def hello(): - return "Hello, World!" diff --git a/extractor/Cargo.toml b/extractor/Cargo.toml deleted file mode 100644 index f952b83..0000000 --- a/extractor/Cargo.toml +++ /dev/null @@ -1,32 +0,0 @@ -[package] -name = "extractor" -version = "0.1.0" -edition = "2021" - -[dependencies] -anyhow = "1.*" -futures = "0.3.30" -rattler = { version = "0.27.6", default-features = false } -rattler_digest = "1.0.1" -rattler_conda_types = "0.27.2" -rattler_index = "0.19.24" -rattler_lock = "0.22.20" -rattler_networking = { version = "0.21.1", default-features = false } -rattler_package_streaming = { version = "0.22.3", default-features = false } -rattler_shell = "0.21.6" -reqwest = { version = "0.12.7", default-features = false, features = [ - "http2", - "macos-system-configuration", -] } -reqwest-middleware = "0.3.3" -serde = { version = "1.0.209", features = ["derive"] } -serde_json = "1.0.127" -serde_yaml = "0.9.34" -tokio = { version = "1.40.0", features = ["rt-multi-thread"] } -tokio-stream = { version = "0.1.15", features = ["fs"] } -url = "2.5.2" -fxhash = "0.2.1" -tempfile = "3.12.0" - -[dev-dependencies] -rstest = "0.22.0" diff --git a/extractor/src/main.rs b/extractor/src/main.rs deleted file mode 100644 index dbd28d6..0000000 --- a/extractor/src/main.rs +++ /dev/null @@ -1,316 +0,0 @@ -use std::path::{Path, PathBuf}; - -use fxhash::FxHashMap; -use tokio::fs; -use tokio_stream::wrappers::ReadDirStream; - -use anyhow::anyhow; -use anyhow::Result; -use futures::{stream, StreamExt, TryFutureExt, TryStreamExt}; -use rattler::{ - install::Installer, - package_cache::{CacheKey, PackageCache}, -}; -use rattler_conda_types::{PackageRecord, Platform, RepoData, RepoDataRecord}; -use rattler_package_streaming::fs::extract; -use rattler_shell::{ - activation::{ActivationVariables, Activator, PathModificationBehavior}, - shell::{Shell, ShellEnum}, -}; -use serde::{Deserialize, Serialize}; -use url::Url; - -/// The metadata for a "pixi-pack". -#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] -pub struct PixiPackMetadata { - /// The pack format version. - pub version: String, - /// The platform the pack was created for. - pub platform: Platform, -} - -#[tokio::main] -async fn main() -> Result<()> { - let args: Vec = std::env::args().collect(); - if args.len() != 4 { - return Err(anyhow!( - "Usage: {} ", - args[0] - )); - } - - let task = &args[1]; - let input_dir = Path::new(&args[2]); - let output_dir = Path::new(&args[3]); - - if task == "unpack" { - unpack(input_dir, output_dir).await?; - } else if task == "create-script" { - create_activation_script(input_dir, output_dir).await?; - } else { - return Err(anyhow!( - "Unknown task: {}. Task should be either 'unpack' or 'create-script'", - task - )); - } - - Ok(()) -} - -/// Unpack a pixi environment from a directory -pub async fn unpack(archive_dir: &Path, output_dir: &Path) -> Result<()> { - let channel_directory = archive_dir.join(std::env::var("PIXI_PACK_CHANNEL_DIRECTORY").unwrap()); - let cache_dir = archive_dir.join("cache"); - - validate_metadata_file(archive_dir.join(std::env::var("PIXI_PACK_METADATA_PATH").unwrap())) - .await?; - - create_prefix(&channel_directory, output_dir, &cache_dir) - .await - .map_err(|e| anyhow!("Could not create prefix: {}", e))?; - - Ok(()) -} - -async fn collect_packages_in_subdir(subdir: PathBuf) -> Result> { - let repodata = subdir.join("repodata.json"); - - let raw_repodata_json = fs::read_to_string(repodata) - .await - .map_err(|e| anyhow!("could not read repodata in subdir: {}", e))?; - - let repodata: RepoData = serde_json::from_str(&raw_repodata_json).map_err(|e| { - anyhow!( - "could not parse repodata in subdir {}: {}", - subdir.display(), - e - ) - })?; - - let mut conda_packages = repodata.conda_packages; - let packages = repodata.packages; - conda_packages.extend(packages); - Ok(conda_packages) -} - -async fn validate_metadata_file(metadata_file: PathBuf) -> Result<()> { - let metadata_contents = fs::read_to_string(&metadata_file) - .await - .map_err(|e| anyhow!("Could not read metadata file: {}", e))?; - - let metadata: PixiPackMetadata = serde_json::from_str(&metadata_contents)?; - - if metadata.version != std::env::var("PIXI_PACK_DEFAULT_VERSION").unwrap() { - anyhow::bail!("Unsupported pixi-pack version: {}", metadata.version); - } - if metadata.platform != Platform::current() { - anyhow::bail!("The pack was created for a different platform"); - } - - Ok(()) -} - -/// Collect all packages in a directory. -async fn collect_packages(channel_dir: &Path) -> Result> { - let subdirs = fs::read_dir(channel_dir) - .await - .map_err(|e| anyhow!("could not read channel directory: {}", e))?; - - let stream = ReadDirStream::new(subdirs); - - let packages = stream - .try_filter_map(|entry| async move { - let path = entry.path(); - - if path.is_dir() { - Ok(Some(path)) - } else { - Ok(None) // Ignore non-directory entries - } - }) - .map_ok(collect_packages_in_subdir) - .map_err(|e| anyhow!("could not read channel directory: {}", e)) - .try_buffer_unordered(10) - .try_concat() - .await?; - - Ok(packages) -} - -async fn create_prefix(channel_dir: &Path, target_prefix: &Path, cache_dir: &Path) -> Result<()> { - let packages = collect_packages(channel_dir) - .await - .map_err(|e| anyhow!("could not collect packages: {}", e))?; - - eprintln!( - "⏳ Extracting and installing {} packages to {}...", - packages.len(), - cache_dir.display() - ); - // extract packages to cache - let package_cache = PackageCache::new(cache_dir); - - let repodata_records: Vec = stream::iter(packages) - .map(|(file_name, package_record)| { - let cache_key = CacheKey::from(&package_record); - - let package_path = channel_dir.join(&package_record.subdir).join(&file_name); - - let url = Url::parse(&format!("file:///{}", file_name)).unwrap(); - - let repodata_record = RepoDataRecord { - package_record, - file_name, - url, - channel: "local".to_string(), - }; - - async { - // We have to prepare the package cache by inserting all packages into it. - // We can only do so by calling `get_or_fetch` on each package, which will - // use the provided closure to fetch the package and insert it into the cache. - package_cache - .get_or_fetch( - cache_key, - move |destination| { - let package_path_clone = package_path.clone(); - async move { extract(&package_path_clone, &destination).map(|_| ()) } - }, - None, - ) - .await - .map_err(|e| { - anyhow!( - "could not extract \"{}\": {}", - repodata_record.as_ref().name.as_source(), - e - ) - })?; - - Ok::(repodata_record) - } - }) - .buffer_unordered(50) - .try_collect() - .await?; - - // Invariant: all packages are in the cache - let installer = Installer::default(); - installer - .with_package_cache(package_cache) - .install(&target_prefix, repodata_records) - .await - .map_err(|e| anyhow!("could not install packages: {}", e))?; - - let history_path = target_prefix.join("conda-meta").join("history"); - - fs::write( - history_path, - "// not relevant for pixi but for `conda run -p`", - ) - .map_err(|e| anyhow!("Could not write history file: {}", e)) - .await?; - - Ok(()) -} - -async fn create_activation_script(destination: &Path, prefix: &Path) -> Result<()> { - let shell = ShellEnum::default(); - let file_extension = shell.extension(); - let activate_path = destination.join(format!("activate.{}", file_extension)); - let activator = Activator::from_path(prefix, shell, Platform::current())?; - - let result = activator.activation(ActivationVariables { - conda_prefix: None, - path: None, - path_modification_behavior: PathModificationBehavior::Prepend, - })?; - - let contents = result.script.contents()?; - fs::write(activate_path, contents) - .await - .map_err(|e| anyhow!("Could not write activate script: {}", e))?; - - Ok(()) -} - -/* --------------------------------------------------------------------------------------------- */ -/* TESTS */ -/* --------------------------------------------------------------------------------------------- */ -#[cfg(test)] -mod tests { - use super::*; - use rstest::*; - use serde_json::json; - use std::io::Write; - use tempfile::NamedTempFile; - - fn other_platform() -> Platform { - match Platform::current() { - Platform::Linux64 => Platform::Win64, - _ => Platform::Linux64, - } - } - - #[fixture] - fn metadata_file( - #[default(std::env::var("PIXI_PACK_DEFAULT_VERSION").unwrap())] version: String, - #[default(Platform::current())] platform: Platform, - ) -> NamedTempFile { - let mut metadata_file = NamedTempFile::new().unwrap(); - let metadata = PixiPackMetadata { version, platform }; - let buffer = metadata_file.as_file_mut(); - buffer - .write_all(json!(metadata).to_string().as_bytes()) - .unwrap(); - metadata_file - } - - #[rstest] - #[tokio::test] - async fn test_metadata_file_valid(metadata_file: NamedTempFile) { - assert!(validate_metadata_file(metadata_file.path().to_path_buf()) - .await - .is_ok()) - } - - #[rstest] - #[tokio::test] - async fn test_metadata_file_empty() { - assert!( - validate_metadata_file(NamedTempFile::new().unwrap().path().to_path_buf()) - .await - .is_err() - ) - } - - #[rstest] - #[tokio::test] - async fn test_metadata_file_non_existent() { - assert!(validate_metadata_file(PathBuf::new()).await.is_err()) - } - - #[rstest] - #[tokio::test] - async fn test_metadata_file_invalid_version( - #[with("v0".to_string())] metadata_file: NamedTempFile, - ) { - let result = validate_metadata_file(metadata_file.path().to_path_buf()).await; - let error = result.unwrap_err(); - assert_eq!(error.to_string(), "Unsupported pixi-pack version: v0"); - } - - #[rstest] - #[tokio::test] - async fn test_metadata_file_wrong_platform( - #[with(std::env::var("PIXI_PACK_DEFAULT_VERSION").unwrap(), other_platform())] - metadata_file: NamedTempFile, - ) { - let result = validate_metadata_file(metadata_file.path().to_path_buf()).await; - let error = result.unwrap_err(); - assert_eq!( - error.to_string(), - "The pack was created for a different platform" - ); - } -} diff --git a/src/header.sh b/src/header.sh index b28ca27..cf9599b 100644 --- a/src/header.sh +++ b/src/header.sh @@ -21,11 +21,10 @@ Unpacks an environment packed with pixi-pack -f no error if environment already exists -h print this help message and exit -p ENV environment prefix, defaults to $PREFIX --i INSTALLER create the environment using the specified installer defaulting to $INSTALLER -a create an activation script to activate the environment " -while getopts ":fhai:p:" x; do +while getopts ":fha:p:" x; do case "$x" in f) FORCE=1 @@ -33,9 +32,6 @@ while getopts ":fhai:p:" x; do p) PREFIX="$OPTARG" ;; - i) - INSTALLER="$OPTARG" - ;; a) CREATE_ACTIVATION_SCRIPT=true ;; @@ -46,11 +42,6 @@ while getopts ":fhai:p:" x; do esac done -if [ "$INSTALLER" != "rattler" ] && [ "$INSTALLER" != "conda" ] && [ "$INSTALLER" != "micromamba" ]; then - echo "ERROR: Invalid installer: '$INSTALLER'" >&2 - exit 1 -fi - if [ "$FORCE" = "0" ] && [ -e "$PREFIX" ]; then echo "ERROR: File or directory already exists: '$PREFIX'" >&2 echo "If you want to update an existing environment, use the -f option." >&2 @@ -78,41 +69,23 @@ tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1)) | echo "Creating environment using $INSTALLER" -if [ "$INSTALLER" = "rattler" ]; then - ( - ls $TEMPDIR - - export PIXI_PACK_CHANNEL_DIRECTORY=$PIXI_PACK_CHANNEL_DIRECTORY - export PIXI_PACK_METADATA_PATH=$PIXI_PACK_METADATA_PATH - export PIXI_PACK_DEFAULT_VERSION=$PIXI_PACK_DEFAULT_VERSION - - rattler_start=$(($archive_end + 2)) - - tail -n +$rattler_start "$0" > "$TEMPDIR/rattler" - chmod +x "$TEMPDIR/rattler" - - "$TEMPDIR/rattler" "unpack" "$TEMPDIR" "$PREFIX" - echo "Environment created at $PREFIX" - - if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then - "$TEMPDIR/rattler" "create-script" "$PARENT_DIR" "$PREFIX" - echo "Activation script created at $PARENT_DIR/activate.sh" - fi - ) -elif [ "$INSTALLER" = "conda" ]; then - cd $TEMPDIR - conda env create -p $PREFIX --file environment.yml - echo "Environment created at $PREFIX" -elif [ "$INSTALLER" = "micromamba" ]; then - cd $TEMPDIR - micromamba create -p $PREFIX --file environment.yml - - echo "Environment created at $PREFIX" - - if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then - micromamba shell activate -p $PREFIX > $PARENTDIR/activate.sh - echo "Activation script created at $PARENTDIR/activate.sh" - fi +ls $TEMPDIR + +export PIXI_PACK_CHANNEL_DIRECTORY=$PIXI_PACK_CHANNEL_DIRECTORY +export PIXI_PACK_METADATA_PATH=$PIXI_PACK_METADATA_PATH +export PIXI_PACK_DEFAULT_VERSION=$PIXI_PACK_DEFAULT_VERSION + +pixi_pack_start=$(($archive_end + 2)) + +tail -n +$pixi_pack_start "$0" > "$TEMPDIR/pixi-pack" +chmod +x "$TEMPDIR/pixi-pack" + +"$TEMPDIR/pixi-pack" "unpack" "$TEMPDIR" "$PREFIX" +echo "Environment created at $PREFIX" + +if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then + "$TEMPDIR/pixi-pack" "create-script" "$PARENT_DIR" "$PREFIX" + echo "Activation script created at $PARENT_DIR/activate.sh" fi cd $PARENT_DIR diff --git a/src/pack.rs b/src/pack.rs index ae17658..e93ad70 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -177,6 +177,7 @@ pub async fn pack(options: PackOptions) -> Result<()> { output_folder.path(), &options.output_file, options.create_executable, + options.platform, ) .await .map_err(|e| anyhow!("could not archive directory: {}", e))?; @@ -253,10 +254,11 @@ async fn archive_directory( input_dir: &Path, archive_target: &Path, create_executable: bool, + platform: Platform, ) -> Result<()> { if create_executable { eprintln!("📦 Creating self-extracting executable"); - create_self_extracting_executable(input_dir, archive_target).await + create_self_extracting_executable(input_dir, archive_target, platform).await } else { create_tarball(input_dir, archive_target).await } @@ -292,7 +294,11 @@ async fn create_tarball(input_dir: &Path, archive_target: &Path) -> Result<()> { Ok(()) } -async fn create_self_extracting_executable(input_dir: &Path, target: &Path) -> Result<()> { +async fn create_self_extracting_executable( + input_dir: &Path, + target: &Path, + platform: Platform, +) -> Result<()> { let tarbytes = Vec::new(); let mut archive = Builder::new(tarbytes); @@ -331,11 +337,52 @@ async fn create_self_extracting_executable(input_dir: &Path, target: &Path) -> R let executable_path = target.with_extension("sh"); - // Add the binary of extractor to the final executable - #[cfg(windows)] - const EXTRACTOR: &[u8] = include_bytes!("../extractor/target/release/extractor.exe"); - #[cfg(not(windows))] - const EXTRACTOR: &[u8] = include_bytes!("../extractor/target/release/extractor"); + // Determine the target OS and architecture + let (os, arch) = match platform { + Platform::Linux64 => ("unknown-linux-musl", "x86_64"), + Platform::LinuxAarch64 => ("unknown-linux-musl", "aarch64"), + Platform::Osx64 => ("apple-darwin", "x86_64"), + Platform::OsxArm64 => ("apple-darwin", "aarch64"), + Platform::Win64 => ("pc-windows-msvc", "x86_64"), + Platform::WinArm64 => ("pc-windows-msvc", "aarch64"), + _ => return Err(anyhow!("Unsupported platform: {}", platform)), + }; + + let executable_name = format!("pixi-pack-{}-{}", arch, os); + let extension = if os.contains("windows") { ".exe" } else { "" }; + + let version = env!("CARGO_PKG_VERSION"); + let url = format!( + "https://github.com/Quantco/pixi-pack/releases/download/v{}/{}{}", + version, executable_name, extension + ); + + eprintln!("📥 Downloading pixi-pack executable..."); + let client = reqwest::Client::new(); + let response = client.get(&url).send().await?; + if !response.status().is_success() { + return Err(anyhow!("Failed to download pixi-pack executable")); + } + + let total_size = response + .content_length() + .ok_or_else(|| anyhow!("Failed to get content length"))?; + + let bar = ProgressReporter::new(total_size); + bar.pb.set_message("Downloading"); + + let mut executable_bytes = Vec::new(); + let mut stream = response.bytes_stream(); + + while let Some(chunk) = stream.next().await { + let chunk = chunk?; + executable_bytes.extend_from_slice(&chunk); + bar.pb.inc(chunk.len() as u64); + } + + bar.pb.finish_with_message("Download complete"); + + eprintln!("✅ Pixi-pack executable downloaded successfully"); let mut final_executable = File::create(&executable_path) .await @@ -346,16 +393,7 @@ async fn create_self_extracting_executable(input_dir: &Path, target: &Path) -> R final_executable.write_all(&compressor).await?; final_executable.write_all(b"\n").await?; final_executable.write_all(b"@@END_ARCHIVE@@\n").await?; - final_executable.write_all(EXTRACTOR).await?; - - // Make the file executable - #[cfg(unix)] - { - use std::os::unix::fs::PermissionsExt; - let mut perms = fs::metadata(&executable_path).await?.permissions(); - perms.set_mode(0o755); - fs::set_permissions(&executable_path, perms).await?; - } + final_executable.write_all(&executable_bytes).await?; Ok(()) } diff --git a/src/unpack.rs b/src/unpack.rs index 55fb479..8f50410 100644 --- a/src/unpack.rs +++ b/src/unpack.rs @@ -249,21 +249,22 @@ async fn create_prefix(channel_dir: &Path, target_prefix: &Path, cache_dir: &Pat // We can only do so by calling `get_or_fetch` on each package, which will // use the provided closure to fetch the package and insert it into the cache. package_cache - .get_or_fetch( - cache_key, - |destination| async move { - extract(&package_path, &destination).map(|_| ()) - }, - None, + .get_or_fetch( + cache_key, + move |destination| { + let package_path_clone = package_path.clone(); + async move { extract(&package_path_clone, &destination).map(|_| ()) } + }, + None, + ) + .await + .map_err(|e| { + anyhow!( + "could not extract \"{}\": {}", + repodata_record.as_ref().name.as_source(), + e ) - .await - .map_err(|e| { - anyhow!( - "could not extract \"{}\": {}", - repodata_record.as_ref().name.as_source(), - e - ) - })?; + })?; reporter.pb.inc(1); Ok::(repodata_record) From 1bf7523065c5537b1142356b4bc5e621a23a6466 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sat, 21 Sep 2024 20:53:05 -0400 Subject: [PATCH 23/83] Added windows support --- .pre-commit-config.yaml | 2 +- Cargo.lock | 1 + Cargo.toml | 1 + src/header.ps1 | 95 +++++++++++++++++++++++++++ src/header.sh | 141 +++++++++++++++++++++++----------------- src/main.rs | 30 +++------ src/pack.rs | 49 +++++++------- 7 files changed, 215 insertions(+), 104 deletions(-) create mode 100644 src/header.ps1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 87c28f0..afd84f5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,7 +17,7 @@ repos: types: [text] - id: end-of-file-fixer name: end-of-file-fixer - exclude: src/header.sh + exclude: src/header.(sh|ps1) entry: pixi run -e lint end-of-file-fixer language: system types: [text] diff --git a/Cargo.lock b/Cargo.lock index 0464c95..32b4e2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2415,6 +2415,7 @@ version = "0.1.8" dependencies = [ "anyhow", "async-std", + "base64 0.22.1", "clap", "clap-verbosity-flag", "futures", diff --git a/Cargo.toml b/Cargo.toml index f974dcb..4b6e4de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,6 +55,7 @@ tracing-log = "0.2.0" url = "2.5.2" fxhash = "0.2.1" tempfile = "3.12.0" +base64 = "0.22.1" [dev-dependencies] async-std = "1.12.0" diff --git a/src/header.ps1 b/src/header.ps1 new file mode 100644 index 0000000..ee29043 --- /dev/null +++ b/src/header.ps1 @@ -0,0 +1,95 @@ +Set-StrictMode -Version Latest +$ErrorActionPreference = "Stop" + +$TEMPDIR = New-TemporaryDirectory +$PREFIX = "" +$FORCE = $false +$VERBOSE = $false +$QUIET = $false +$UNPACK_SHELL = "" + +$USAGE = @" +usage: $($MyInvocation.MyCommand.Name) [options] + +Unpacks an environment packed using pixi-pack + +-f, --force No error if environment already exists +-h, --help Print this help message and exit +-o, --output-directory Where to unpack the environment +-s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] +-v, --verbose Increase logging verbosity +-q, --quiet Decrease logging verbosity +"@ + +$args = $MyInvocation.UnboundArguments +for ($i = 0; $i -lt $args.Count; $i++) { + switch ($args[$i]) { + "-f" { $FORCE = $true } + "--force" { $FORCE = $true } + "-o" { $PREFIX = $args[++$i] } + "--output-directory" { $PREFIX = $args[++$i] } + "-s" { $UNPACK_SHELL = $args[++$i] } + "--shell" { $UNPACK_SHELL = $args[++$i] } + "-v" { $VERBOSE = $true } + "--verbose" { $VERBOSE = $true } + "-q" { $QUIET = $true } + "--quiet" { $QUIET = $true } + "-h" { Write-Output $USAGE; exit 2 } + "--help" { Write-Output $USAGE; exit 2 } + } +} + +if (-not $FORCE -and (Test-Path $PREFIX)) { + Write-Error "ERROR: File or directory already exists: '$PREFIX'" + Write-Error "If you want to update an existing environment, use the -f option." + exit 1 +} + +if ($FORCE -and (Test-Path $PREFIX)) { + Remove-Item -Recurse -Force $PREFIX +} + +Write-Host "Unpacking payload ..." +$scriptContent = Get-Content -Raw -Path $MyInvocation.MyCommand.Path +$headerEnd = $scriptContent.IndexOf("__END_HEADER__") +$archiveEnd = $scriptContent.IndexOf("__END_ARCHIVE__", $headerEnd) + +# Extract the base64-encoded archive data between __END_HEADER__ and __END_ARCHIVE__ +$archiveContent = $scriptContent.Substring($headerEnd + "__END_HEADER__".Length, $archiveEnd - $headerEnd - "__END_HEADER__".Length) +[System.IO.File]::WriteAllBytes("$TEMPDIR\archive.tar", [System.Convert]::FromBase64String($archiveContent.Trim())) + +Write-Host "Creating environment..." + +# Extract the base64-encoded pixi-pack binary after __END_ARCHIVE__ +$pixiPackContent = $scriptContent.Substring($archiveEnd + "__END_ARCHIVE__".Length) +[System.IO.File]::WriteAllBytes("$TEMPDIR\pixi-pack.exe", [System.Convert]::FromBase64String($pixiPackContent.Trim())) + +if ($VERBOSE -and $QUIET) { + Write-Error "ERROR: Verbose and quiet options cannot be used together." + exit 1 +} + +$VERBOSITY_FLAG = "" +if ($VERBOSE) { $VERBOSITY_FLAG = "--verbose" } +if ($QUIET) { $VERBOSITY_FLAG = "--quiet" } + +$OUTPUT_DIR_FLAG = "" +if ($PREFIX) { $OUTPUT_DIR_FLAG = "--output-directory $PREFIX" } + +$SHELL_FLAG = "" +if ($UNPACK_SHELL) { $SHELL_FLAG = "--shell $UNPACK_SHELL" } + +$CMD = "& `"$TEMPDIR\pixi-pack.exe`" unpack $OUTPUT_DIR_FLAG $VERBOSITY_FLAG $SHELL_FLAG `"$TEMPDIR\archive.tar`"" + +# Execute the command +Invoke-Expression $CMD + +exit 0 + +function New-TemporaryDirectory { + $parent = [System.IO.Path]::GetTempPath() + [string] $name = [System.Guid]::NewGuid() + New-Item -ItemType Directory -Path (Join-Path $parent $name) +} + +__END_HEADER__ \ No newline at end of file diff --git a/src/header.sh b/src/header.sh index cf9599b..d107c2c 100644 --- a/src/header.sh +++ b/src/header.sh @@ -1,94 +1,117 @@ #!/bin/sh set -eu - -TEMPDIR=`mktemp -d` -PREFIX="env" +TEMPDIR=$(mktemp -d) +PREFIX="" FORCE=0 -INSTALLER="rattler" # Default to rattler -CREATE_ACTIVATION_SCRIPT=false - -# Pixi Constants ./lib.rs -PIXI_PACK_CHANNEL_DIRECTORY="" -PIXI_PACK_METADATA_PATH="" -PIXI_PACK_DEFAULT_VERSION="" +VERBOSE=0 +QUIET=0 +UNPACK_SHELL="" USAGE=" usage: $0 [options] -Unpacks an environment packed with pixi-pack +Unpacks an environment packed using pixi-pack --f no error if environment already exists --h print this help message and exit --p ENV environment prefix, defaults to $PREFIX --a create an activation script to activate the environment +-f, --force No error if environment already exists +-h, --help Print this help message and exit +-o, --output-directory Where to unpack the environment +-s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] +-v, --verbose Increase logging verbosity +-q, --quiet Decrease logging verbosity " - -while getopts ":fha:p:" x; do - case "$x" in - f) - FORCE=1 - ;; - p) - PREFIX="$OPTARG" - ;; - a) - CREATE_ACTIVATION_SCRIPT=true - ;; - h) - echo "$USAGE" - exit 2 - ;; - esac +# Parse command-line options +while getopts ":hfvo:s:q" opt; do + case ${opt} in + h ) + echo "$USAGE" + exit 0 + ;; + f ) + FORCE=1 + ;; + v ) + VERBOSE=1 + ;; + o ) + PREFIX="$OPTARG" + ;; + s ) + UNPACK_SHELL="$OPTARG" + ;; + q ) + QUIET=1 + ;; + \? ) + echo "Invalid option: -$OPTARG" >&2 + echo "$USAGE" >&2 + exit 1 + ;; + : ) + echo "Option -$OPTARG requires an argument" >&2 + echo "$USAGE" >&2 + exit 1 + ;; + esac done +shift $((OPTIND -1)) + +# Validate shell option if provided +if [ -n "$UNPACK_SHELL" ]; then + case "$UNPACK_SHELL" in + bash|zsh|xonsh|cmd|powershell|fish|nushell) + ;; + *) + echo "Invalid shell option: $UNPACK_SHELL" >&2 + echo "Valid options are: bash, zsh, xonsh, cmd, powershell, fish, nushell" >&2 + exit 1 + ;; + esac +fi -if [ "$FORCE" = "0" ] && [ -e "$PREFIX" ]; then +if [ "$FORCE" = "0" ] && [ -n "$PREFIX" ] && [ -e "$PREFIX" ]; then echo "ERROR: File or directory already exists: '$PREFIX'" >&2 echo "If you want to update an existing environment, use the -f option." >&2 exit 1 fi -if [ "$FORCE" = "1" ] && [ -e "$PREFIX" ]; then +if [ "$FORCE" = "1" ] && [ -n "$PREFIX" ] && [ -e "$PREFIX" ]; then rm -rf "$PREFIX" fi -if [ "$CREATE_ACTIVATION_SCRIPT" = true ] && [ "$INSTALLER" = "conda" ]; then - echo "ERROR: Activation script creation is only supported with rattler or micromamba as the installer." >&2 - exit 1 -fi - -mkdir -p "$PREFIX" -PREFIX="$(realpath "$PREFIX")" -PARENT_DIR="$(dirname "$PREFIX")" - archive_begin=$(($(grep -anm 1 "^@@END_HEADER@@" "$0" | sed 's/:.*//') + 1)) archive_end=$(($(grep -anm 1 "^@@END_ARCHIVE@@" "$0" | sed 's/:.*//') - 1)) echo "Unpacking payload ..." -tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1)) | tar -xvf - -C "$TEMPDIR" - -echo "Creating environment using $INSTALLER" - -ls $TEMPDIR - -export PIXI_PACK_CHANNEL_DIRECTORY=$PIXI_PACK_CHANNEL_DIRECTORY -export PIXI_PACK_METADATA_PATH=$PIXI_PACK_METADATA_PATH -export PIXI_PACK_DEFAULT_VERSION=$PIXI_PACK_DEFAULT_VERSION +tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1)) | base64 -d > "$TEMPDIR/archive.tar" pixi_pack_start=$(($archive_end + 2)) -tail -n +$pixi_pack_start "$0" > "$TEMPDIR/pixi-pack" +tail -n +$pixi_pack_start "$0" | base64 -d > "$TEMPDIR/pixi-pack" chmod +x "$TEMPDIR/pixi-pack" +if [ "$VERBOSE" = "1" ] && [ "$QUIET" = "1" ]; then + printf "ERROR: Verbose and quiet options cannot be used together.\n" >&2 + exit 1 +fi + +VERBOSITY_FLAG="" +[ "$VERBOSE" = "1" ] && VERBOSITY_FLAG="--verbose" +[ "$QUIET" = "1" ] && VERBOSITY_FLAG="--quiet" + +OUTPUT_DIR_FLAG="" +[ -n "$PREFIX" ] && OUTPUT_DIR_FLAG="--output-directory $PREFIX" -"$TEMPDIR/pixi-pack" "unpack" "$TEMPDIR" "$PREFIX" -echo "Environment created at $PREFIX" +SHELL_FLAG="" +[ -n "$UNPACK_SHELL" ] && SHELL_FLAG="--shell $UNPACK_SHELL" -if [ "$CREATE_ACTIVATION_SCRIPT" = true ]; then - "$TEMPDIR/pixi-pack" "create-script" "$PARENT_DIR" "$PREFIX" - echo "Activation script created at $PARENT_DIR/activate.sh" +CMD="\"$TEMPDIR/pixi-pack\" unpack $OUTPUT_DIR_FLAG $VERBOSITY_FLAG" +if [ -n "$UNPACK_SHELL" ]; then + CMD="$CMD --shell $UNPACK_SHELL" fi +CMD="$CMD \"$TEMPDIR/archive.tar\"" -cd $PARENT_DIR +# Execute the command +eval "$CMD" exit 0 @@END_HEADER@@ \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 6d6a37b..a7f3b8d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -110,19 +110,15 @@ async fn main() -> Result<()> { ignore_pypi_errors, create_executable, } => { - if create_executable && is_unsupported_platform(&platform) { - return Err(anyhow::anyhow!("Creating self-extracting executables is only supported on macOS and Linux. Current platform: {}", platform)); - } - - let mut output_file_with_extension = output_file; - - if create_executable { - // TODO: Add support for other platforms - // Change this to shell.extension() - output_file_with_extension = output_file_with_extension.with_extension("sh"); + let output_file_with_extension = if create_executable { + output_file.with_extension(if platform.is_windows() { + "ps1" + } else { + "sh" + }) } else { - output_file_with_extension = output_file_with_extension.with_extension("tar"); - } + output_file.with_extension("tar") + }; let options = PackOptions { environment, @@ -158,12 +154,4 @@ async fn main() -> Result<()> { tracing::debug!("Finished running pixi-pack"); Ok(()) -} - -/// Check if the given platform supports creating self-extracting executables -fn is_unsupported_platform(platform: &Platform) -> bool { - matches!( - platform, - Platform::Win32 | Platform::Win64 | Platform::WinArm64 - ) -} +} \ No newline at end of file diff --git a/src/pack.rs b/src/pack.rs index e93ad70..9ff2635 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -13,6 +13,7 @@ use tokio::{ }; use anyhow::Result; +use base64::engine::{general_purpose::STANDARD, Engine}; use futures::{stream, StreamExt, TryFutureExt, TryStreamExt}; use rattler_conda_types::{package::ArchiveType, ChannelInfo, PackageRecord, Platform, RepoData}; use rattler_lock::{CondaPackage, LockFile, Package}; @@ -22,7 +23,7 @@ use tokio_tar::Builder; use crate::{ get_size, PixiPackMetadata, ProgressReporter, CHANNEL_DIRECTORY_NAME, - DEFAULT_PIXI_PACK_VERSION, PIXI_PACK_METADATA_PATH, + PIXI_PACK_METADATA_PATH, }; use anyhow::anyhow; @@ -317,25 +318,16 @@ async fn create_self_extracting_executable( .await .map_err(|e| anyhow!("could not flush output: {}", e))?; - let header = include_str!("header.sh") - .to_string() - .replace( - "PIXI_PACK_CHANNEL_DIRECTORY=\"\"", - &format!("PIXI_PACK_CHANNEL_DIRECTORY=\"{}\"", CHANNEL_DIRECTORY_NAME), - ) - .replace( - "PIXI_PACK_METADATA_PATH=\"\"", - &format!("PIXI_PACK_METADATA_PATH=\"{}\"", PIXI_PACK_METADATA_PATH), - ) - .replace( - "PIXI_PACK_DEFAULT_VERSION=\"\"", - &format!( - "PIXI_PACK_DEFAULT_VERSION=\"{}\"", - DEFAULT_PIXI_PACK_VERSION - ), - ); + let windows_header = include_str!("header.ps1"); + let unix_header = include_str!("header.sh"); + + let header = if platform.is_windows() { + windows_header + } else { + unix_header + }; - let executable_path = target.with_extension("sh"); + let executable_path = target.with_extension(if platform.is_windows() { "ps1" } else { "sh" }); // Determine the target OS and architecture let (os, arch) = match platform { @@ -349,7 +341,7 @@ async fn create_self_extracting_executable( }; let executable_name = format!("pixi-pack-{}-{}", arch, os); - let extension = if os.contains("windows") { ".exe" } else { "" }; + let extension = if platform.is_windows() { ".exe" } else { "" }; let version = env!("CARGO_PKG_VERSION"); let url = format!( @@ -390,10 +382,21 @@ async fn create_self_extracting_executable( final_executable.write_all(header.as_bytes()).await?; final_executable.write_all(b"\n").await?; // Add a newline after the header - final_executable.write_all(&compressor).await?; + + // Encode the archive to base64 + let archive_base64 = STANDARD.encode(&compressor); + final_executable.write_all(archive_base64.as_bytes()).await?; + final_executable.write_all(b"\n").await?; - final_executable.write_all(b"@@END_ARCHIVE@@\n").await?; - final_executable.write_all(&executable_bytes).await?; + if platform.is_windows() { + final_executable.write_all(b"__END_ARCHIVE__\n").await?; + } else { + final_executable.write_all(b"@@END_ARCHIVE@@\n").await?; + } + + // Encode the executable to base64 + let executable_base64 = STANDARD.encode(&executable_bytes); + final_executable.write_all(executable_base64.as_bytes()).await?; Ok(()) } From 4157a22632211a1b1174e3a899a5a8461082a14c Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sun, 22 Sep 2024 00:29:40 -0400 Subject: [PATCH 24/83] added tests --- src/header.ps1 | 111 +++++++++++++++++++++++++------------- src/main.rs | 8 +-- src/pack.rs | 17 +++--- tests/integration_test.rs | 82 +++++++++++++++++++++------- 4 files changed, 149 insertions(+), 69 deletions(-) diff --git a/src/header.ps1 b/src/header.ps1 index ee29043..196b353 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -1,5 +1,9 @@ -Set-StrictMode -Version Latest -$ErrorActionPreference = "Stop" +function New-TemporaryDirectory { + $parent = [System.IO.Path]::GetTempPath() + [string] $name = [System.Guid]::NewGuid() + $tempDir = New-Item -ItemType Directory -Path (Join-Path $parent $name) + return $tempDir.FullName +} $TEMPDIR = New-TemporaryDirectory $PREFIX = "" @@ -21,6 +25,7 @@ Unpacks an environment packed using pixi-pack -q, --quiet Decrease logging verbosity "@ +# Parse command-line arguments $args = $MyInvocation.UnboundArguments for ($i = 0; $i -lt $args.Count; $i++) { switch ($args[$i]) { @@ -39,57 +44,89 @@ for ($i = 0; $i -lt $args.Count; $i++) { } } -if (-not $FORCE -and (Test-Path $PREFIX)) { - Write-Error "ERROR: File or directory already exists: '$PREFIX'" - Write-Error "If you want to update an existing environment, use the -f option." +# Check if verbose and quiet are both set +if ($VERBOSE -and $QUIET) { + Write-Error "ERROR: Verbose and quiet options cannot be used together." exit 1 } -if ($FORCE -and (Test-Path $PREFIX)) { - Remove-Item -Recurse -Force $PREFIX -} - -Write-Host "Unpacking payload ..." +# Step 1: Extract the archive and pixi-pack executable, and decode them $scriptContent = Get-Content -Raw -Path $MyInvocation.MyCommand.Path -$headerEnd = $scriptContent.IndexOf("__END_HEADER__") -$archiveEnd = $scriptContent.IndexOf("__END_ARCHIVE__", $headerEnd) +$lines = $scriptContent -split "`r?`n" -# Extract the base64-encoded archive data between __END_HEADER__ and __END_ARCHIVE__ -$archiveContent = $scriptContent.Substring($headerEnd + "__END_HEADER__".Length, $archiveEnd - $headerEnd - "__END_HEADER__".Length) -[System.IO.File]::WriteAllBytes("$TEMPDIR\archive.tar", [System.Convert]::FromBase64String($archiveContent.Trim())) +$headerLine = $null +$archiveLine = $null -Write-Host "Creating environment..." +# Find the lines where __END_HEADER__ and __END_ARCHIVE__ occur +for ($i = 0; $i -lt $lines.Count; $i++) { + if ($lines[$i] -like "*__END_HEADER__*") { + $headerLine = $i + 1 + } + if ($lines[$i] -like "*__END_ARCHIVE__*") { + $archiveLine = $i + 1 + } +} -# Extract the base64-encoded pixi-pack binary after __END_ARCHIVE__ -$pixiPackContent = $scriptContent.Substring($archiveEnd + "__END_ARCHIVE__".Length) -[System.IO.File]::WriteAllBytes("$TEMPDIR\pixi-pack.exe", [System.Convert]::FromBase64String($pixiPackContent.Trim())) +if (-not $headerLine -or -not $archiveLine) { + Write-Error "Markers __END_HEADER__ or __END_ARCHIVE__ not found." + exit 1 +} -if ($VERBOSE -and $QUIET) { - Write-Error "ERROR: Verbose and quiet options cannot be used together." +# Extract Base64 content for the tar archive +$archiveContent = $lines[($headerLine)..($archiveLine - 2)] -join "" +$archiveContent = $archiveContent.Trim() + +# Decode Base64 content into tar file +try { + $decodedArchive = [System.Convert]::FromBase64String($archiveContent) + $archivePath = "$TEMPDIR\archive.tar" + [System.IO.File]::WriteAllBytes($archivePath, $decodedArchive) +} catch { + Write-Error "Failed to decode Base64 archive content: $_" exit 1 } -$VERBOSITY_FLAG = "" -if ($VERBOSE) { $VERBOSITY_FLAG = "--verbose" } -if ($QUIET) { $VERBOSITY_FLAG = "--quiet" } +# Extract Base64 content for pixi-pack executable +$pixiPackContent = $lines[($archiveLine)..($lines.Count - 1)] -join "" +$pixiPackContent = $pixiPackContent.Trim() + +# Decode Base64 content into the pixi-pack executable file +try { + $decodedPixiPack = [System.Convert]::FromBase64String($pixiPackContent) + $pixiPackPath = "$TEMPDIR\pixi-pack.exe" + [System.IO.File]::WriteAllBytes($pixiPackPath, $decodedPixiPack) +} catch { + Write-Error "Failed to decode Base64 pixi-pack content: $_" + exit 1 +} -$OUTPUT_DIR_FLAG = "" -if ($PREFIX) { $OUTPUT_DIR_FLAG = "--output-directory $PREFIX" } +# Step 2: Build the command with flags +$arguments = @("unpack") -$SHELL_FLAG = "" -if ($UNPACK_SHELL) { $SHELL_FLAG = "--shell $UNPACK_SHELL" } +# Use $PREFIX for output directory if it is provided +if ($PREFIX) { + $arguments += "--output-directory" + $arguments += $PREFIX +} -$CMD = "& `"$TEMPDIR\pixi-pack.exe`" unpack $OUTPUT_DIR_FLAG $VERBOSITY_FLAG $SHELL_FLAG `"$TEMPDIR\archive.tar`"" +# Handle verbosity/quiet flags +if ($VERBOSE) { + $arguments += "--verbose" +} elseif ($QUIET) { + $arguments += "--quiet" +} -# Execute the command -Invoke-Expression $CMD +# Add shell flag if provided +if ($UNPACK_SHELL) { + $arguments += "--shell" + $arguments += $UNPACK_SHELL +} -exit 0 +# Finally, add the path to the archive +$arguments += $archivePath -function New-TemporaryDirectory { - $parent = [System.IO.Path]::GetTempPath() - [string] $name = [System.Guid]::NewGuid() - New-Item -ItemType Directory -Path (Join-Path $parent $name) -} +& $pixiPackPath @arguments + +exit 0 __END_HEADER__ \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index a7f3b8d..f69c7c9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -111,11 +111,7 @@ async fn main() -> Result<()> { create_executable, } => { let output_file_with_extension = if create_executable { - output_file.with_extension(if platform.is_windows() { - "ps1" - } else { - "sh" - }) + output_file.with_extension(if platform.is_windows() { "ps1" } else { "sh" }) } else { output_file.with_extension("tar") }; @@ -154,4 +150,4 @@ async fn main() -> Result<()> { tracing::debug!("Finished running pixi-pack"); Ok(()) -} \ No newline at end of file +} diff --git a/src/pack.rs b/src/pack.rs index 9ff2635..badbfe5 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -22,8 +22,7 @@ use reqwest_middleware::ClientWithMiddleware; use tokio_tar::Builder; use crate::{ - get_size, PixiPackMetadata, ProgressReporter, CHANNEL_DIRECTORY_NAME, - PIXI_PACK_METADATA_PATH, + get_size, PixiPackMetadata, ProgressReporter, CHANNEL_DIRECTORY_NAME, PIXI_PACK_METADATA_PATH, }; use anyhow::anyhow; @@ -382,21 +381,25 @@ async fn create_self_extracting_executable( final_executable.write_all(header.as_bytes()).await?; final_executable.write_all(b"\n").await?; // Add a newline after the header - + // Encode the archive to base64 let archive_base64 = STANDARD.encode(&compressor); - final_executable.write_all(archive_base64.as_bytes()).await?; - + final_executable + .write_all(archive_base64.as_bytes()) + .await?; + final_executable.write_all(b"\n").await?; if platform.is_windows() { final_executable.write_all(b"__END_ARCHIVE__\n").await?; } else { final_executable.write_all(b"@@END_ARCHIVE@@\n").await?; } - + // Encode the executable to base64 let executable_base64 = STANDARD.encode(&executable_bytes); - final_executable.write_all(executable_base64.as_bytes()).await?; + final_executable + .write_all(executable_base64.as_bytes()) + .await?; Ok(()) } diff --git a/tests/integration_test.rs b/tests/integration_test.rs index f8f96b3..c1684aa 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -5,7 +5,7 @@ use std::{path::PathBuf, process::Command}; use pixi_pack::{unarchive, PackOptions, PixiPackMetadata, UnpackOptions}; use rattler_conda_types::Platform; use rattler_conda_types::RepoData; -use rattler_shell::shell::{Bash, ShellEnum}; +use rattler_shell::shell::{Bash, PowerShell, ShellEnum}; use rstest::*; use tempfile::{tempdir, TempDir}; use tokio::fs::File; @@ -274,13 +274,16 @@ async fn test_pypi_ignore( let pack_result = pixi_pack::pack(pack_options).await; assert_eq!(pack_result.is_err(), should_fail); } - #[rstest] #[tokio::test] async fn test_create_executable(options: Options, required_fs_objects: Vec<&'static str>) { let mut pack_options = options.pack_options; pack_options.create_executable = true; - pack_options.output_file = options.output_dir.path().join("environment.sh"); + pack_options.output_file = options.output_dir.path().join(if cfg!(windows) { + "environment.ps1" + } else { + "environment.sh" + }); let pack_file = pack_options.output_file.clone(); @@ -288,7 +291,10 @@ async fn test_create_executable(options: Options, required_fs_objects: Vec<&'sta assert!(pack_result.is_ok(), "{:?}", pack_result); assert!(pack_file.exists()); - assert_eq!(pack_file.extension().unwrap(), "sh"); + assert_eq!( + pack_file.extension().unwrap(), + if cfg!(windows) { "ps1" } else { "sh" } + ); #[cfg(unix)] { @@ -303,7 +309,11 @@ async fn test_create_executable(options: Options, required_fs_objects: Vec<&'sta let unpack_options = UnpackOptions { pack_file, output_directory: unpack_dir_path.to_path_buf(), - shell: Some(ShellEnum::Bash(Bash)), + shell: Some(if cfg!(windows) { + ShellEnum::PowerShell(PowerShell::default()) + } else { + ShellEnum::Bash(Bash) + }), }; let unpack_result = pixi_pack::unpack(unpack_options).await; @@ -312,7 +322,11 @@ async fn test_create_executable(options: Options, required_fs_objects: Vec<&'sta let env_dir = unpack_dir_path.join("env"); assert!(env_dir.exists()); - let activate_file = unpack_dir_path.join("activate.sh"); + let activate_file = unpack_dir_path.join(if cfg!(windows) { + "activate.ps1" + } else { + "activate.sh" + }); assert!(activate_file.exists()); required_fs_objects @@ -325,11 +339,19 @@ async fn test_create_executable(options: Options, required_fs_objects: Vec<&'sta #[rstest] #[tokio::test] -#[cfg(any(target_os = "linux", target_os = "macos"))] +#[cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))] async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<&'static str>) { let mut pack_options = options.pack_options; pack_options.create_executable = true; - pack_options.output_file = options.output_dir.path().join("environment.sh"); + + #[cfg(target_os = "windows")] + { + pack_options.output_file = options.output_dir.path().join("environment.ps1"); + } + #[cfg(any(target_os = "linux", target_os = "macos"))] + { + pack_options.output_file = options.output_dir.path().join("environment.sh"); + } let pack_file = pack_options.output_file.clone(); @@ -337,24 +359,46 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& assert!(pack_result.is_ok(), "{:?}", pack_result); assert!(pack_file.exists()); - assert_eq!(pack_file.extension().unwrap(), "sh"); - let output = Command::new("sh") - .arg(pack_file) - .arg("-af") - .arg("-p") - .arg(options.output_dir.path().join("env")) - .output() - .expect("Failed to execute packed file for extraction"); - - assert!(output.status.success(), "Extraction failed: {:?}", output); + #[cfg(target_os = "windows")] + { + assert_eq!(pack_file.extension().unwrap(), "ps1"); + let output = Command::new("powershell") + .arg("-ExecutionPolicy") + .arg("Bypass") + .arg("-File") + .arg(&pack_file) + .arg("-f") + .arg("-o") + .arg(options.output_dir.path().join("env")) + .output() + .expect("Failed to execute packed file for extraction"); + assert!(output.status.success(), "Extraction failed: {:?}", output); + } + #[cfg(any(target_os = "linux", target_os = "macos"))] + { + assert_eq!(pack_file.extension().unwrap(), "sh"); + let output = Command::new("sh") + .arg(pack_file) + .arg("-f") + .arg("-o") + .arg(options.output_dir.path().join("env")) + .output() + .expect("Failed to execute packed file for extraction"); + assert!(output.status.success(), "Extraction failed: {:?}", output); + } let env_dir = options.output_dir.path().join("env"); assert!( env_dir.exists(), "Environment directory not found after extraction" ); - let activate_file = options.output_dir.path().join("activate.sh"); + + #[cfg(target_os = "windows")] + let activate_file = env_dir.join("activate.bat"); + #[cfg(any(target_os = "linux", target_os = "macos"))] + let activate_file = env_dir.join("activate.sh"); + assert!( activate_file.exists(), "Activation script not found after extraction" From 11093602260e9b20cce82f97793cf96ec001dd48 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sun, 22 Sep 2024 11:14:10 -0400 Subject: [PATCH 25/83] added tests and run fmt --- tests/integration_test.rs | 110 +++++++++----------------------------- 1 file changed, 26 insertions(+), 84 deletions(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index c1684aa..75cd2e1 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -5,7 +5,7 @@ use std::{path::PathBuf, process::Command}; use pixi_pack::{unarchive, PackOptions, PixiPackMetadata, UnpackOptions}; use rattler_conda_types::Platform; use rattler_conda_types::RepoData; -use rattler_shell::shell::{Bash, PowerShell, ShellEnum}; +use rattler_shell::shell::{Bash, ShellEnum}; use rstest::*; use tempfile::{tempdir, TempDir}; use tokio::fs::File; @@ -276,81 +276,18 @@ async fn test_pypi_ignore( } #[rstest] #[tokio::test] -async fn test_create_executable(options: Options, required_fs_objects: Vec<&'static str>) { - let mut pack_options = options.pack_options; - pack_options.create_executable = true; - pack_options.output_file = options.output_dir.path().join(if cfg!(windows) { - "environment.ps1" - } else { - "environment.sh" - }); - - let pack_file = pack_options.output_file.clone(); - - let pack_result = pixi_pack::pack(pack_options).await; - assert!(pack_result.is_ok(), "{:?}", pack_result); - - assert!(pack_file.exists()); - assert_eq!( - pack_file.extension().unwrap(), - if cfg!(windows) { "ps1" } else { "sh" } - ); - - #[cfg(unix)] - { - use std::os::unix::fs::PermissionsExt; - let metadata = std::fs::metadata(&pack_file).unwrap(); - let permissions = metadata.permissions(); - assert!(permissions.mode() & 0o111 != 0); - } - - let unpack_dir = tempdir().expect("Couldn't create a temp dir for tests"); - let unpack_dir_path = unpack_dir.path(); - let unpack_options = UnpackOptions { - pack_file, - output_directory: unpack_dir_path.to_path_buf(), - shell: Some(if cfg!(windows) { - ShellEnum::PowerShell(PowerShell::default()) - } else { - ShellEnum::Bash(Bash) - }), - }; - - let unpack_result = pixi_pack::unpack(unpack_options).await; - assert!(unpack_result.is_ok(), "{:?}", unpack_result); - - let env_dir = unpack_dir_path.join("env"); - assert!(env_dir.exists()); - - let activate_file = unpack_dir_path.join(if cfg!(windows) { - "activate.ps1" - } else { - "activate.sh" - }); - assert!(activate_file.exists()); - - required_fs_objects - .iter() - .map(|dir| env_dir.join(dir)) - .for_each(|dir| { - assert!(dir.exists(), "{:?} does not exist", dir); - }); -} - -#[rstest] -#[tokio::test] -#[cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))] async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<&'static str>) { + let temp_dir = tempfile::tempdir().expect("Couldn't create a temp dir for tests"); let mut pack_options = options.pack_options; pack_options.create_executable = true; #[cfg(target_os = "windows")] { - pack_options.output_file = options.output_dir.path().join("environment.ps1"); + pack_options.output_file = temp_dir.path().join("environment.ps1"); } #[cfg(any(target_os = "linux", target_os = "macos"))] { - pack_options.output_file = options.output_dir.path().join("environment.sh"); + pack_options.output_file = temp_dir.path().join("environment.sh"); } let pack_file = pack_options.output_file.clone(); @@ -358,34 +295,36 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& let pack_result = pixi_pack::pack(pack_options).await; assert!(pack_result.is_ok(), "{:?}", pack_result); - assert!(pack_file.exists()); + assert!( + pack_file.exists(), + "Pack file does not exist at {:?}", + pack_file + ); - #[cfg(target_os = "windows")] + #[cfg(any(target_os = "linux", target_os = "macos"))] { - assert_eq!(pack_file.extension().unwrap(), "ps1"); - let output = Command::new("powershell") - .arg("-ExecutionPolicy") - .arg("Bypass") - .arg("-File") + assert_eq!(pack_file.extension().unwrap(), "sh"); + let output = Command::new("sh") .arg(&pack_file) .arg("-f") .arg("-o") - .arg(options.output_dir.path().join("env")) + .arg(options.output_dir.path()) .output() .expect("Failed to execute packed file for extraction"); - assert!(output.status.success(), "Extraction failed: {:?}", output); + assert!(output.status.success(), "Packed file execution failed"); } - #[cfg(any(target_os = "linux", target_os = "macos"))] + #[cfg(target_os = "windows")] { - assert_eq!(pack_file.extension().unwrap(), "sh"); - let output = Command::new("sh") - .arg(pack_file) + assert_eq!(pack_file.extension().unwrap(), "ps1"); + let output = Command::new("powershell") + .arg("-File") + .arg(&pack_file) .arg("-f") .arg("-o") - .arg(options.output_dir.path().join("env")) + .arg(options.output_dir.path()) .output() .expect("Failed to execute packed file for extraction"); - assert!(output.status.success(), "Extraction failed: {:?}", output); + assert!(output.status.success(), "Packed file execution failed"); } let env_dir = options.output_dir.path().join("env"); @@ -395,9 +334,9 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& ); #[cfg(target_os = "windows")] - let activate_file = env_dir.join("activate.bat"); + let activate_file = options.output_dir.path().join("activate.bat"); #[cfg(any(target_os = "linux", target_os = "macos"))] - let activate_file = env_dir.join("activate.sh"); + let activate_file = options.output_dir.path().join("activate.sh"); assert!( activate_file.exists(), @@ -410,4 +349,7 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& .for_each(|dir| { assert!(dir.exists(), "{:?} does not exist", dir); }); + + // Keep the temporary directory alive until the end of the test + drop(temp_dir); } From 5c06d2b9a88c309f6aee6ae9638c34e443a11302 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sun, 22 Sep 2024 11:18:08 -0400 Subject: [PATCH 26/83] remove extra function in unpack --- src/unpack.rs | 58 +++++---------------------------------------------- 1 file changed, 5 insertions(+), 53 deletions(-) diff --git a/src/unpack.rs b/src/unpack.rs index 8f50410..8f9a174 100644 --- a/src/unpack.rs +++ b/src/unpack.rs @@ -1,7 +1,4 @@ -use std::{ - io::Cursor, - path::{Path, PathBuf}, -}; +use std::path::{Path, PathBuf}; use anyhow::{anyhow, Result}; use futures::{ @@ -21,7 +18,6 @@ use rattler_shell::{ }; use tokio::fs; -use tokio::io::AsyncReadExt; use tokio_stream::wrappers::ReadDirStream; use tokio_tar::Archive; use url::Url; @@ -46,15 +42,10 @@ pub async fn unpack(options: UnpackOptions) -> Result<()> { let unpack_dir = tmp_dir.path(); tracing::info!("Unarchiving pack to {}", unpack_dir.display()); - if options.pack_file.extension().unwrap_or_default() == "sh" { - unarchive_from_shellscript(&options.pack_file, unpack_dir) - .await - .map_err(|e| anyhow!("Could not extract archive from shell script: {}", e))?; - } else { - unarchive(&options.pack_file, unpack_dir) - .await - .map_err(|e| anyhow!("Could not unarchive: {}", e))?; - } + + unarchive(&options.pack_file, unpack_dir) + .await + .map_err(|e| anyhow!("Could not unarchive: {}", e))?; validate_metadata_file(unpack_dir.join(PIXI_PACK_METADATA_PATH)).await?; @@ -157,45 +148,6 @@ async fn collect_packages(channel_dir: &Path) -> Result Result<()> { - let mut shell_script = fs::File::open(shell_script_path) - .await - .map_err(|e| anyhow!("could not open shell script: {}", e))?; - - let mut content = Vec::new(); - shell_script - .read_to_end(&mut content) - .await - .map_err(|e| anyhow!("could not read shell script: {}", e))?; - - let end_header = b"@@END_HEADER@@\n"; - let end_archive = b"@@END_ARCHIVE@@\n"; - - let start = content - .windows(end_header.len()) - .position(|window| window == end_header) - .map(|pos| pos + end_header.len()) - .ok_or_else(|| anyhow!("Could not find @@END_HEADER@@ in shell script"))?; - - let end = content - .windows(end_archive.len()) - .position(|window| window == end_archive) - .ok_or_else(|| anyhow!("Could not find @@END_ARCHIVE@@ in shell script"))?; - - let archive_content = &content[start..end]; - - let reader = tokio::io::BufReader::new(Cursor::new(archive_content)); - let mut archive = Archive::new(reader); - - archive - .unpack(target_dir) - .await - .map_err(|e| anyhow!("could not unpack archive: {}", e))?; - - Ok(()) -} - /// Unarchive a tarball. pub async fn unarchive(archive_path: &Path, target_dir: &Path) -> Result<()> { let file = fs::File::open(archive_path) From 76d41fc6b80f00cb0db9c073858d5a86abe69fa2 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Sun, 22 Sep 2024 11:20:27 -0400 Subject: [PATCH 27/83] Remove extractor tests --- examples/webserver/my_webserver/__init__.py | 8 ++++++++ pixi.toml | 4 +--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 examples/webserver/my_webserver/__init__.py diff --git a/examples/webserver/my_webserver/__init__.py b/examples/webserver/my_webserver/__init__.py new file mode 100644 index 0000000..52f0d71 --- /dev/null +++ b/examples/webserver/my_webserver/__init__.py @@ -0,0 +1,8 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +def hello(): + return "Hello, World!" diff --git a/pixi.toml b/pixi.toml index 5686dd8..79b8e75 100644 --- a/pixi.toml +++ b/pixi.toml @@ -5,9 +5,7 @@ platforms = ["osx-arm64", "osx-64", "linux-64", "linux-aarch64", "win-64"] [tasks] build = "cargo build --release" -test-pixi-pack = "cargo test" -test-extractor = { cmd = "cargo test --manifest-path extractor/Cargo.toml", env = { PIXI_PACK_DEFAULT_VERSION = "1" } } -test = { depends-on = ["test-pixi-pack", "test-extractor"] } +test = "cargo test" [dependencies] rust = "1.77.2" From db13b4a947de308b0f29f72d3fb4b82784441652 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Fri, 11 Oct 2024 18:09:44 -0400 Subject: [PATCH 28/83] Update src/header.sh Co-authored-by: Pavel Zwerschke --- src/header.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/header.sh b/src/header.sh index d107c2c..7b1d35e 100644 --- a/src/header.sh +++ b/src/header.sh @@ -1,7 +1,7 @@ #!/bin/sh set -eu -TEMPDIR=$(mktemp -d) +TEMPDIR="$(mktemp -d)" PREFIX="" FORCE=0 VERBOSE=0 From 9d2c1ac1771fa1e50ebf1adb566cc03b807708fa Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Fri, 11 Oct 2024 18:10:05 -0400 Subject: [PATCH 29/83] Update src/header.sh Co-authored-by: Pavel Zwerschke --- src/header.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/header.sh b/src/header.sh index 7b1d35e..c1bb718 100644 --- a/src/header.sh +++ b/src/header.sh @@ -1,6 +1,6 @@ #!/bin/sh -set -eu +set -euo pipefail TEMPDIR="$(mktemp -d)" PREFIX="" FORCE=0 From e980ec14fdda503c5f20a216237d33ef1e69287d Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Fri, 11 Oct 2024 18:10:28 -0400 Subject: [PATCH 30/83] Update src/main.rs Co-authored-by: Pavel Zwerschke --- src/main.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index f69c7c9..37f1ffd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -63,7 +63,6 @@ enum Commands { ignore_pypi_errors: bool, /// Create self-extracting executable - /// This feature is only available on macOS and Linux. #[arg(long, default_value = "false")] create_executable: bool, }, From bc037b58bcdb96abeaddef4feb42f9a67ef8f4f8 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Fri, 11 Oct 2024 18:11:04 -0400 Subject: [PATCH 31/83] Update tests/integration_test.rs Co-authored-by: Pavel Zwerschke --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 75cd2e1..f340ee9 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -277,7 +277,7 @@ async fn test_pypi_ignore( #[rstest] #[tokio::test] async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<&'static str>) { - let temp_dir = tempfile::tempdir().expect("Couldn't create a temp dir for tests"); + let temp_dir = tempfile::tempdir().unwrap(); let mut pack_options = options.pack_options; pack_options.create_executable = true; From cc6b42e6842bbf0ff794d33fb30f999c47813313 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Fri, 11 Oct 2024 18:13:18 -0400 Subject: [PATCH 32/83] Update tests/integration_test.rs Co-authored-by: Pavel Zwerschke --- tests/integration_test.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index f340ee9..29a9c57 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -334,12 +334,12 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& ); #[cfg(target_os = "windows")] - let activate_file = options.output_dir.path().join("activate.bat"); + let activation_script = options.output_dir.path().join("activate.bat"); #[cfg(any(target_os = "linux", target_os = "macos"))] - let activate_file = options.output_dir.path().join("activate.sh"); + let activation_script = options.output_dir.path().join("activate.sh"); assert!( - activate_file.exists(), + activation_script.exists(), "Activation script not found after extraction" ); From 6bf5da3a6a6fb3f9841f1a8cb65bb5d9555bbe7a Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 14:57:00 -0500 Subject: [PATCH 33/83] Remove header file from exception in pre-commit. --- .pre-commit-config.yaml | 1 - Cargo.lock | 1841 +++++------ Cargo.toml | 43 +- pixi.lock | 6313 ++++++++++++++++++++----------------- src/header.ps1 | 24 +- src/header.sh | 58 +- tests/integration_test.rs | 6 +- 7 files changed, 4431 insertions(+), 3855 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index afd84f5..75753f1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,7 +17,6 @@ repos: types: [text] - id: end-of-file-fixer name: end-of-file-fixer - exclude: src/header.(sh|ps1) entry: pixi run -e lint end-of-file-fixer language: system types: [text] diff --git a/Cargo.lock b/Cargo.lock index 32b4e2b..717230c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,19 +4,13 @@ version = 3 [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -57,9 +51,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "android-tzdata" @@ -78,9 +72,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -93,49 +87,49 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -177,9 +171,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" dependencies = [ "flate2", "futures-core", @@ -190,14 +184,14 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.0", - "futures-lite 2.3.0", + "fastrand", + "futures-lite", "slab", ] @@ -207,9 +201,9 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 3.4.0", + "async-lock", "blocking", - "futures-lite 2.3.0", + "futures-lite", ] [[package]] @@ -220,61 +214,32 @@ checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ "async-channel 2.3.1", "async-executor", - "async-io 2.3.4", - "async-lock 3.4.0", + "async-io", + "async-lock", "blocking", - "futures-lite 2.3.0", + "futures-lite", "once_cell", ] [[package]] name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-lock 3.4.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "parking", - "polling 3.7.3", - "rustix 0.38.34", + "polling", + "rustix", "slab", "tracing", "windows-sys 0.59.0", ] -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - [[package]] name = "async-lock" version = "3.4.0" @@ -288,22 +253,21 @@ dependencies = [ [[package]] name = "async-process" -version = "2.2.4" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ "async-channel 2.3.1", - "async-io 2.3.4", - "async-lock 3.4.0", + "async-io", + "async-lock", "async-signal", "async-task", "blocking", "cfg-if", "event-listener 5.3.1", - "futures-lite 2.3.0", - "rustix 0.38.34", + "futures-lite", + "rustix", "tracing", - "windows-sys 0.59.0", ] [[package]] @@ -314,7 +278,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -323,13 +287,13 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.3.4", - "async-lock 3.4.0", + "async-io", + "async-lock", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.34", + "rustix", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -337,19 +301,19 @@ dependencies = [ [[package]] name = "async-std" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" dependencies = [ "async-channel 1.9.0", "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", - "futures-lite 1.13.0", + "futures-lite", "gloo-timers", "kv-log-macro", "log", @@ -369,13 +333,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -386,23 +350,23 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -465,10 +429,16 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "piper", ] +[[package]] +name = "boxcar" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f839cdf7e2d3198ac6ca003fd8ebc61715755f41c1cad15ff13df67531e00ed" + [[package]] name = "bumpalo" version = "3.16.0" @@ -483,9 +453,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "bzip2" @@ -519,9 +489,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.13" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -565,9 +535,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -575,9 +545,9 @@ dependencies = [ [[package]] name = "clap-verbosity-flag" -version = "2.2.1" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d19864d6b68464c59f7162c9914a0b569ddc2926b4a2d71afe62a9738eff53" +checksum = "34c77f67047557f62582784fd7482884697731b2932c7d37ced54bce2312e1e2" dependencies = [ "clap", "log", @@ -585,9 +555,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -597,27 +567,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "concurrent-queue" @@ -637,7 +607,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width", + "unicode-width 0.1.14", "windows-sys 0.52.0", ] @@ -651,6 +621,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -659,9 +639,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -712,7 +692,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.75", + "syn", ] [[package]] @@ -723,7 +703,21 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.75", + "syn", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] @@ -739,9 +733,9 @@ dependencies = [ [[package]] name = "dbus-secret-service" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1caa0c241c01ad8d99a78d553567d38f873dd3ac16eca33a5370d650ab25584e" +checksum = "b42a16374481d92aed73ae45b1f120207d8e71d24fb89f357fadbd8f946fd84b" dependencies = [ "aes", "block-padding", @@ -765,26 +759,15 @@ dependencies = [ "serde", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -827,7 +810,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -844,9 +827,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -866,7 +849,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -887,7 +870,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -945,37 +928,28 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "file_url" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4602b5420b868957e88e55b927d67e273c764ce9fb6def7369248862928230" +checksum = "eff487eda48708def359958613c6c9762d9c4f8396db240e37083758ccb01c79" dependencies = [ "itertools", "percent-encoding", - "thiserror", + "thiserror 1.0.69", "typed-path", "url", ] [[package]] name = "filetime" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", @@ -985,19 +959,19 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] name = "float-cmp" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" dependencies = [ "num-traits", ] @@ -1039,6 +1013,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" dependencies = [ "autocfg", + "tokio", +] + +[[package]] +name = "fs-err" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb60e7409f34ef959985bc9d9c5ee8f5db24ee46ed9775850548021710f807f" +dependencies = [ + "autocfg", + "tokio", +] + +[[package]] +name = "fs-set-times" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "033b337d725b97690d86893f9de22b67b80dcc4e9ad815f348254c38119db8fb" +dependencies = [ + "io-lifetimes", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "fs4" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e871a4cfa68bb224863b53149d973df1ac8d1ed2fa1d1bfc37ac1bb65dd37207" +dependencies = [ + "fs-err 2.11.0", + "rustix", + "windows-sys 0.52.0", ] [[package]] @@ -1053,9 +1060,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1068,9 +1075,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1078,15 +1085,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1095,32 +1102,17 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-lite" -version = "1.13.0" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ - "fastrand 2.1.0", + "fastrand", "futures-core", "futures-io", "parking", @@ -1129,26 +1121,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -1158,9 +1150,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1209,9 +1201,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" @@ -1221,9 +1213,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "gloo-timers" -version = "0.2.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" dependencies = [ "futures-channel", "futures-core", @@ -1233,9 +1225,9 @@ dependencies = [ [[package]] name = "google-cloud-auth" -version = "0.13.2" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf7cb7864f08a92e77c26bb230d021ea57691788fb5dd51793f96965d19e7f9" +checksum = "357160f51a60ec3e32169ad687f4abe0ee1e90c73b449aa5d11256c4f1cf2ff6" dependencies = [ "async-trait", "base64 0.21.7", @@ -1243,10 +1235,10 @@ dependencies = [ "google-cloud-token", "home", "jsonwebtoken", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tracing", @@ -1255,12 +1247,12 @@ dependencies = [ [[package]] name = "google-cloud-metadata" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc279bfb50487d7bcd900e8688406475fc750fe474a835b2ab9ade9eb1fc90e2" +checksum = "04f945a208886a13d07636f38fb978da371d0abc3e34bad338124b9f8c135a8f" dependencies = [ - "reqwest 0.11.27", - "thiserror", + "reqwest", + "thiserror 1.0.69", "tokio", ] @@ -1275,36 +1267,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.4.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.4.0", + "http", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -1337,6 +1310,12 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "heck" version = "0.5.0" @@ -1388,17 +1367,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.1.0" @@ -1410,17 +1378,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -1428,7 +1385,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -1439,22 +1396,16 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "httpdate" -version = "1.0.3" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "humantime" @@ -1464,40 +1415,16 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.7", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "itoa", "pin-project-lite", @@ -1508,48 +1435,21 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 0.2.12", - "hyper 0.14.30", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" -dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http", + "hyper", "hyper-util", - "rustls 0.23.12", + "rustls", "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tower-service", - "webpki-roots 0.26.3", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.30", - "native-tls", - "tokio", - "tokio-native-tls", + "webpki-roots", ] [[package]] @@ -1560,7 +1460,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper", "hyper-util", "native-tls", "tokio", @@ -1570,29 +1470,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", + "http", + "http-body", + "hyper", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio", - "tower", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1611,6 +1510,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -1619,12 +1636,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] @@ -1640,26 +1668,26 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.0", + "web-time", ] [[package]] @@ -1672,31 +1700,17 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - [[package]] name = "io-lifetimes" -version = "1.0.11" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] +checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is_terminal_polyfill" @@ -1715,9 +1729,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" [[package]] name = "jobserver" @@ -1730,9 +1744,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -1754,14 +1768,16 @@ dependencies = [ [[package]] name = "keyring" -version = "3.2.1" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030a9b84bb2a2f3673d4c8b8236091ed5d8f6b66a56d8085471d8abd5f3c6a80" +checksum = "2f8fe839464d4e4b37d756d7e910063696af79a7e877282cb1825e4ec5f10833" dependencies = [ "byteorder", "dbus-secret-service", + "log", "secret-service", - "security-framework", + "security-framework 2.11.1", + "security-framework 3.0.1", "windows-sys 0.59.0", "zbus", ] @@ -1777,9 +1793,9 @@ dependencies = [ [[package]] name = "lazy-regex" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576c8060ecfdf2e56995cf3274b4f2d71fa5e4fa3607c1c0b63c10180ee58741" +checksum = "8d8e41c97e6bc7ecb552016274b99fbb5d035e8de288c582d9b933af6677bfda" dependencies = [ "lazy-regex-proc_macros", "once_cell", @@ -1788,14 +1804,14 @@ dependencies = [ [[package]] name = "lazy-regex-proc_macros" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9efb9e65d4503df81c615dc33ff07042a9408ac7f26b45abee25566f7fbfd12c" +checksum = "76e1d8b05d672c53cb9c7b920bbba8783845ae4f0b076e02a3db1d02c81b4163" dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.75", + "syn", ] [[package]] @@ -1804,75 +1820,11 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "lexical-core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" -dependencies = [ - "lexical-parse-float", - "lexical-parse-integer", - "lexical-util", - "lexical-write-float", - "lexical-write-integer", -] - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "lexical-write-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" -dependencies = [ - "lexical-util", - "lexical-write-integer", - "static_assertions", -] - -[[package]] -name = "lexical-write-integer" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" -dependencies = [ - "lexical-util", - "static_assertions", -] - [[package]] name = "libc" -version = "0.2.158" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] name = "libdbus-sys" @@ -1891,20 +1843,20 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.7", ] [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] -name = "linux-raw-sys" -version = "0.4.14" +name = "litemap" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -1958,9 +1910,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -1986,15 +1938,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.0" @@ -2028,7 +1971,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -2169,24 +2112,24 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.36.3" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -2205,7 +2148,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -2216,9 +2159,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -2250,9 +2193,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -2272,7 +2215,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -2289,31 +2232,36 @@ dependencies = [ [[package]] name = "pep440_rs" -version = "0.6.6" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "466eada3179c2e069ca897b99006cbb33f816290eaeec62464eea907e22ae385" +checksum = "0922a442c78611fa8c5ed6065d2d898a820cf12fa90604217fdb2d01675efec7" dependencies = [ - "once_cell", "serde", - "unicode-width", + "unicode-width 0.2.0", "unscanny", + "version-ranges", ] [[package]] name = "pep508_rs" -version = "0.6.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8877489a99ccc80012333123e434f84e645fe1ede3b30e9d3b815887a12979" +checksum = "8c2feee999fa547bacab06a4881bacc74688858b92fa8ef1e206c748b0a76048" dependencies = [ - "derivative", + "boxcar", + "indexmap 2.6.0", + "itertools", "once_cell", "pep440_rs", "regex", + "rustc-hash", "serde", - "thiserror", - "unicode-width", + "smallvec", + "thiserror 1.0.69", + "unicode-width 0.2.0", "url", "urlencoding", + "version-ranges", ] [[package]] @@ -2352,7 +2300,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.75", + "syn", "unicase", ] @@ -2366,31 +2314,11 @@ dependencies = [ "unicase", ] -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -2405,7 +2333,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand", "futures-io", ] @@ -2418,6 +2346,7 @@ dependencies = [ "base64 0.22.1", "clap", "clap-verbosity-flag", + "fs-set-times", "futures", "fxhash", "indicatif", @@ -2429,12 +2358,13 @@ dependencies = [ "rattler_networking", "rattler_package_streaming", "rattler_shell", - "reqwest 0.12.7", + "reqwest", "reqwest-middleware", "rstest", "serde", "serde_json", "serde_yaml", + "sha2", "tempfile", "tokio", "tokio-stream", @@ -2443,50 +2373,35 @@ dependencies = [ "tracing-log", "tracing-subscriber", "url", + "walkdir", ] [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polling" -version = "2.8.0" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.34", + "rustix", "tracing", "windows-sys 0.59.0", ] [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "powerfmt" @@ -2505,18 +2420,18 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2532,63 +2447,67 @@ dependencies = [ "phf", "serde", "smartstring", - "thiserror", + "thiserror 1.0.69", "unicase", ] [[package]] name = "quinn" -version = "0.11.3" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.12", - "socket2 0.5.7", - "thiserror", + "rustls", + "socket2", + "thiserror 2.0.3", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand", "ring", "rustc-hash", - "rustls 0.23.12", + "rustls", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.3", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ + "cfg_aliases", "libc", "once_cell", - "socket2 0.5.7", + "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -2625,17 +2544,17 @@ dependencies = [ [[package]] name = "rattler" -version = "0.27.6" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e94e9ac249e66d45f10216692c29750f39cb95f4ea701c623f0b3138c24fdb" +checksum = "4df153e466ba59551f1967e46b312bc9743cec6f424691f20c45c99553d97b0d" dependencies = [ "anyhow", "digest", "dirs", - "fs-err", + "fs-err 3.0.0", "futures", "humantime", - "indexmap 2.4.0", + "indexmap 2.6.0", "itertools", "memchr", "memmap2", @@ -2649,12 +2568,12 @@ dependencies = [ "rattler_shell", "reflink-copy", "regex", - "reqwest 0.12.7", + "reqwest", "reqwest-middleware", "simple_spawn_blocking", "smallvec", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", "url", @@ -2663,13 +2582,16 @@ dependencies = [ [[package]] name = "rattler_cache" -version = "0.1.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534344446506ef7b6035b2a3d75937b8375dea7a99da6eeb3631fd478782fa34" +checksum = "465972d151a672bc000b64c19a67c4c3b4ffeb11bd433eaf4dfe4c9aa04d748a" dependencies = [ "anyhow", + "dashmap", "digest", "dirs", + "fs4", + "futures", "fxhash", "itertools", "parking_lot", @@ -2677,9 +2599,10 @@ dependencies = [ "rattler_digest", "rattler_networking", "rattler_package_streaming", - "reqwest 0.12.7", + "reqwest", "reqwest-middleware", - "thiserror", + "simple_spawn_blocking", + "thiserror 1.0.69", "tokio", "tracing", "url", @@ -2687,9 +2610,9 @@ dependencies = [ [[package]] name = "rattler_conda_types" -version = "0.27.2" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4dc7a58ae237e3f57310095033da58b37d98ce7c167bc928b0f81951279c514" +checksum = "157b9dca7f9ed5bf7f04202fdd9fda5d8a76f76e937a3b6fd94ed8b2d55565bc" dependencies = [ "chrono", "dirs", @@ -2697,7 +2620,7 @@ dependencies = [ "fxhash", "glob", "hex", - "indexmap 2.4.0", + "indexmap 2.6.0", "itertools", "lazy-regex", "nom", @@ -2715,7 +2638,7 @@ dependencies = [ "simd-json", "smallvec", "strum", - "thiserror", + "thiserror 1.0.69", "tracing", "typed-path", "url", @@ -2723,9 +2646,9 @@ dependencies = [ [[package]] name = "rattler_digest" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d699fe089907cc0ca66966f6b94e0dc04792a1451b2a60ba49c0abb75fba33da" +checksum = "a6a97526971dd357657ea4c88f6d39b31b2875c87dfe9fd12aac305fec6c0f60" dependencies = [ "blake2", "digest", @@ -2739,11 +2662,11 @@ dependencies = [ [[package]] name = "rattler_index" -version = "0.19.24" +version = "0.19.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "665dccb14dc21342a87dcb9d095bc1d3b96e76b65e4cfda86d1e65e3b8c06c79" +checksum = "0a805fc30cc208c5a45a722b3818a83175e1de2e3a6e3f4e0b8454a4f9183651" dependencies = [ - "fs-err", + "fs-err 3.0.0", "rattler_conda_types", "rattler_digest", "rattler_package_streaming", @@ -2754,14 +2677,14 @@ dependencies = [ [[package]] name = "rattler_lock" -version = "0.22.20" +version = "0.22.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce9290c3c0a702806b74b015a5c3dd638211255379f59d261e098ffc12d98d9" +checksum = "4231088bf2f883bddc4cd74a4c97793e8a93f9570b65b421648db34423f0fa74" dependencies = [ "chrono", "file_url", "fxhash", - "indexmap 2.4.0", + "indexmap 2.6.0", "itertools", "pep440_rs", "pep508_rs", @@ -2771,25 +2694,25 @@ dependencies = [ "serde_repr", "serde_with", "serde_yaml", - "thiserror", + "thiserror 1.0.69", "url", ] [[package]] name = "rattler_macros" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18011e84fcc8dba03a4af5b70cbb99362968cdace525139df430b4f268ef58e0" +checksum = "19eadf6fea87bd67d9d4c372caa3c2bed33cd91cdc235ce86210d7bc513ae0a4" dependencies = [ "quote", - "syn 2.0.75", + "syn", ] [[package]] name = "rattler_networking" -version = "0.21.2" +version = "0.21.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53c13a325db9d307886a6a31c3c88a3126b006fe618974b528b6dcf1943ece1" +checksum = "b547cd28190f62c7f580493e41b7f6c9abc6bbef755e8703e8faea890ca2397f" dependencies = [ "anyhow", "async-trait", @@ -2799,25 +2722,25 @@ dependencies = [ "fslock", "getrandom", "google-cloud-auth", - "http 1.1.0", + "http", "itertools", "keyring", "netrc-rs", - "reqwest 0.12.7", + "reqwest", "reqwest-middleware", "retry-policies", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tracing", "url", ] [[package]] name = "rattler_package_streaming" -version = "0.22.3" +version = "0.22.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4f972fe90d9ebbb055ca3cf3527d9206ff908fee1a39f880d5db209c729976" +checksum = "ef13aafa7b14262517b9b2ccce8a96f821c27e52489e2e9c67e57dbbfb932031" dependencies = [ "bzip2", "chrono", @@ -2827,12 +2750,12 @@ dependencies = [ "rattler_digest", "rattler_networking", "rattler_redaction", - "reqwest 0.12.7", + "reqwest", "reqwest-middleware", "serde_json", "tar", "tempfile", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -2843,29 +2766,30 @@ dependencies = [ [[package]] name = "rattler_redaction" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b8739ebf209f017d70f4a27b2726358bade979cc3327b1765163c93a18d46f" +checksum = "aa822f7a897914ff30e372814234047d556c98f3813fad616c93147b38dab7e7" dependencies = [ - "reqwest 0.12.7", + "reqwest", "reqwest-middleware", "url", ] [[package]] name = "rattler_shell" -version = "0.21.6" +version = "0.22.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470fb87026522cb8bdf914b7d044644889d62d91e18f57d3e01f90983a4d49b1" +checksum = "47fbaf13fcf46e10c72c266f975f9d979e13bfe4ff159e4778b2357cf0ac2530" dependencies = [ "enum_dispatch", - "indexmap 2.4.0", + "fs-err 3.0.0", + "indexmap 2.6.0", "itertools", "rattler_conda_types", "serde_json", "shlex", "tempfile", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -2880,9 +2804,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -2895,7 +2819,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2915,30 +2839,30 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] name = "reflink-copy" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc31414597d1cd7fdd2422798b7652a6329dda0fe0219e6335a13d5bcaa9aeb6" +checksum = "17400ed684c3a0615932f00c271ae3eea13e47056a1455821995122348ab6438" dependencies = [ "cfg-if", - "rustix 0.38.34", + "rustix", "windows", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -2952,13 +2876,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -2968,79 +2892,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[package]] -name = "relative-path" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", - "hyper-rustls 0.24.2", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] - -[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "relative-path" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" + +[[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "async-compression", "base64 0.22.1", "bytes", + "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.4.1", - "hyper-rustls 0.27.2", - "hyper-tls 0.6.0", + "hyper", + "hyper-rustls", + "hyper-tls", "hyper-util", "ipnet", "js-sys", @@ -3051,18 +2932,18 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.12", + "rustls", "rustls-native-certs", - "rustls-pemfile 2.1.3", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration 0.6.1", + "sync_wrapper", + "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-util", "tower-service", "url", @@ -3070,7 +2951,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.3", + "webpki-roots", "windows-registry", ] @@ -3082,10 +2963,10 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http 1.1.0", - "reqwest 0.12.7", + "http", + "reqwest", "serde", - "thiserror", + "thiserror 1.0.69", "tower-service", ] @@ -3115,9 +2996,9 @@ dependencies = [ [[package]] name = "rstest" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b423f0e62bdd61734b67cd21ff50871dfaeb9cc74f869dcd6af974fbcb19936" +checksum = "0a2c585be59b6b5dd66a9d2084aa1d8bd52fbdb806eafdeffb52791147862035" dependencies = [ "futures", "futures-timer", @@ -3127,9 +3008,9 @@ dependencies = [ [[package]] name = "rstest_macros" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e1711e7d14f74b12a58411c542185ef7fb7f2e7f8ee6e2940a883628522b42" +checksum = "825ea780781b15345a146be27eaefb05085e337e869bff01b4306a4fd4a9ad5a" dependencies = [ "cfg-if", "glob", @@ -3139,7 +3020,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.75", + "syn", "unicode-ident", ] @@ -3157,119 +3038,75 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.34" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.4.14", + "linux-raw-sys", "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.12" +version = "0.23.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", "rustls-pki-types", "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "security-framework 3.0.1", ] [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" dependencies = [ - "ring", - "untrusted", + "web-time", ] [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -3278,9 +3115,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "ryu" @@ -3299,11 +3136,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3312,16 +3149,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "secret-service" version = "4.0.0" @@ -3348,7 +3175,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -3356,9 +3196,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -3372,9 +3212,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.209" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -3392,22 +3232,22 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.6.0", "itoa", "memchr", "ryu", @@ -3422,7 +3262,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -3439,15 +3279,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", @@ -3457,14 +3297,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -3473,7 +3313,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.6.0", "itoa", "ryu", "serde", @@ -3534,13 +3374,12 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "simd-json" -version = "0.13.10" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "570c430b3d902ea083097e853263ae782dfe40857d93db019a12356c8e8143fa" +checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" dependencies = [ "getrandom", "halfbrown", - "lexical-core", "ref-cast", "serde", "serde_json", @@ -3550,9 +3389,9 @@ dependencies = [ [[package]] name = "simdutf8" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple_asn1" @@ -3562,7 +3401,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -3610,16 +3449,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.5.7" @@ -3636,6 +3465,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -3667,7 +3502,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.75", + "syn", ] [[package]] @@ -3678,20 +3513,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.75" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ "proc-macro2", "quote", @@ -3700,28 +3524,22 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] [[package]] -name = "system-configuration" -version = "0.5.1" +name = "synstructure" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3731,18 +3549,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.6.0", - "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "core-foundation 0.9.4", + "system-configuration-sys", ] [[package]] @@ -3757,9 +3565,9 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.41" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -3768,35 +3576,55 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", - "fastrand 2.1.0", + "fastrand", "once_cell", - "rustix 0.38.34", + "rustix", "windows-sys 0.59.0", ] [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "thiserror-impl", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -3840,6 +3668,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -3857,9 +3695,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -3867,7 +3705,7 @@ dependencies = [ "mio", "parking_lot", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio-macros", "windows-sys 0.52.0", ] @@ -3880,7 +3718,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -3893,32 +3731,22 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -3942,9 +3770,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -3961,36 +3789,15 @@ checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.6.0", "toml_datetime", "winnow", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - [[package]] name = "tower-service" version = "0.3.3" @@ -4016,7 +3823,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -4066,9 +3873,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typed-path" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04645b6c01cfb2ddabffc7c67ae6bfe7c3e28a5c37d729f6bb498e784f1fd70c" +checksum = "82205ffd44a9697e34fc145491aa47310f9871540bb7909eaa9365e0a9a46607" [[package]] name = "typeid" @@ -4095,39 +3902,27 @@ dependencies = [ [[package]] name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] -name = "unicode-normalization" -version = "0.1.23" +name = "unicode-width" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unsafe-libyaml" @@ -4149,9 +3944,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -4165,6 +3960,18 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -4173,9 +3980,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", "rand", @@ -4189,15 +3996,15 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" [[package]] name = "value-trait" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad8db98c1e677797df21ba03fca7d3bf9bec3ca38db930954e4fe6e1ea27eb4" +checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" dependencies = [ "float-cmp", "halfbrown", @@ -4212,16 +4019,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] -name = "version_check" -version = "0.9.5" +name = "version-ranges" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "f8d079415ceb2be83fc355adbadafe401307d5c309c7e6ade6638e6f9f42f42d" +dependencies = [ + "smallvec", +] [[package]] -name = "waker-fn" -version = "1.2.0" +name = "version_check" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -4250,9 +4060,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -4261,24 +4071,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -4288,9 +4098,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4298,28 +4108,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -4330,25 +4140,29 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] -name = "webpki-roots" -version = "0.25.4" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -4424,7 +4238,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -4435,7 +4249,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] [[package]] @@ -4618,22 +4432,24 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] [[package]] -name = "winreg" -version = "0.50.0" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "xattr" @@ -4642,8 +4458,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", - "linux-raw-sys 0.4.14", - "rustix 0.38.34", + "linux-raw-sys", + "rustix", ] [[package]] @@ -4656,6 +4472,30 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zbus" version = "4.4.0" @@ -4665,8 +4505,8 @@ dependencies = [ "async-broadcast", "async-executor", "async-fs", - "async-io 2.3.4", - "async-lock 3.4.0", + "async-io", + "async-lock", "async-process", "async-recursion", "async-task", @@ -4703,7 +4543,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.75", + "syn", "zvariant_utils", ] @@ -4736,7 +4576,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", ] [[package]] @@ -4745,20 +4606,42 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zip" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" +checksum = "99d52293fc86ea7cf13971b3bb81eb21683636e7ae24c729cdaf1b7c4157a352" dependencies = [ "arbitrary", "crc32fast", "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.4.0", + "indexmap 2.6.0", "memchr", - "thiserror", + "thiserror 2.0.3", "time", "zopfli", ] @@ -4827,7 +4710,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.75", + "syn", "zvariant_utils", ] @@ -4839,5 +4722,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn", ] diff --git a/Cargo.toml b/Cargo.toml index 4b6e4de..a72b470 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,40 +23,43 @@ rustls-tls = [ [dependencies] anyhow = "1.*" -clap = { version = "4.5.16", features = ["derive", "string"] } -clap-verbosity-flag = "2.2.1" -futures = "0.3.30" +clap = { version = "4.5.20", features = ["derive", "string"] } +clap-verbosity-flag = "2.2.2" +futures = "0.3.31" indicatif = "0.17.8" -rattler = { version = "0.27.6", default-features = false } -rattler_digest = "1.0.1" -rattler_conda_types = "0.27.2" -rattler_index = "0.19.24" -rattler_lock = "0.22.20" -rattler_networking = { version = "0.21.1", default-features = false } -rattler_package_streaming = { version = "0.22.3", default-features = false } -rattler_shell = "0.21.6" -reqwest = { version = "0.12.7", default-features = false, features = [ +rattler = { version = "0.28.0", default-features = false } +rattler_digest = "1.0.3" +rattler_conda_types = "0.29.0" +rattler_index = "0.19.34" +rattler_lock = "0.22.29" +rattler_networking = { version = "0.21.5", default-features = false } +rattler_package_streaming = { version = "0.22.11", default-features = false } +rattler_shell = "0.22.5" +reqwest = { version = "0.12.9", default-features = false, features = [ "http2", "macos-system-configuration", ] } reqwest-middleware = "0.3.3" -serde = { version = "1.0.209", features = ["derive"] } -serde_json = "1.0.127" +serde = { version = "1.0.214", features = ["derive"] } +serde_json = "1.0.132" serde_yaml = "0.9.34" tokio-tar = "0.3.1" -tokio = { version = "1.40.0", features = ["rt-multi-thread"] } -tokio-stream = { version = "0.1.15", features = ["fs"] } +tokio = { version = "1.41.0", features = ["rt-multi-thread"] } +tokio-stream = { version = "0.1.16", features = ["fs"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = [ "default", "env-filter", ] } tracing-log = "0.2.0" -url = "2.5.2" +url = "2.5.3" fxhash = "0.2.1" -tempfile = "3.12.0" +tempfile = "3.13.0" +walkdir = "2.5.0" +fs-set-times = "0.20.1" base64 = "0.22.1" [dev-dependencies] -async-std = "1.12.0" -rstest = "0.22.0" +async-std = "1.13.0" +rstest = "0.23.0" +sha2 = "0.10.8" diff --git a/pixi.lock b/pixi.lock index c81b3c2..c54e3d4 100644 --- a/pixi.lock +++ b/pixi.lock @@ -7,548 +7,540 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_16.conda - conda: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.40-h4852527_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-ha1999f0_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.40-hb3c18ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.43-h4852527_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.43-h4852527_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.33.1-heb4867d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.7.0-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.3-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.8.0-h2b85faf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py312h06ac9bb_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/compilers-1.7.0-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-24.7.1-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.3.0-pyh7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/compilers-1.8.0-ha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-24.9.2-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.8.0-h1a2810e_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fortran-compiler-1.7.0-heb67821_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.4-py312h9a8786e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-12.4.0-h236703b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-12.4.0-hb2e57f8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-12.4.0-h6b7512a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran-12.4.0-h236703b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-12.4.0-hc568b83_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-12.4.0-hd748a6a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-12.4.0-h236703b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-12.4.0-h613a52c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-12.4.0-h8489865_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-11.0.2-h434a139_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fortran-compiler-1.8.0-h36df796_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.6-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.3.0-h9576a4e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.3.0-hfea6d02_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran-13.3.0-h9576a4e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-13.3.0-h10434e7_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-13.3.0-hb919d3a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.3.0-h9576a4e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.3.0-hdbfa832_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-h4a8ded7_16.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.7.4-hfca40fe_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.9.1-hdb1bdb2_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-12.4.0-ha4f9413_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.3.0-h84ea5a7_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.9-h4cc3d14_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.9-py312h7fb9e8e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.11-hf72d635_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.11-py312hf3f0a4e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-12.4.0-h46f95d5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.3.0-heb74ff8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsolv-0.7.30-h3509ff9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.1.0-hc0a3c3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-12.4.0-ha4f9413_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.3.0-h84ea5a7_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.48.0-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-he7c6b58_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.5-hb346dea_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.1.2-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/micromamba-1.5.9-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.2.0-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/micromamba-2.0.2-2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.7.0-hf235a45_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-hb9d3cd8_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pkg-config-0.29.2-h4bc722e_1009.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prettier-3.3.3-hdfa8007_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py312h98912ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h41a817b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/reproc-14.2.4.post0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.4.post0-h59595ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/reproc-14.2.5.post0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.5.post0-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h98912ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.77.2-h70c747d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.77.2-h2c6d0dc_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h1de38c7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h53e704d_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.9.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.24.3-h8fae777_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h8572e83_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.3-h8fae777_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h68727a3_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-cpp-0.8.0-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h3483029_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda linux-aarch64: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-aarch64_curr_repodata_hack-4-h57d6b7b_16.conda - conda: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils-2.40-hf1166c9_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_impl_linux-aarch64-2.40-hf54a868_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_linux-aarch64-2.40-h1f91aba_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils-2.43-hf1166c9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_impl_linux-aarch64-2.43-h4c662bb_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_linux-aarch64-2.43-hf1166c9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.1.0-py312h2aa54b4_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.1.0-py312h6f74592_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.33.1-ha64f414_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-compiler-1.7.0-h31becfc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.3-h86ecc28_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-compiler-1.8.0-h6561dab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.8.30-hcefe29a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.0-py312hac81daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py312hac81daf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.7.0-h8af1aa0_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.7.1-py312h996f985_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.3.0-pyh7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cxx-compiler-1.7.0-h2a328a1_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.8.0-h8af1aa0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.9.2-py312h996f985_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cxx-compiler-1.8.0-heb6c788_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fmt-10.2.1-h2a328a1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fortran-compiler-1.7.0-h7048d53_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/frozendict-2.4.4-py312h396f95a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-12.4.0-h7e62973_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-12.4.0-hfb8d6db_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-12.4.0-heb3b579_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran-12.4.0-h7e62973_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_impl_linux-aarch64-12.4.0-h38ad816_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-12.4.0-hb03c106_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-12.4.0-h7e62973_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-12.4.0-h3c1ec91_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-12.4.0-h3f57e68_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fmt-11.0.2-h70be974_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fortran-compiler-1.8.0-h25a59a9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/frozendict-2.4.6-py312hb2c0f52_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-13.3.0-h8a56e6e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-13.3.0-hcdea9b6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-13.3.0-h1cd514b_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran-13.3.0-h8a56e6e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_impl_linux-aarch64-13.3.0-h174a3c4_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-13.3.0-h2809cf8_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-13.3.0-h8a56e6e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-13.3.0-h1211b58_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-13.3.0-h2864abd_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jsonpointer-3.0.0-py312h996f985_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-aarch64-4.18.0-h5b4a56d_16.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jsonpointer-3.0.0-py312h996f985_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-aarch64-4.18.0-h05a177a_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/keyutils-1.6.1-h4e544f5_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/krb5-1.21.3-h50a48e9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.40-h9fc2d93_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libarchive-3.7.4-h2c0effa_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.9.1-hfa30633_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.10.1-h3ec0cbf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h31becfc_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.2-h2f0025b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.1.0-he277a41_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-aarch64-12.4.0-h7b3af7c_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.1.0-he9431aa_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran5-14.1.0-h9420597_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.80.3-haee52c6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.1.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-aarch64-13.3.0-h0c07274_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran5-14.2.0-hb6113d0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.82.2-hc486b8e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.9-hee7cc92_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.9-py312hc6280c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.58.0-hb0e430d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.11-h489cd8b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.11-py312h33c3f33_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.64.0-hc8609a4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-12.4.0-h469570c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-13.3.0-ha58e236_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsolv-0.7.30-h62756fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.46.0-hf51ef55_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.0-h492db2e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.1.0-h3f4de04_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-aarch64-12.4.0-h7b3af7c_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.1.0-hf1166c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.1-ha41c0db_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-aarch64-13.3.0-h0c07274_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.48.0-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.12.7-h00a45b3_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h68df207_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.13.5-hf4efe5d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lz4-c-1.9.4-hd600fc2_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lzo-2.10-h31becfc_1001.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.1.2-py312h996f985_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-1.5.9-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.2.0-py312h996f985_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-2.0.2-2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.7.0-h8374285_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.3.1-h86ecc28_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.44-h070dd5b_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pkg-config-0.29.2-hce167ba_1009.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/prettier-3.3.3-h33a83fd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pycosat-0.6.6-py312hdd3e373_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.5-hb188aa9_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.7-h5d932e8_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.2-py312h396f95a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.2-py312hb2c0f52_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/reproc-14.2.4.post0-h31becfc_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/reproc-cpp-14.2.4.post0-h2f0025b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py312hdd3e373_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hdd3e373_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py312hb2c0f52_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hb2c0f52_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/rust-1.77.2-h9d3d833_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.77.2-hbe8e118_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.17-h5b4a56d_16.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h8e35287_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.17-h5b4a56d_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h112f5b8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.9.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.24.3-ha3529ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py312h8f0b210_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.3-ha3529ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py312h451a7dd_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-cpp-0.8.0-h2f0025b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h68df207_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312h9fc3309_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h86ecc28_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312hb698573_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda osx-64: - conda: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312heafc425_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312h5861a67_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.33.1-h44e7173_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.3-hf13058a_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.8.30-h8857fd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.0-py312hf857d28_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/conda-24.7.1-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.3.0-pyh7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/conda-24.9.2-py312hb401068_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.4-py312hbd25219_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-11.0.2-h3c5361c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.6-py312h3d0f464_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.9.1-hfcf2730_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-18.1.8-hd876a4e_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.10.1-h58e7537_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.4-hf95d169_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.9-hd44d3b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.9-py312haab923c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.11-hd41e4cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.11-py312h0252a60_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsolv-0.7.30-h69d5d9b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.48.0-h67532ce_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-heaf3512_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.47.0-h2f8c449_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-h3dc7d44_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.49.2-hd79239c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.5-h495214b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.1.2-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/micromamba-1.5.9-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.2.0-py312hb401068_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/micromamba-2.0.2-2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-hf036a51_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.7.0-hd71786a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-hd23fc13_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.11.0-hf4117ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hd471939_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pkg-config-0.29.2-hf7e621a_1009.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prettier-3.3.3-h2ff3409_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.6-py312h104f124_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.5-h37a9e06_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.7-h8f8b54e_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312hbd25219_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312hb553811_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/reproc-14.2.4.post0-h10d778d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/reproc-cpp-14.2.4.post0-h93d8f39_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/reproc-14.2.5.post0-h6e16a3a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/reproc-cpp-14.2.5.post0-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h41838bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py312h3d0f464_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h3d0f464_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/rust-1.77.2-h7e1429e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.77.2-h38e4360_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hd264b5c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hf3953a5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.9.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.24.3-h9bb4cbb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312h49ebfd2_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.3-h371c88c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hc5c4d5f_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-cpp-0.8.0-he965462_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h331e495_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h7122b0e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312h9f69965_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.33.1-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.3-h5505292_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.0-py312h0fad829_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.7.1-py312h81bd7bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.3.0-pyh7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.9.2-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/frozendict-2.4.4-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-11.0.2-h420ef59_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/frozendict-2.4.6-py312h0bf5046_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.9.1-hfd8ffcc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-18.1.8-h3ed4263_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.82.2-h07bd6cf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8414b35_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.9-hbfbf5c4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.9-py312h1ed1908_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.11-h4621f14_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.11-py312hd07f1d4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsolv-0.7.30-h6c9b7f8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.48.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-h01dff8b_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h9cc3647_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.5-hbbdcc80_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.1.2-py312h81bd7bf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-1.5.9-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.2.0-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-2.0.2-2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.7.0-h08fde81_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-h8359307_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pkg-config-0.29.2-hde07d2e_1009.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prettier-3.3.3-h0857397_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pycosat-0.6.6-py312h02f2b3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.5-h30c5eda_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-14.2.4.post0-h93a5062_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-cpp-14.2.4.post0-h965bd2d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-14.2.5.post0-h5505292_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-cpp-14.2.5.post0-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312he37b823_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py312h0bf5046_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312h0bf5046_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.77.2-h4ff7c5d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.77.2-hf6ec828_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-h563f0a8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-hdf53557_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.9.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.24.3-h3bba108_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h389731b_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.3-h0716509_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h6142ec9_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-cpp-0.8.0-h13dd4ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h721a963_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda win-64: - conda: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h53d5487_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/conda-24.7.1-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.3.0-pyh7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/conda-24.9.2-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/frozendict-2.4.4-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/fmt-11.0.2-h7f575de_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/frozendict-2.4.6-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libarchive-3.7.4-haf234dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.9.1-h18fefc2_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.9-hdee400e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.9-py312h0723cf6_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.11-h81425b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.11-py312h643a1bd_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsolv-0.7.30-hbb528cf_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h0f24e4e_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.5-h442d1da_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hcfcfb64_1001.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.1.2-py312h275cf98_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/micromamba-1.5.9-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.2.0-py312h275cf98_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/micromamba-2.0.2-2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.7.0-h57928b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pkg-config-0.29.2-h88c491f_1009.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/prettier-3.3.3-ha3c0332_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/pycosat-0.6.6-py312he70551f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh0701188_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.5-h889d299_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.4.post0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-cpp-14.2.4.post0-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.5.post0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-cpp-14.2.5.post0-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312he70551f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/rust-1.77.2-hf8d6059_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.77.2-h17fc481_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-h823019e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-ha073cba_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.9.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.24.3-h813c833_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312h0d7def4_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_20.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.3-ha073cba_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312hd5eb7cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-cpp-0.8.0-h63175ca_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda demo: channels: @@ -573,227 +565,222 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py312h06ac9bb_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.1.0-hc0a3c3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-h4bc722e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.48.0-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.7.0-hf235a45_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-hb9d3cd8_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prettier-3.3.3-hdfa8007_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h41a817b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.0-h9ebbce0_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.13-5_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py313h536fd9c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h98912ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h1de38c7_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py313h536fd9c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py313h536fd9c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h53e704d_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.24.3-h8fae777_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h8572e83_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.3-h8fae777_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py313h33d0bda_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda linux-aarch64: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.8.30-hcefe29a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.0-py312hac81daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py313h2135053_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.40-h9fc2d93_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.2-h2f0025b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.1.0-he277a41_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.1.0-he9431aa_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.1.0-he277a41_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.46.0-hf51ef55_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.1.0-h3f4de04_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.1.0-hf1166c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmpdec-4.0.0-h68df207_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.48.0-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h68df207_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.7.0-h8374285_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.3.1-h86ecc28_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/prettier-3.3.3-h33a83fd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.5-hb188aa9_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.2-py312h396f95a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.13.0-h6bfe66a_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.13-5_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.2-py313h31d5739_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py312hdd3e373_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hdd3e373_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h8e35287_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py313h31d5739_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py313h31d5739_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h112f5b8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.24.3-ha3529ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py312h8f0b210_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.3-ha3529ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py313h44a8f36_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h68df207_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h86ecc28_2.conda osx-64: - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.8.30-h8857fd0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.0-py312hf857d28_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py313h49682b3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-18.1.8-hd876a4e_6.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.4-hf95d169_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.48.0-h67532ce_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-hfdf4475_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.47.0-h2f8c449_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.49.2-hd79239c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-hf036a51_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.7.0-hd71786a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-hd23fc13_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.11.0-hf4117ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hd471939_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prettier-3.3.3-h2ff3409_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.5-h37a9e06_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312hbd25219_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.13.0-h0608dab_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.13-5_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py313ha37c0e0_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h41838bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hd264b5c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py313hb558fbc_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py313hb558fbc_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hf3953a5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.24.3-h9bb4cbb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312h49ebfd2_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.3-h371c88c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py313h0c4e38b_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda osx-arm64: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.0-py312h0fad829_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py313hc845a76_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-18.1.8-h3ed4263_6.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.48.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h99b78c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.7.0-h08fde81_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-h8359307_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prettier-3.3.3-h0857397_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.5-h30c5eda_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h7e5086c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.0-h75c3a9f_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.13-5_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py313h20a7fcf_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312he37b823_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-h563f0a8_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py313h63a2874_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py313h63a2874_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-hdf53557_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.24.3-h3bba108_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h389731b_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.3-h0716509_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py313hf9c7212_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda win-64: - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.0-py312h4389bb4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313ha7868ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.7.0-h57928b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/prettier-3.3.3-ha3c0332_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.5-h889d299_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312he70551f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-h823019e_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.0-hf5aa216_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.13-5_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py313ha7868ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py313ha7868ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py313ha7868ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-ha073cba_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.24.3-h813c833_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312h0d7def4_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_20.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.3-ha073cba_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py313h1ec8472_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 packages: @@ -843,34 +830,6 @@ packages: license_family: BSD size: 23712 timestamp: 1650670790230 -- kind: conda - name: _sysroot_linux-64_curr_repodata_hack - version: '3' - build: h69a702a_16 - build_number: 16 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_16.conda - sha256: 6ac30acdbfd3136ee7a1de28af4355165291627e905715611726e674499b0786 - md5: 1c005af0c6ff22814b7c52ee448d4bea - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL - size: 20798 - timestamp: 1720621358501 -- kind: conda - name: _sysroot_linux-aarch64_curr_repodata_hack - version: '4' - build: h57d6b7b_16 - build_number: 16 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-aarch64_curr_repodata_hack-4-h57d6b7b_16.conda - sha256: 9145a604443bd9a08a210e6fabc33c719fcb20a3276036386ccb2c6d90dbae56 - md5: a987fa62103c4fcf9a572795723bc721 - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL - size: 20978 - timestamp: 1720621376589 - kind: conda name: archspec version: 0.2.3 @@ -887,98 +846,96 @@ packages: timestamp: 1708969700251 - kind: conda name: binutils - version: '2.40' - build: h4852527_7 - build_number: 7 + version: '2.43' + build: h4852527_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.40-h4852527_7.conda - sha256: 75d7f5cda999fe1efe9f1de1be2d3e4ce32b20cbf97d1ef7b770e2e90c062858 - md5: df53aa8418f8c289ae9b9665986034f8 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.43-h4852527_2.conda + sha256: 92be0f8ccd501ceeb3c782e2182e6ea04dca46799038176de40a57bca45512c5 + md5: 348619f90eee04901f4a70615efff35b depends: - - binutils_impl_linux-64 >=2.40,<2.41.0a0 + - binutils_impl_linux-64 >=2.43,<2.44.0a0 license: GPL-3.0-only license_family: GPL - size: 31696 - timestamp: 1718625692046 + size: 33876 + timestamp: 1729655402186 - kind: conda name: binutils - version: '2.40' - build: hf1166c9_7 - build_number: 7 + version: '2.43' + build: hf1166c9_2 + build_number: 2 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils-2.40-hf1166c9_7.conda - sha256: d9b3be000579bb8c4348667173d353ff222e65dba30b57ddcb60bce9b0680f77 - md5: b14fec1a6f72700f1f5ec7642ad21bbf + url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils-2.43-hf1166c9_2.conda + sha256: 50962dd8b4de41c9dcd2d19f37683aff1a7c3fc01e6b1617dd250940f2b83055 + md5: 4afcab775fe2288fce420514cd92ae37 depends: - - binutils_impl_linux-aarch64 >=2.40,<2.41.0a0 + - binutils_impl_linux-aarch64 >=2.43,<2.44.0a0 license: GPL-3.0-only license_family: GPL - size: 31854 - timestamp: 1718625700646 + size: 33870 + timestamp: 1729655405026 - kind: conda name: binutils_impl_linux-64 - version: '2.40' - build: ha1999f0_7 - build_number: 7 + version: '2.43' + build: h4bf12b8_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-ha1999f0_7.conda - sha256: 230f3136d17fdcf0e6da3a3ae59118570bc18106d79dd29bf2f341338d2a42c4 - md5: 3f840c7ed70a96b5ebde8044b2f36f32 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda + sha256: 267e78990247369b13234bda270f31beb56a600b4851a8244e31dd9ad85b3b17 + md5: cf0c5521ac2a20dfa6c662a4009eeef6 depends: - - ld_impl_linux-64 2.40 hf3520f5_7 + - ld_impl_linux-64 2.43 h712a8e2_2 - sysroot_linux-64 license: GPL-3.0-only license_family: GPL - size: 6250821 - timestamp: 1718625666382 + size: 5682777 + timestamp: 1729655371045 - kind: conda name: binutils_impl_linux-aarch64 - version: '2.40' - build: hf54a868_7 - build_number: 7 + version: '2.43' + build: h4c662bb_2 + build_number: 2 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_impl_linux-aarch64-2.40-hf54a868_7.conda - sha256: 71d3bae11ebe72005216aa359325a6451b9c040c1a2c6411409d093d11f90114 - md5: 1c626cff2060938c4d7ec45068b50dc3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_impl_linux-aarch64-2.43-h4c662bb_2.conda + sha256: 0bb8058bdb662e085f844f803a98e89314268c3e7aa79d495529992a8f41ecf1 + md5: 2eb09e329ee7030a4cab0269eeea97d4 depends: - - ld_impl_linux-aarch64 2.40 h9fc2d93_7 + - ld_impl_linux-aarch64 2.43 h80caac9_2 - sysroot_linux-aarch64 license: GPL-3.0-only license_family: GPL - size: 6095853 - timestamp: 1718625674423 + size: 6722685 + timestamp: 1729655379343 - kind: conda name: binutils_linux-64 - version: '2.40' - build: hb3c18ed_1 - build_number: 1 + version: '2.43' + build: h4852527_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.40-hb3c18ed_1.conda - sha256: fc7123b9b3fe79e66b5196500ce6d555ad7ebcdf15b0cf86b728ef52f144ee65 - md5: 36644b44330c28c797e9fd2c88bcd73e + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.43-h4852527_2.conda + sha256: df52bd8b8b2a20a0c529d9ad08aaf66093ac318aa8a33d270f18274341a77062 + md5: 18aba879ddf1f8f28145ca6fcb873d8c depends: - - binutils_impl_linux-64 2.40.* - - sysroot_linux-64 - license: BSD-3-Clause - license_family: BSD - size: 29235 - timestamp: 1724909758636 + - binutils_impl_linux-64 2.43 h4bf12b8_2 + license: GPL-3.0-only + license_family: GPL + size: 34945 + timestamp: 1729655404893 - kind: conda name: binutils_linux-aarch64 - version: '2.40' - build: h1f91aba_1 - build_number: 1 + version: '2.43' + build: hf1166c9_2 + build_number: 2 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_linux-aarch64-2.40-h1f91aba_1.conda - sha256: ff2760433f951a6dd640b36023f36e9d897d42c04545bb45f65ec2b11c6f20d8 - md5: 936e6ded6f6ab2a9f8e45fe1d2d8cf02 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/binutils_linux-aarch64-2.43-hf1166c9_2.conda + sha256: 97fe7c2023fdbef453a2a05d53d81037a7e18c4b3946dd68a7ea122747e7d1fa + md5: 5c308468fe391f32dc3bb57a4b4622aa depends: - - binutils_impl_linux-aarch64 2.40.* - - sysroot_linux-aarch64 - license: BSD-3-Clause - license_family: BSD - size: 29351 - timestamp: 1724909818031 + - binutils_impl_linux-aarch64 2.43 h4c662bb_2 + license: GPL-3.0-only + license_family: GPL + size: 34879 + timestamp: 1729655407691 - kind: conda name: boltons version: 24.0.0 @@ -997,104 +954,107 @@ packages: - kind: conda name: brotli-python version: 1.1.0 - build: py312h2aa54b4_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.1.0-py312h2aa54b4_1.conda - sha256: 5762bb7d3aaea2637840a6c30dbd398d450aa9376b507dbe5db75e92d221ddd5 - md5: 7253fd6feb797007a3d290bbcfd23a84 + build: py312h275cf98_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_2.conda + sha256: f83baa6f6bcba7b73f6921d5c1aa95ffc5d8b246ade933ade79250de0a4c9c4c + md5: a99aec1ac46794a5fb1cd3cf5d2b6110 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - - libbrotlicommon 1.1.0 h31becfc_1 + - libbrotlicommon 1.1.0 h2466b09_2 license: MIT license_family: MIT - size: 356001 - timestamp: 1695990453402 + size: 321874 + timestamp: 1725268491976 - kind: conda name: brotli-python version: 1.1.0 - build: py312h30efb56_1 - build_number: 1 + build: py312h2ec8cdc_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h30efb56_1.conda - sha256: b68706698b6ac0d31196a8bcb061f0d1f35264bcd967ea45e03e108149a74c6f - md5: 45801a89533d3336a365284d93298e36 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + sha256: f2a59ccd20b4816dea9a2a5cb917eb69728271dbf1aeab4e1b7e609330a50b6f + md5: b0b867af6fc74b2a0aa206da29c0f3cf depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 constrains: - - libbrotlicommon 1.1.0 hd590300_1 + - libbrotlicommon 1.1.0 hb9d3cd8_2 license: MIT license_family: MIT - size: 350604 - timestamp: 1695990206327 + size: 349867 + timestamp: 1725267732089 - kind: conda name: brotli-python version: 1.1.0 - build: py312h53d5487_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h53d5487_1.conda - sha256: 769e276ecdebf86f097786cbde1ebd11e018cd6cd838800995954fe6360e0797 - md5: d01a6667b99f0e8ad4097af66c938e62 + build: py312h5861a67_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312h5861a67_2.conda + sha256: 265764ff4ad9e5cfefe7ea85c53d95157bf16ac2c0e5f190c528e4c9c0c1e2d0 + md5: b95025822e43128835826ec0cc45a551 depends: - - python >=3.12.0rc3,<3.13.0a0 + - __osx >=10.13 + - libcxx >=17 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 constrains: - - libbrotlicommon 1.1.0 hcfcfb64_1 + - libbrotlicommon 1.1.0 h00291cd_2 license: MIT license_family: MIT - size: 322514 - timestamp: 1695991054894 + size: 363178 + timestamp: 1725267893889 - kind: conda name: brotli-python version: 1.1.0 - build: py312h9f69965_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312h9f69965_1.conda - sha256: 3418b1738243abba99e931c017b952771eeaa1f353c07f7d45b55e83bb74fcb3 - md5: 1bc01b9ffdf42beb1a9fe4e9222e0567 + build: py312h6f74592_2 + build_number: 2 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.1.0-py312h6f74592_2.conda + sha256: 9736bf660a0e4260c68f81d2635b51067f817813e6490ac9e8abd9a835dcbf6d + md5: e1e9727063057168d95f27a032acd0a4 depends: - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - - libbrotlicommon 1.1.0 hb547adb_1 + - libbrotlicommon 1.1.0 h86ecc28_2 license: MIT license_family: MIT - size: 343435 - timestamp: 1695990731924 + size: 356878 + timestamp: 1725267878508 - kind: conda name: brotli-python version: 1.1.0 - build: py312heafc425_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312heafc425_1.conda - sha256: fc55988f9bc05a938ea4b8c20d6545bed6e9c6c10aa5147695f981136ca894c1 - md5: a288b88f06b8bfe0dedaf5c4b6ac6b7a + build: py312hde4cb15_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda + sha256: 254b411fa78ccc226f42daf606772972466f93e9bc6895eabb4cfda22f5178af + md5: a83c2ef76ccb11bc2349f4f17696b15d depends: - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 + - __osx >=11.0 + - libcxx >=17 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - - libbrotlicommon 1.1.0 h0dc2134_1 + - libbrotlicommon 1.1.0 hd74edd7_2 license: MIT license_family: MIT - size: 366883 - timestamp: 1695990710194 + size: 339360 + timestamp: 1725268143995 - kind: conda name: bzip2 version: 1.0.8 @@ -1175,96 +1135,99 @@ packages: timestamp: 1720974491916 - kind: conda name: c-ares - version: 1.33.1 - build: h44e7173_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.33.1-h44e7173_0.conda - sha256: 98b0ac09472e6737fc4685147d1755028cc650d428369cbe3cb74ab38b327095 - md5: b31a2de5edfddb308dda802eab2956dc + version: 1.34.3 + build: h5505292_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.3-h5505292_1.conda + sha256: 6dfa83cbd9acc8671d439fe9c745a5716faf6cbadf2f1e18c841bcf86cbba5f2 + md5: fb72102e8a8f9bcd38e40af09ff41c42 depends: - - __osx >=10.13 + - __osx >=11.0 license: MIT license_family: MIT - size: 163203 - timestamp: 1724438157472 + size: 179318 + timestamp: 1732447193278 - kind: conda name: c-ares - version: 1.33.1 - build: ha64f414_0 + version: 1.34.3 + build: h86ecc28_1 + build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.33.1-ha64f414_0.conda - sha256: c9eddea9beb6ba629cb922082fcf144936cd47cc9ed7625e98106f314d237e0f - md5: 2165b9057be5ecaa90f2efd192f1155e + url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.3-h86ecc28_1.conda + sha256: 1181db17781d9d66c1478e7fbc3e82dd273e9cb43ed910e1d0f8b3c96b16e290 + md5: 0cd9ebf65479cdceb6a4888b764dafcd depends: - - __glibc >=2.28,<3.0.a0 - - libgcc-ng >=13 + - libgcc >=13 license: MIT license_family: MIT - size: 192713 - timestamp: 1724438144931 + size: 214791 + timestamp: 1732447020593 - kind: conda name: c-ares - version: 1.33.1 - build: hd74edd7_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.33.1-hd74edd7_0.conda - sha256: ad29a9cffa0504cb4bf7605963816feff3c7833f36b050e1e71912d09c38e3f6 - md5: 5b69c16ee900aeffcf0103268d708518 + version: 1.34.3 + build: hb9d3cd8_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.3-hb9d3cd8_1.conda + sha256: 732571ba6286dbccbf4c6450078a581b7a5620204faf876ff0ef282d77a6bfa8 + md5: ee228789a85f961d14567252a03e725f depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT - size: 159389 - timestamp: 1724438175204 + size: 204857 + timestamp: 1732447031823 - kind: conda name: c-ares - version: 1.33.1 - build: heb4867d_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.33.1-heb4867d_0.conda - sha256: 2cb24f613eaf2850b1a08f28f967b10d8bd44ef623efa0154dc45eb718776be6 - md5: 0d3c60291342c0c025db231353376dfb + version: 1.34.3 + build: hf13058a_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.3-hf13058a_1.conda + sha256: 37c031f91bb4c7ebec248e283c453b24840764fb53b640768780dcd904093f17 + md5: 7d8083876d71fe1316fc18369ee0dc58 depends: - - __glibc >=2.28,<3.0.a0 - - libgcc-ng >=13 + - __osx >=10.13 license: MIT license_family: MIT - size: 182796 - timestamp: 1724438109690 + size: 184403 + timestamp: 1732447223773 - kind: conda name: c-compiler - version: 1.7.0 - build: h31becfc_1 + version: 1.8.0 + build: h2b85faf_1 build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-compiler-1.7.0-h31becfc_1.conda - sha256: 394249a91908851b44fb93477bb88f42ff94ee225df54b1fec97710661d5a9a9 - md5: d6ee3d20f681cdb37e631f67bfc76225 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.8.0-h2b85faf_1.conda + sha256: 009fced27be14e5ac750a04111a07eda79d73f80009300c1538cb83d5da71879 + md5: fa7b3bf2965b9d74a81a0702d9bb49ee depends: - binutils - gcc - - gcc_linux-aarch64 12.* + - gcc_linux-64 13.* license: BSD-3-Clause license_family: BSD - size: 6329 - timestamp: 1714575480249 + size: 6085 + timestamp: 1728985300402 - kind: conda name: c-compiler - version: 1.7.0 - build: hd590300_1 + version: 1.8.0 + build: h6561dab_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.7.0-hd590300_1.conda - sha256: 4213b6cbaed673c07f8b79c089f3487afdd56de944f21c4861ead862b7657eb4 - md5: e9dffe1056994133616378309f932d77 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-compiler-1.8.0-h6561dab_1.conda + sha256: f1b894a87a9bd8446de2ebd1820cc965e1fe2d5462e8c7df43a0b108732597a2 + md5: 715a2eea9897fb01de5dd6ba82728935 depends: - binutils - gcc - - gcc_linux-64 12.* + - gcc_linux-aarch64 13.* license: BSD-3-Clause license_family: BSD - size: 6324 - timestamp: 1714575511013 + size: 6190 + timestamp: 1728985292548 - kind: conda name: ca-certificates version: 2024.8.30 @@ -1322,27 +1285,26 @@ packages: timestamp: 1725019034582 - kind: conda name: certifi - version: 2024.7.4 + version: 2024.8.30 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.7.4-pyhd8ed1ab_0.conda - sha256: dd3577bb5275062c388c46b075dcb795f47f8dac561da7dd35fe504b936934e5 - md5: 24e7fd6ca65997938fff9e5ab6f653e4 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + sha256: 7020770df338c45ac6b560185956c32f0a5abf4b76179c037f115fc7d687819f + md5: 12f7d00853807b0531775e9be891cb11 depends: - python >=3.7 license: ISC - size: 159308 - timestamp: 1720458053074 + size: 163752 + timestamp: 1725278204397 - kind: conda name: cffi - version: 1.17.0 - build: py312h06ac9bb_1 - build_number: 1 + version: 1.17.1 + build: py312h06ac9bb_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.0-py312h06ac9bb_1.conda - sha256: 397f588c30dd1a30236d289d8dc7f3c34cd71a498dc66d20450393014594cf4d - md5: db9bdbaee0f524ead0471689f002781e + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457 + md5: a861504bbea4161a9170b85d4d2be840 depends: - __glibc >=2.17,<3.0.a0 - libffi >=3.4,<4.0a0 @@ -1352,17 +1314,16 @@ packages: - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 294242 - timestamp: 1724956485789 + size: 294403 + timestamp: 1725560714366 - kind: conda name: cffi - version: 1.17.0 - build: py312h0fad829_1 - build_number: 1 + version: 1.17.1 + build: py312h0fad829_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.0-py312h0fad829_1.conda - sha256: 3e3c78e04269a03e8cac83148b69d6c330cf77b90b8d59e8e321acfb2c16db83 - md5: cf8e510dbb47809b67fa449104bb4d26 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + sha256: 8d91a0d01358b5c3f20297c6c536c5d24ccd3e0c2ddd37f9d0593d0f0070226f + md5: 19a5456f72f505881ba493979777b24e depends: - __osx >=11.0 - libffi >=3.4,<4.0a0 @@ -1372,17 +1333,16 @@ packages: - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 280650 - timestamp: 1724956628231 + size: 281206 + timestamp: 1725560813378 - kind: conda name: cffi - version: 1.17.0 - build: py312h4389bb4_1 - build_number: 1 + version: 1.17.1 + build: py312h4389bb4_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.0-py312h4389bb4_1.conda - sha256: 803bdcb5810d4cdb9f9078c1e6919991b1690c5cd377d5c8750949e5a33d3933 - md5: e3ef6142f31811dd89906a0d57b9d213 + url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + sha256: ac007bf5fd56d13e16d95eea036433012f2e079dc015505c8a79efebbad1fcbc + md5: 08310c1a22ef957d537e547f8d484f92 depends: - pycparser - python >=3.12,<3.13.0a0 @@ -1392,17 +1352,16 @@ packages: - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 289890 - timestamp: 1724956869589 + size: 288142 + timestamp: 1725560896359 - kind: conda name: cffi - version: 1.17.0 - build: py312hac81daf_1 - build_number: 1 + version: 1.17.1 + build: py312hac81daf_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.0-py312hac81daf_1.conda - sha256: 8c4f7871d78f51496b50a4879641adcfc1579351ca793318b206320afa201981 - md5: 019c21ad23e177293b984f21e0db6cd6 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py312hac81daf_0.conda + sha256: 1162e3ca039e7ca7c0e78f0a020ed1bde968096841b663e3f393c966eb82f0f0 + md5: 1a256e5581b1099e9295cb84d53db3ea depends: - libffi >=3.4,<4.0a0 - libgcc >=13 @@ -1411,17 +1370,16 @@ packages: - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 311879 - timestamp: 1724958211763 + size: 312892 + timestamp: 1725561779888 - kind: conda name: cffi - version: 1.17.0 - build: py312hf857d28_1 - build_number: 1 + version: 1.17.1 + build: py312hf857d28_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.0-py312hf857d28_1.conda - sha256: b416ece3415558013787dd70e79ef32d95688ce949a663c7801511c3abffaf7b - md5: 7c2757c9333c645cb6658e8eba57c8d8 + url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda + sha256: 94fe49aed25d84997e2630d6e776a75ee2a85bd64f258702c57faa4fe2986902 + md5: 5bbc69b8194fedc2792e451026cac34f depends: - __osx >=10.13 - libffi >=3.4,<4.0a0 @@ -1430,8 +1388,101 @@ packages: - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 281544 - timestamp: 1724956441388 + size: 282425 + timestamp: 1725560725144 +- kind: conda + name: cffi + version: 1.17.1 + build: py313h2135053_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py313h2135053_0.conda + sha256: 59842445337855185bee9d11a6624cf2fad651230496793f7b21d2243f7b4039 + md5: c5506b336622c8972eb38613f7937f26 + depends: + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 314846 + timestamp: 1725561791533 +- kind: conda + name: cffi + version: 1.17.1 + build: py313h49682b3_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py313h49682b3_0.conda + sha256: 660c8f8488f78c500a1bb4a803c31403104b1ee2cabf1476a222a3b8abf5a4d7 + md5: 98afc301e6601a3480f9e0b9f8867ee0 + depends: + - __osx >=10.13 + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 284540 + timestamp: 1725560667915 +- kind: conda + name: cffi + version: 1.17.1 + build: py313ha7868ed_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py313ha7868ed_0.conda + sha256: b19f581fe423858f1f477c52e10978be324c55ebf2e418308d30d013f4a476ff + md5: 519a29d7ac273f8c165efc0af099da42 + depends: + - pycparser + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 291828 + timestamp: 1725561211547 +- kind: conda + name: cffi + version: 1.17.1 + build: py313hc845a76_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py313hc845a76_0.conda + sha256: 50650dfa70ccf12b9c4a117d7ef0b41895815bb7328d830d667a6ba3525b60e8 + md5: 6d24d5587a8615db33c961a4ca0a8034 + depends: + - __osx >=11.0 + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.13.0rc1,<3.14.0a0 + - python >=3.13.0rc1,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 282115 + timestamp: 1725560759157 +- kind: conda + name: cffi + version: 1.17.1 + build: py313hfab6e84_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py313hfab6e84_0.conda + sha256: 73cd6199b143a8a6cbf733ce124ed57defc1b9a7eab9b10fd437448caf8eaa45 + md5: ce6386a5892ef686d6d680c345c40ad1 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 295514 + timestamp: 1725560706794 - kind: conda name: cfgv version: 3.3.1 @@ -1449,19 +1500,19 @@ packages: timestamp: 1629909423398 - kind: conda name: charset-normalizer - version: 3.3.2 + version: 3.4.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda - sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9 - md5: 7f4a9e3fcff3f6356ae99244a014da6a + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda + sha256: 1873ac45ea61f95750cb0b4e5e675d1c5b3def937e80c7eebb19297f76810be8 + md5: a374efa97290b8799046df7c5ca17164 depends: - python >=3.7 license: MIT license_family: MIT - size: 46597 - timestamp: 1698833765762 + size: 47314 + timestamp: 1728479405343 - kind: conda name: colorama version: 0.4.6 @@ -1479,46 +1530,46 @@ packages: timestamp: 1666700778190 - kind: conda name: compilers - version: 1.7.0 + version: 1.8.0 build: h8af1aa0_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.7.0-h8af1aa0_1.conda - sha256: ce13469e8edf1639a72b3e154ab67887d92d4701b455e869ddfb69d91f10f353 - md5: 9e0a0a727ec99e90664c2a95515693cb + url: https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.8.0-h8af1aa0_1.conda + sha256: 164cbfcb9d15a566540ab7d198a2ddfe194a3c1c9c459b7659593128059183a6 + md5: 78f10b0d30c7ccd5a18a09a542373ab7 depends: - - c-compiler 1.7.0 h31becfc_1 - - cxx-compiler 1.7.0 h2a328a1_1 - - fortran-compiler 1.7.0 h7048d53_1 + - c-compiler 1.8.0 h6561dab_1 + - cxx-compiler 1.8.0 heb6c788_1 + - fortran-compiler 1.8.0 h25a59a9_1 license: BSD-3-Clause license_family: BSD - size: 7131 - timestamp: 1714575484670 + size: 6996 + timestamp: 1728985293799 - kind: conda name: compilers - version: 1.7.0 + version: 1.8.0 build: ha770c72_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/compilers-1.7.0-ha770c72_1.conda - sha256: f50660a6543c401448e435ff71a2849faae203e3362be7618d994b6baf345f12 - md5: d8d07866ac3b5b6937213c89a1874f08 + url: https://conda.anaconda.org/conda-forge/linux-64/compilers-1.8.0-ha770c72_1.conda + sha256: d2fa2f8cb3df79f543758c8e288f1a74a2acca57245f1e03919bffa3e40aad2d + md5: 061e111d02f33a99548f0de07169d9fb depends: - - c-compiler 1.7.0 hd590300_1 - - cxx-compiler 1.7.0 h00ab1b0_1 - - fortran-compiler 1.7.0 heb67821_1 + - c-compiler 1.8.0 h2b85faf_1 + - cxx-compiler 1.8.0 h1a2810e_1 + - fortran-compiler 1.8.0 h36df796_1 license: BSD-3-Clause license_family: BSD - size: 7129 - timestamp: 1714575517071 + size: 6932 + timestamp: 1728985303287 - kind: conda name: conda - version: 24.7.1 + version: 24.9.2 build: py312h2e8e312_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/conda-24.7.1-py312h2e8e312_0.conda - sha256: 6a6747ad084451579e8296efd4294b85a25b4a6ba5603310163f1d8570148cae - md5: 647f2142bcb4ed276cd54fccb892d1dd + url: https://conda.anaconda.org/conda-forge/win-64/conda-24.9.2-py312h2e8e312_0.conda + sha256: bc30bbb602d12f60b371ad930501e6b922d6a99efa872dcb13859ab18c2d2180 + md5: e96a579e12e284c0e77fcb4037e6f1ea depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1543,20 +1594,20 @@ packages: - zstandard >=0.19.0 constrains: - conda-build >=24.3 - - conda-content-trust >=0.1.1 - conda-env >=2.6 + - conda-content-trust >=0.1.1 license: BSD-3-Clause license_family: BSD - size: 1222604 - timestamp: 1722273881078 + size: 1161848 + timestamp: 1729155771939 - kind: conda name: conda - version: 24.7.1 + version: 24.9.2 build: py312h7900ff3_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-24.7.1-py312h7900ff3_0.conda - sha256: a9ab2197ce45c9a2d418cecc5eea4b41ee99412a2b405a4a87570c396ed2679d - md5: e1bf59014e88eaff036101358f63a496 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-24.9.2-py312h7900ff3_0.conda + sha256: 705f9cf0b3685774e46fd1be20c69202fd79d823431c64e2af4361ca6473c57b + md5: 132748eafd19d4c984595d301806f0b1 depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1580,21 +1631,21 @@ packages: - truststore >=0.8.0 - zstandard >=0.19.0 constrains: - - conda-env >=2.6 - conda-build >=24.3 + - conda-env >=2.6 - conda-content-trust >=0.1.1 license: BSD-3-Clause license_family: BSD - size: 1219758 - timestamp: 1722273265556 + size: 1158773 + timestamp: 1729155303908 - kind: conda name: conda - version: 24.7.1 + version: 24.9.2 build: py312h81bd7bf_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.7.1-py312h81bd7bf_0.conda - sha256: 71c075328c13382cfcdf81bae9cfe064f52f53318f9f5a218531b216c6920a0f - md5: 901803f9834eaf3fcbb21d3f221b4d83 + url: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.9.2-py312h81bd7bf_0.conda + sha256: 9fd0cf944aa1c962b3d73a3353bed53d34621305e9a2d138d70d8e1ebbeaaebd + md5: 33246b020f664b7404cadc0e266f5b16 depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1619,21 +1670,21 @@ packages: - truststore >=0.8.0 - zstandard >=0.19.0 constrains: - - conda-env >=2.6 - conda-content-trust >=0.1.1 - conda-build >=24.3 + - conda-env >=2.6 license: BSD-3-Clause license_family: BSD - size: 1222099 - timestamp: 1722273469549 + size: 1162019 + timestamp: 1729155467183 - kind: conda name: conda - version: 24.7.1 + version: 24.9.2 build: py312h996f985_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.7.1-py312h996f985_0.conda - sha256: 6d674c11a579f8051fa534df712e002b1fa7caab6ab330c9c934677645bb9ead - md5: 92e527ada42816d9099e1e226247a804 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.9.2-py312h996f985_0.conda + sha256: 7745d2cc63d62a46475a4c61da914a45ce600f15e371355ce7026669bff263ea + md5: dc0f6f79a447cbbad02c856deb531a7b depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1663,16 +1714,16 @@ packages: - conda-content-trust >=0.1.1 license: BSD-3-Clause license_family: BSD - size: 1221559 - timestamp: 1722273457039 + size: 1160794 + timestamp: 1729155457680 - kind: conda name: conda - version: 24.7.1 + version: 24.9.2 build: py312hb401068_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/conda-24.7.1-py312hb401068_0.conda - sha256: 0fed930a019d6ad407cb9e98d552026686219ef21510ba1d622f329484aa5359 - md5: 2337afa089fb528723069d900e8ca6a3 + url: https://conda.anaconda.org/conda-forge/osx-64/conda-24.9.2-py312hb401068_0.conda + sha256: 22f93dccb52c3621c9542dc5f1c9ef3b0558cd34298784481e4c9abfcf3cd677 + md5: 06339440083591573deacb6e63ab1f6b depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1697,21 +1748,21 @@ packages: - zstandard >=0.19.0 constrains: - conda-build >=24.3 - - conda-env >=2.6 - conda-content-trust >=0.1.1 + - conda-env >=2.6 license: BSD-3-Clause license_family: BSD - size: 1222420 - timestamp: 1722273360724 + size: 1163211 + timestamp: 1729155314354 - kind: conda name: conda-libmamba-solver - version: 24.7.0 + version: 24.9.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.7.0-pyhd8ed1ab_0.conda - sha256: e0cb57f5f86a18dc75045946ad3543a4e219a7b61b8f94fa2eba901c13b5cd69 - md5: 857c9e25f0a77c0bd7eb622d46d9418f + url: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda + sha256: a93ddbad869701615b420be1600fcab90bc7fc852b9fd55fe7975de97ee60ea6 + md5: 45378d089c5f72c9c0d63d58414c645d depends: - boltons >=23.0.0 - conda >=23.7.4 @@ -1719,90 +1770,90 @@ packages: - python >=3.8 license: BSD-3-Clause license_family: BSD - size: 40890 - timestamp: 1721292570796 + size: 41613 + timestamp: 1727359934505 - kind: conda name: conda-package-handling - version: 2.3.0 + version: 2.4.0 build: pyh7900ff3_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.3.0-pyh7900ff3_0.conda - sha256: c85a76ffd08608c3c61d1ca6c82be9f45ab31a5e108a1aec0872d84b3546e4f1 - md5: 0a7dce281ae2be81acab0aa963e6bb99 + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda + sha256: b3a315523703abd198e1c2ff1ea84b30b270a301f8071d4381b1f575e790d049 + md5: 686fb26b6fd490b533ec580da90b2af8 depends: - conda-package-streaming >=0.9.0 - python >=3.8 - zstandard >=0.15 license: BSD-3-Clause license_family: BSD - size: 256238 - timestamp: 1717678729709 + size: 257763 + timestamp: 1729007114391 - kind: conda name: conda-package-streaming - version: 0.10.0 + version: 0.11.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.10.0-pyhd8ed1ab_0.conda - sha256: 69674f1389168be29964e2d89c9597c7903462bf7525727a2df93dbd9f960934 - md5: 3480386e00995f7a1dfb3b9aa2fe70fd + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + sha256: 685b06951e563514a9b158e82d3d44faf102f0770af42e4d08347a6eec3d48ea + md5: bc9533d8616a97551ed144789bf9c1cd depends: - python >=3.7 - zstandard >=0.15 license: BSD-3-Clause license_family: BSD - size: 19401 - timestamp: 1717678620472 + size: 20582 + timestamp: 1729004160440 - kind: conda name: cxx-compiler - version: 1.7.0 - build: h00ab1b0_1 + version: 1.8.0 + build: h1a2810e_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_1.conda - sha256: cf895938292cfd4cfa2a06c6d57aa25c33cc974d4ffe52e704ffb67f5577b93f - md5: 28de2e073db9ca9b72858bee9fb6f571 + url: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.8.0-h1a2810e_1.conda + sha256: cca0450bbc0d19044107d0f90fa36126a11b007fbfb62bd2a1949b2bb59a21a4 + md5: 3bb4907086d7187bf01c8bec397ffa5e depends: - - c-compiler 1.7.0 hd590300_1 + - c-compiler 1.8.0 h2b85faf_1 - gxx - - gxx_linux-64 12.* + - gxx_linux-64 13.* license: BSD-3-Clause license_family: BSD - size: 6283 - timestamp: 1714575513327 + size: 6059 + timestamp: 1728985302835 - kind: conda name: cxx-compiler - version: 1.7.0 - build: h2a328a1_1 + version: 1.8.0 + build: heb6c788_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/cxx-compiler-1.7.0-h2a328a1_1.conda - sha256: 596bc9c541609396bc95e649b0ce84b4cbc03f4b07ac89172427d95267d5d528 - md5: a74af10ff5e621f7eccf161d5f4bc66c + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cxx-compiler-1.8.0-heb6c788_1.conda + sha256: 92cd5ba51d0d450cd69ae934107932d2b28cfbb652b1d5f5c0b8e2773ae90491 + md5: d655e8bc7e615b6965afe20522e4ed1a depends: - - c-compiler 1.7.0 h31becfc_1 + - c-compiler 1.8.0 h6561dab_1 - gxx - - gxx_linux-aarch64 12.* + - gxx_linux-aarch64 13.* license: BSD-3-Clause license_family: BSD - size: 6290 - timestamp: 1714575482073 + size: 6154 + timestamp: 1728985293216 - kind: conda name: distlib - version: 0.3.8 + version: 0.3.9 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e - md5: db16c66b759a64dc5183d69cc3745a52 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + sha256: 300b2e714f59403df0560174f5ef6c19db8b4a3b74a7244862cf771f07dee8fb + md5: fe521c1608280cc2803ebd26dc252212 depends: - python 2.7|>=3.6 license: Apache-2.0 license_family: APACHE - size: 274915 - timestamp: 1702383349284 + size: 276214 + timestamp: 1728557312342 - kind: conda name: distro version: 1.9.0 @@ -1820,530 +1871,534 @@ packages: timestamp: 1704321683916 - kind: conda name: filelock - version: 3.15.4 + version: 3.16.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.15.4-pyhd8ed1ab_0.conda - sha256: f78d9c0be189a77cb0c67d02f33005f71b89037a85531996583fb79ff3fe1a0a - md5: 0e7e4388e9d5283e22b35a9443bdbcc9 + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + sha256: 1da766da9dba05091af87977922fe60dc7464091a9ccffb3765d403189d39be4 + md5: 916f8ec5dd4128cd5f207a3c4c07b2c6 depends: - python >=3.7 license: Unlicense - size: 17592 - timestamp: 1719088395353 + size: 17357 + timestamp: 1726613593584 - kind: conda name: fmt - version: 10.2.1 - build: h00ab1b0_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fmt-10.2.1-h00ab1b0_0.conda - sha256: 7b9ba098a3661e023c3555e01554354ac4891af8f8998e85f0fcbfdac79fc0d4 - md5: 35ef8bc24bd34074ebae3c943d551728 + version: 11.0.2 + build: h3c5361c_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/fmt-11.0.2-h3c5361c_0.conda + sha256: 4502053d2556431caa3a606b527eb1e45967109d6c6ffe094f18c3134cf77db1 + md5: e8070546e8739040383f6774e0cd4033 depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - __osx >=10.13 + - libcxx >=16 license: MIT license_family: MIT - size: 193853 - timestamp: 1704454679950 + size: 184400 + timestamp: 1723046749457 - kind: conda name: fmt - version: 10.2.1 - build: h181d51b_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/fmt-10.2.1-h181d51b_0.conda - sha256: 4593d75b6a1e0b5b43fdcba6b968537638a6e469521fb4c3073929f973891828 - md5: 4253b572559cc775cae49def5c97b3c0 + version: 11.0.2 + build: h420ef59_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-11.0.2-h420ef59_0.conda + sha256: 62e6508d5bbde4aa36f7b7658ce2d8fdd0e509c0d1661735c1bd1bed00e070c4 + md5: 0e44849fd4764e9f85ed8caa9f24c118 depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 + - libcxx >=16 license: MIT license_family: MIT - size: 185170 - timestamp: 1704455079451 + size: 179582 + timestamp: 1723046771323 - kind: conda name: fmt - version: 10.2.1 - build: h2a328a1_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/fmt-10.2.1-h2a328a1_0.conda - sha256: 8a8ef05b626033999bb7607df8072cc5aabc839a0004743e8257a6c0628e2176 - md5: 540b6320d3c929e012fae0d08f43224d + version: 11.0.2 + build: h434a139_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/fmt-11.0.2-h434a139_0.conda + sha256: c620e2ab084948985ae9b8848d841f603e8055655513340e04b6cf129099b5ca + md5: 995f7e13598497691c1dc476d889bc04 depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 - libstdcxx-ng >=12 license: MIT license_family: MIT - size: 190383 - timestamp: 1704454626431 + size: 198533 + timestamp: 1723046725112 - kind: conda name: fmt - version: 10.2.1 - build: h2ffa867_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-10.2.1-h2ffa867_0.conda - sha256: 8570ae6fb7cd1179c646e2c48105e91b3ed8ba15855f12965cc5c9719753c06f - md5: 8cccde6755bdd787f9840f38a34b4e7d + version: 11.0.2 + build: h70be974_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fmt-11.0.2-h70be974_0.conda + sha256: dd47f343981c8e3e0b033ba2511f20400e9cc7ee1206ea1bed01f73798a0c03c + md5: 32feda3daf08ff832cf9d55bab2432d6 depends: - - libcxx >=15 + - libgcc-ng >=12 + - libstdcxx-ng >=12 license: MIT license_family: MIT - size: 174209 - timestamp: 1704454873305 + size: 193909 + timestamp: 1723046774820 - kind: conda name: fmt - version: 10.2.1 - build: h7728843_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/fmt-10.2.1-h7728843_0.conda - sha256: 2faeccfe2b9f7c028cf271f66757365fe43b15a1234084c16f159646a646ccbc - md5: ab205d53bda43d03f5c5b993ccb406b3 + version: 11.0.2 + build: h7f575de_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/fmt-11.0.2-h7f575de_0.conda + sha256: 951c6c8676611e7a9f9b868d008e8fce55e9097996ecef66a09bd2eedfe7fe5a + md5: 4bd427b6423eead4edea9533dc5381ba depends: - - libcxx >=15 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 181468 - timestamp: 1704454938658 + size: 188872 + timestamp: 1723047364214 - kind: conda name: fortran-compiler - version: 1.7.0 - build: h7048d53_1 + version: 1.8.0 + build: h25a59a9_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/fortran-compiler-1.7.0-h7048d53_1.conda - sha256: 7c88cfd572548bad56738f436efd1d21a344a63d8a06cffb2be53d2d1d4ed9c1 - md5: f36c1bb7f8b03c4a54d42efd87416d39 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/fortran-compiler-1.8.0-h25a59a9_1.conda + sha256: 4c29f8729e3f7fc6c5347c56fbf1f7a5ea22fbaaf685d187848cf4ee68086cd8 + md5: 332c43b3c9e5ea6e8aa20cec132e6534 depends: - binutils - - c-compiler 1.7.0 h31becfc_1 + - c-compiler 1.8.0 h6561dab_1 - gfortran - - gfortran_linux-aarch64 12.* + - gfortran_linux-aarch64 13.* license: BSD-3-Clause license_family: BSD - size: 6331 - timestamp: 1714575483381 + size: 6175 + timestamp: 1728985293546 - kind: conda name: fortran-compiler - version: 1.7.0 - build: heb67821_1 + version: 1.8.0 + build: h36df796_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fortran-compiler-1.7.0-heb67821_1.conda - sha256: 4293677cdf4c54d13659a3f9ac15cae778310811c62add29bb2e70630756317a - md5: cf4b0e7c4c78bb0662aed9b27c414a3c + url: https://conda.anaconda.org/conda-forge/linux-64/fortran-compiler-1.8.0-h36df796_1.conda + sha256: a713ede383b34fb46e73e00fc6b556a7446eae43f9d312c104678658ea463ea4 + md5: 6b57750841d53ade8d3b47eafe53dd9f depends: - binutils - - c-compiler 1.7.0 hd590300_1 + - c-compiler 1.8.0 h2b85faf_1 - gfortran - - gfortran_linux-64 12.* + - gfortran_linux-64 13.* license: BSD-3-Clause license_family: BSD - size: 6300 - timestamp: 1714575515211 + size: 6095 + timestamp: 1728985303064 - kind: conda name: frozendict - version: 2.4.4 - build: py312h396f95a_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/frozendict-2.4.4-py312h396f95a_0.conda - sha256: 3dfc7a43f5721ebabe1bc362938b217cdc3e306095cdf5b0093fa245d9e3ce59 - md5: f6297cce75c594614e0e18e96c10b8f4 + version: 2.4.6 + build: py312h0bf5046_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/frozendict-2.4.6-py312h0bf5046_0.conda + sha256: 357cef10885bd2fb5d5d3197a8565d0c0b86fffd0dbaff58acee29f7d897a935 + md5: 22df6d6ec0345fc46182ce47e7ee8e24 depends: - - libgcc-ng >=12 + - __osx >=11.0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: LGPL-3.0-only license_family: LGPL - size: 30577 - timestamp: 1715093047529 + size: 30959 + timestamp: 1728841539128 - kind: conda name: frozendict - version: 2.4.4 - build: py312h4389bb4_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/frozendict-2.4.4-py312h4389bb4_0.conda - sha256: 7c8ab0334f8ae1b7e612cdf5de8831cd6fbbdaeb8d0bff3e5c63a959ee6af33f - md5: 12c19e260a2deb952c3321371623abd3 + version: 2.4.6 + build: py312h3d0f464_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.6-py312h3d0f464_0.conda + sha256: ea617933e456f78905682cbed90692ba698524280955f6ff21be0905d8f0cd43 + md5: 58a8d9e016adc22964bfb0b9a5272e16 depends: + - __osx >=10.13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: LGPL-3.0-only license_family: LGPL - size: 30622 - timestamp: 1715093097869 + size: 30751 + timestamp: 1728841497755 - kind: conda name: frozendict - version: 2.4.4 - build: py312h7e5086c_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/frozendict-2.4.4-py312h7e5086c_0.conda - sha256: 59a24e2c4af865022dbc80ae5508a5ff2d62c9859923eec8d7d5fa4f73a1dd69 - md5: f37df12758d31904693c9087e4841ac9 + version: 2.4.6 + build: py312h4389bb4_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/frozendict-2.4.6-py312h4389bb4_0.conda + sha256: 7148c848521bfb2a5d3a0bac9fafc006999bade8a1f872312429b5193e6aff39 + md5: 1d16a74859f027c8654e30400780a033 depends: - - __osx >=11.0 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: LGPL-3.0-only license_family: LGPL - size: 30702 - timestamp: 1715092944764 + size: 31147 + timestamp: 1728841600933 - kind: conda name: frozendict - version: 2.4.4 - build: py312h9a8786e_0 + version: 2.4.6 + build: py312h66e93f0_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.4-py312h9a8786e_0.conda - sha256: dff551db65137898c1434c4949532a91b997de6a1e77f255216da2c404b04f2f - md5: ff14ec1103a0817d45e7cf012742ce60 + url: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.6-py312h66e93f0_0.conda + sha256: a251569d25e9658f87406efda6640e2816659c5d4dd244d1008bb789793cf32e + md5: 9fa8408745a0621314b7751d11fecc18 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: LGPL-3.0-only license_family: LGPL - size: 30644 - timestamp: 1715092863166 + size: 30486 + timestamp: 1728841445822 - kind: conda name: frozendict - version: 2.4.4 - build: py312hbd25219_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.4-py312hbd25219_0.conda - sha256: 735d87670e8f2344d08fa9da819f7be6793fcd4b31b0e868fd4cf0a907d2a5e4 - md5: bd7e1462b89760bb59c5d7e636f6d9d2 + version: 2.4.6 + build: py312hb2c0f52_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/frozendict-2.4.6-py312hb2c0f52_0.conda + sha256: a10626b8d1e732dba2404afd68b80c0008b5ff2062c05fe80c276d73cf00097f + md5: e50996bfdb4966e93dac45126b2df97e depends: - - __osx >=10.13 + - libgcc >=13 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: LGPL-3.0-only license_family: LGPL - size: 31061 - timestamp: 1715092971006 + size: 30871 + timestamp: 1728841579782 - kind: conda name: gcc - version: 12.4.0 - build: h236703b_1 + version: 13.3.0 + build: h8a56e6e_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc-12.4.0-h236703b_1.conda - sha256: 62cfa6eeb1827d0d02739bfca66c49aa7ef63c7a3c055035062fb7fe0479a1b7 - md5: b7f73ce286b834487d6cb2dc424ed684 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-13.3.0-h8a56e6e_1.conda + sha256: a65247a97374d871f12490aed847d975e513b70a1ba056c0908e9909e9a1945f + md5: 9548c9d315f1894dc311d56433e05e28 depends: - - gcc_impl_linux-64 12.4.0.* + - gcc_impl_linux-aarch64 13.3.0.* license: BSD-3-Clause license_family: BSD - size: 53770 - timestamp: 1724802037449 + size: 54122 + timestamp: 1724802233653 - kind: conda name: gcc - version: 12.4.0 - build: h7e62973_1 + version: 13.3.0 + build: h9576a4e_1 build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-12.4.0-h7e62973_1.conda - sha256: 29a79ba6d2f457bae77b9235464e064c4b7a479c706dbfd993626e87ba1988d5 - md5: 8880f34d2774758e783f5f5c390854c3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.3.0-h9576a4e_1.conda + sha256: d0161362430183cbdbc3db9cf95f9a1af1793027f3ab8755b3d3586deb28bf84 + md5: 606924335b5bcdf90e9aed9a2f5d22ed depends: - - gcc_impl_linux-aarch64 12.4.0.* + - gcc_impl_linux-64 13.3.0.* license: BSD-3-Clause license_family: BSD - size: 53781 - timestamp: 1724801313071 + size: 53864 + timestamp: 1724801360210 - kind: conda name: gcc_impl_linux-64 - version: 12.4.0 - build: hb2e57f8_1 + version: 13.3.0 + build: hfea6d02_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-12.4.0-hb2e57f8_1.conda - sha256: 778cd1bfd417a9d4ddeb0fc4b5a0eb9eb9edf69112e1be0b2f2df125225f27af - md5: 3085fe2c70960ea96f1b4171584b500b + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.3.0-hfea6d02_1.conda + sha256: 998ade1d487e93fc8a7a16b90e2af69ebb227355bf4646488661f7ae5887873c + md5: 0d043dbc126b64f79d915a0e96d3a1d5 depends: - binutils_impl_linux-64 >=2.40 - - libgcc >=12.4.0 - - libgcc-devel_linux-64 12.4.0 ha4f9413_101 - - libgomp >=12.4.0 - - libsanitizer 12.4.0 h46f95d5_1 - - libstdcxx >=12.4.0 + - libgcc >=13.3.0 + - libgcc-devel_linux-64 13.3.0 h84ea5a7_101 + - libgomp >=13.3.0 + - libsanitizer 13.3.0 heb74ff8_1 + - libstdcxx >=13.3.0 - sysroot_linux-64 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 62030150 - timestamp: 1724801895487 + size: 67464415 + timestamp: 1724801227937 - kind: conda name: gcc_impl_linux-aarch64 - version: 12.4.0 - build: hfb8d6db_1 + version: 13.3.0 + build: hcdea9b6_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-12.4.0-hfb8d6db_1.conda - sha256: f70203b042e44b2b8e27980b3f202c7da6c04bab6ae42a5a3a4a601986e5900c - md5: 451c421aa42ab02ae34cdfb44388f912 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-13.3.0-hcdea9b6_1.conda + sha256: cefdf28ab9639e0caa1ff50ec9c67911a5a22b216b685a56fcb82036b11f8758 + md5: 05d767292bb95666ecfacea481f8ca64 depends: - binutils_impl_linux-aarch64 >=2.40 - - libgcc >=12.4.0 - - libgcc-devel_linux-aarch64 12.4.0 h7b3af7c_101 - - libgomp >=12.4.0 - - libsanitizer 12.4.0 h469570c_1 - - libstdcxx >=12.4.0 + - libgcc >=13.3.0 + - libgcc-devel_linux-aarch64 13.3.0 h0c07274_101 + - libgomp >=13.3.0 + - libsanitizer 13.3.0 ha58e236_1 + - libstdcxx >=13.3.0 - sysroot_linux-aarch64 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 57707204 - timestamp: 1724801206430 + size: 62293677 + timestamp: 1724802082737 - kind: conda name: gcc_linux-64 - version: 12.4.0 - build: h6b7512a_1 - build_number: 1 + version: 13.3.0 + build: hc28eda2_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-12.4.0-h6b7512a_1.conda - sha256: fe2dd04ca56f142f1d8e629e35337167596a266f67eeb983a5635645d125a3ee - md5: e55a442a2224a914914d8717d2fbd6da + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda + sha256: 1e5ac50580a68fdc7d2f5722abcf1a87898c24b1ab6eb5ecd322634742d93645 + md5: ac23afbf5805389eb771e2ad3b476f75 depends: - - binutils_linux-64 2.40 hb3c18ed_1 - - gcc_impl_linux-64 12.4.0.* + - binutils_linux-64 + - gcc_impl_linux-64 13.3.0.* - sysroot_linux-64 license: BSD-3-Clause license_family: BSD - size: 31282 - timestamp: 1724910059160 + size: 32005 + timestamp: 1731939593317 - kind: conda name: gcc_linux-aarch64 - version: 12.4.0 - build: heb3b579_1 - build_number: 1 + version: 13.3.0 + build: h1cd514b_7 + build_number: 7 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-12.4.0-heb3b579_1.conda - sha256: 354dae68894595b9cf5449bb2d2c928fb0253f0602e15b6a497793c7cf58cfe3 - md5: 7298337749b6f2bd5d5a69161fb7f451 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-13.3.0-h1cd514b_7.conda + sha256: 1515ce0e32aeaa35be46b8b663913c5c55ca070bafede52958b669da6d5298a0 + md5: 5db44b39edd9182d90a418c0efec5f09 depends: - - binutils_linux-aarch64 2.40 h1f91aba_1 - - gcc_impl_linux-aarch64 12.4.0.* + - binutils_linux-aarch64 + - gcc_impl_linux-aarch64 13.3.0.* - sysroot_linux-aarch64 license: BSD-3-Clause license_family: BSD - size: 31535 - timestamp: 1724910165191 + size: 32164 + timestamp: 1731939505804 - kind: conda name: gfortran - version: 12.4.0 - build: h236703b_1 + version: 13.3.0 + build: h8a56e6e_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gfortran-12.4.0-h236703b_1.conda - sha256: 989b9200e0c1bad38018bbe5c992414b300e5769ffb7334514e9300d853596c3 - md5: c85a12672bd5f227138bc2e12d979b79 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran-13.3.0-h8a56e6e_1.conda + sha256: dae0851022941cc9137dad3d2ede52d7d7f760bc46f5b06252b657b2a4dbdcdf + md5: 9f5a15470233d9366daad8d17c0d2b1d depends: - - gcc 12.4.0.* - - gcc_impl_linux-64 12.4.0.* - - gfortran_impl_linux-64 12.4.0.* + - gcc 13.3.0.* + - gcc_impl_linux-aarch64 13.3.0.* + - gfortran_impl_linux-aarch64 13.3.0.* license: BSD-3-Clause license_family: BSD - size: 53201 - timestamp: 1724802175387 + size: 53556 + timestamp: 1724802367553 - kind: conda name: gfortran - version: 12.4.0 - build: h7e62973_1 + version: 13.3.0 + build: h9576a4e_1 build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran-12.4.0-h7e62973_1.conda - sha256: b4885a7032801ab96b87709f841183a1cc83e15c171e52ce0a90313b3fc03eb5 - md5: d08834ba55e549bb1884decd1b99ec34 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gfortran-13.3.0-h9576a4e_1.conda + sha256: fc711e4a5803c4052b3b9d29788f5256f5565f4609f7688268e89cbdae969f9b + md5: 5e5e3b592d5174eb49607a973c77825b depends: - - gcc 12.4.0.* - - gcc_impl_linux-aarch64 12.4.0.* - - gfortran_impl_linux-aarch64 12.4.0.* + - gcc 13.3.0.* + - gcc_impl_linux-64 13.3.0.* + - gfortran_impl_linux-64 13.3.0.* license: BSD-3-Clause license_family: BSD - size: 53267 - timestamp: 1724801414270 + size: 53341 + timestamp: 1724801488689 - kind: conda name: gfortran_impl_linux-64 - version: 12.4.0 - build: hc568b83_1 + version: 13.3.0 + build: h10434e7_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-12.4.0-hc568b83_1.conda - sha256: 73e608ae82b392ca4189203faa8515484ff3f29868f3298f952a362f5f44065e - md5: b3144a7c21fdafdd55c18622eeed0321 - depends: - - gcc_impl_linux-64 >=12.4.0 - - libgcc >=12.4.0 - - libgfortran5 >=12.4.0 - - libstdcxx >=12.4.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-13.3.0-h10434e7_1.conda + sha256: 9439e1f01d328d4cbdfbb2c8579b83619a694ad114ddf671fb9971ebf088d267 + md5: 6709e113709b6ba67cc0f4b0de58ef7f + depends: + - gcc_impl_linux-64 >=13.3.0 + - libgcc >=13.3.0 + - libgfortran5 >=13.3.0 + - libstdcxx >=13.3.0 - sysroot_linux-64 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 15424743 - timestamp: 1724802095460 + size: 15894110 + timestamp: 1724801415339 - kind: conda name: gfortran_impl_linux-aarch64 - version: 12.4.0 - build: h38ad816_1 + version: 13.3.0 + build: h174a3c4_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_impl_linux-aarch64-12.4.0-h38ad816_1.conda - sha256: b394e41cbb8f5e6f89659ee426a2b718c0082e1eaf03a10134c3c8fc67ce432d - md5: 90cdd96dc13c00d31c7ffa7643b07d7a - depends: - - gcc_impl_linux-aarch64 >=12.4.0 - - libgcc >=12.4.0 - - libgfortran5 >=12.4.0 - - libstdcxx >=12.4.0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_impl_linux-aarch64-13.3.0-h174a3c4_1.conda + sha256: 5cafc6323e7a0fed15683237d7d5f533a91bde09ac239ae921ef22ff963d15bc + md5: d3822f0c83af67924a12f052b33aca0c + depends: + - gcc_impl_linux-aarch64 >=13.3.0 + - libgcc >=13.3.0 + - libgfortran5 >=13.3.0 + - libstdcxx >=13.3.0 - sysroot_linux-aarch64 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 12348674 - timestamp: 1724801359950 + size: 12917001 + timestamp: 1724802292815 - kind: conda name: gfortran_linux-64 - version: 12.4.0 - build: hd748a6a_1 - build_number: 1 + version: 13.3.0 + build: hb919d3a_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-12.4.0-hd748a6a_1.conda - sha256: f4d21360a0afa5518502c9b6e0aa3aaee4bbd7271ceb305a6136285ff0a72246 - md5: f9c8dc5385857fa96b5957f322da0535 + url: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-13.3.0-hb919d3a_7.conda + sha256: 73ba4c14b6b372385b0cb8e06c45a7df5ffc0ca688bd10180c0a3459ab71390d + md5: 0b8e7413559c4c892a37c35de4559969 depends: - - binutils_linux-64 2.40 hb3c18ed_1 - - gcc_linux-64 12.4.0 h6b7512a_1 - - gfortran_impl_linux-64 12.4.0.* + - binutils_linux-64 + - gcc_linux-64 13.3.0 hc28eda2_7 + - gfortran_impl_linux-64 13.3.0.* - sysroot_linux-64 license: BSD-3-Clause license_family: BSD - size: 29631 - timestamp: 1724910072533 + size: 30355 + timestamp: 1731939610282 - kind: conda name: gfortran_linux-aarch64 - version: 12.4.0 - build: hb03c106_1 - build_number: 1 + version: 13.3.0 + build: h2809cf8_7 + build_number: 7 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-12.4.0-hb03c106_1.conda - sha256: 91d88ed22ac53cc0d1983a17f60fb947ff93628765a1954b82e8812c619dc341 - md5: 02f8f660485a5cf7604e437c658d41d3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-13.3.0-h2809cf8_7.conda + sha256: 18b96cec71e0ccbbe6a0f374add98ea14cce0b95e37b8c94dfeacb0fb7f609be + md5: 694da47574296b67d58fb88d79ad241a depends: - - binutils_linux-aarch64 2.40 h1f91aba_1 - - gcc_linux-aarch64 12.4.0 heb3b579_1 - - gfortran_impl_linux-aarch64 12.4.0.* + - binutils_linux-aarch64 + - gcc_linux-aarch64 13.3.0 h1cd514b_7 + - gfortran_impl_linux-aarch64 13.3.0.* - sysroot_linux-aarch64 license: BSD-3-Clause license_family: BSD - size: 29904 - timestamp: 1724910181862 + size: 30553 + timestamp: 1731939522932 - kind: conda name: gxx - version: 12.4.0 - build: h236703b_1 + version: 13.3.0 + build: h8a56e6e_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx-12.4.0-h236703b_1.conda - sha256: ccf038a2832624528dfdc52579cad6aa6d1d0ef1272fe9b9efc3b50ac4aa81b9 - md5: 1749f731236f6660f3ba74a052cede24 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-13.3.0-h8a56e6e_1.conda + sha256: d94714da0135d592d2cd71998a19dc9f65e5a55857c11ec6aa357e5c23fb5a0d + md5: 838d6b64b84b1d17c564b146a839e988 depends: - - gcc 12.4.0.* - - gxx_impl_linux-64 12.4.0.* + - gcc 13.3.0.* + - gxx_impl_linux-aarch64 13.3.0.* license: BSD-3-Clause license_family: BSD - size: 53219 - timestamp: 1724802186786 + size: 53580 + timestamp: 1724802377970 - kind: conda name: gxx - version: 12.4.0 - build: h7e62973_1 + version: 13.3.0 + build: h9576a4e_1 build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-12.4.0-h7e62973_1.conda - sha256: bd434265345f5cbb45097b796209bdf64b96f5ab8173511690b83953cadc0e77 - md5: 57c0b0ad28f89e95861983808ee8def0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.3.0-h9576a4e_1.conda + sha256: 5446f5d1d609d996579f706d2020e83ef48e086d943bfeef7ab807ea246888a0 + md5: 209182ca6b20aeff62f442e843961d81 depends: - - gcc 12.4.0.* - - gxx_impl_linux-aarch64 12.4.0.* + - gcc 13.3.0.* + - gxx_impl_linux-64 13.3.0.* license: BSD-3-Clause license_family: BSD - size: 53254 - timestamp: 1724801423181 + size: 53338 + timestamp: 1724801498389 - kind: conda name: gxx_impl_linux-64 - version: 12.4.0 - build: h613a52c_1 + version: 13.3.0 + build: hdbfa832_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-12.4.0-h613a52c_1.conda - sha256: b08ddbe2bdb1c0c0804e86a99eac9f5041227ba44c652b1dc9083843a4e25374 - md5: ef8a8e632fd38345288c3419c868904f + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.3.0-hdbfa832_1.conda + sha256: 746dff24bb1efc89ab0ec108838d0711683054e3bbbcb94d042943410a98eca1 + md5: 806367e23a0a6ad21e51875b34c57d7e depends: - - gcc_impl_linux-64 12.4.0 hb2e57f8_1 - - libstdcxx-devel_linux-64 12.4.0 ha4f9413_101 + - gcc_impl_linux-64 13.3.0 hfea6d02_1 + - libstdcxx-devel_linux-64 13.3.0 h84ea5a7_101 - sysroot_linux-64 - tzdata license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 12711904 - timestamp: 1724802140227 + size: 13337720 + timestamp: 1724801455825 - kind: conda name: gxx_impl_linux-aarch64 - version: 12.4.0 - build: h3c1ec91_1 + version: 13.3.0 + build: h1211b58_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-12.4.0-h3c1ec91_1.conda - sha256: ac82bbb080d546b8314f9ce87df799cdf9bfca5a2ea3006f2b6bf76d8a278fb6 - md5: 610f731f5550536ad5d39044b6ff138a + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-13.3.0-h1211b58_1.conda + sha256: 93eb04cf9ccf5860df113f299febfacad9c66728772d30aaf4bf33995083331a + md5: 3721f68549df06c2b0664f8933bbf17f depends: - - gcc_impl_linux-aarch64 12.4.0 hfb8d6db_1 - - libstdcxx-devel_linux-aarch64 12.4.0 h7b3af7c_101 + - gcc_impl_linux-aarch64 13.3.0 hcdea9b6_1 + - libstdcxx-devel_linux-aarch64 13.3.0 h0c07274_101 - sysroot_linux-aarch64 - tzdata license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 11571845 - timestamp: 1724801391775 + size: 12732645 + timestamp: 1724802335796 - kind: conda name: gxx_linux-64 - version: 12.4.0 - build: h8489865_1 - build_number: 1 + version: 13.3.0 + build: h6834431_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-12.4.0-h8489865_1.conda - sha256: 8cf86a8caca64fcba09dc8ea78221b539a277a2b63bfef91557c1a6527cf9504 - md5: 7d42368fd1828a144175ff3da449d2fa + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda + sha256: a9b1ffea76f2cc5aedeead4793fcded7a687cce9d5e3f4fe93629f1b1d5043a6 + md5: 7c82ca9bda609b6f72f670e4219d3787 depends: - - binutils_linux-64 2.40 hb3c18ed_1 - - gcc_linux-64 12.4.0 h6b7512a_1 - - gxx_impl_linux-64 12.4.0.* + - binutils_linux-64 + - gcc_linux-64 13.3.0 hc28eda2_7 + - gxx_impl_linux-64 13.3.0.* - sysroot_linux-64 license: BSD-3-Clause license_family: BSD - size: 29631 - timestamp: 1724910075881 + size: 30356 + timestamp: 1731939612705 - kind: conda name: gxx_linux-aarch64 - version: 12.4.0 - build: h3f57e68_1 - build_number: 1 + version: 13.3.0 + build: h2864abd_7 + build_number: 7 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-12.4.0-h3f57e68_1.conda - sha256: d98fbf664726ff1f44c11540505e2bccdfe1200eafaeb5e4d2b24878e6a551c6 - md5: 90a0e070607060c9118d49770f687a42 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-13.3.0-h2864abd_7.conda + sha256: 62a167e54c5c21de36e4652bff096ed6789215e94ebfbbdf3a14fd3d24216479 + md5: dff7396f87892ce8c07f6fd53d9d998d depends: - - binutils_linux-aarch64 2.40 h1f91aba_1 - - gcc_linux-aarch64 12.4.0 heb3b579_1 - - gxx_impl_linux-aarch64 12.4.0.* + - binutils_linux-aarch64 + - gcc_linux-aarch64 13.3.0 h1cd514b_7 + - gxx_impl_linux-aarch64 13.3.0.* - sysroot_linux-aarch64 license: BSD-3-Clause license_family: BSD - size: 29869 - timestamp: 1724910185969 + size: 30532 + timestamp: 1731939525391 - kind: conda name: h2 version: 4.1.0 @@ -2452,35 +2507,35 @@ packages: timestamp: 1720853997952 - kind: conda name: identify - version: 2.6.0 + version: 2.6.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.0-pyhd8ed1ab_0.conda - sha256: 4a2889027df94d51be283536ac235feba77eaa42a0d051f65cd07ba824b324a6 - md5: f80cc5989f445f23b1622d6c455896d9 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + sha256: 4e3f1c381ad65b476a98d03c0f6c73df04ae4095b501f51129ba6f2a7660179c + md5: 636950f839e065401e2031624a414f0b depends: - python >=3.6 - ukkonen license: MIT license_family: MIT - size: 78197 - timestamp: 1720413864262 + size: 78376 + timestamp: 1731187862708 - kind: conda name: idna - version: '3.8' + version: '3.10' build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/idna-3.8-pyhd8ed1ab_0.conda - sha256: 8660d38b272d3713ec8ac5ae918bc3bc80e1b81e1a7d61df554bded71ada6110 - md5: 99e164522f6bdf23c177c8d9ae63f975 + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + sha256: 8c57fd68e6be5eecba4462e983aed7e85761a519aab80e834bbd7794d4b545b2 + md5: 7ba2ede0e7c795ff95088daf0dc59753 depends: - python >=3.6 license: BSD-3-Clause license_family: BSD - size: 49275 - timestamp: 1724450633325 + size: 49837 + timestamp: 1726459583613 - kind: conda name: jsonpatch version: '1.33' @@ -2500,116 +2555,117 @@ packages: - kind: conda name: jsonpointer version: 3.0.0 - build: py312h2e8e312_0 + build: py312h2e8e312_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_0.conda - sha256: 74d440e8250ff2ca05013b959de954bc85d84ff14a3b60c9e3dc7e071cddfa42 - md5: 6509bc42d9d26be656db3332da504913 + url: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_1.conda + sha256: 6865b97780e795337f65592582aee6f25e5b96214c64ffd3f8cdf580fd64ba22 + md5: e3ceda014d8461a11ca8552830a978f9 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 42461 - timestamp: 1718283943216 + size: 42235 + timestamp: 1725303419414 - kind: conda name: jsonpointer version: 3.0.0 - build: py312h7900ff3_0 + build: py312h7900ff3_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_0.conda - sha256: b5d17c5db3c7306d3625745a27359f806a6dd94707d76d74cba541fc1daa2ae3 - md5: 320338762418ae59539ae368d4386085 + url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_1.conda + sha256: 76ccb7bffc7761d1d3133ffbe1f7f1710a0f0d9aaa9f7ea522652e799f3601f4 + md5: 6b51f7459ea4073eeb5057207e2e1e3d depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 17497 - timestamp: 1718283512438 + size: 17277 + timestamp: 1725303032027 - kind: conda name: jsonpointer version: 3.0.0 - build: py312h81bd7bf_0 + build: py312h81bd7bf_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_0.conda - sha256: a7326ba42944287a44a5959dc67b40e002798aa9eed97ef4ec9ad39bbd84c9a3 - md5: bc1baf9c7772acbd2cb4f8d9190286f5 + url: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_1.conda + sha256: f6fb3734e967d1cd0cde32844ee952809f6c0a49895da7ec1c8cfdf97739b947 + md5: 80f403c03290e1662be03e026fb5f8ab depends: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 18080 - timestamp: 1718283673740 + size: 17865 + timestamp: 1725303130815 - kind: conda name: jsonpointer version: 3.0.0 - build: py312h996f985_0 + build: py312h996f985_1 + build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/jsonpointer-3.0.0-py312h996f985_0.conda - sha256: 1ab328dc37c6cc2348ae4eda695ebca71cca4661d214f42746d57e123f1f9fd7 - md5: c3d6917a5a167cf0121e79a89545ff70 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/jsonpointer-3.0.0-py312h996f985_1.conda + sha256: 908448e2946c8fd8e28f5c7de4ed52548d227fae2994febf1050179b2590dbdc + md5: 2257c5f33024274faadf6a88a7d62807 depends: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 18131 - timestamp: 1718283560864 + size: 17821 + timestamp: 1725303138276 - kind: conda name: jsonpointer version: 3.0.0 - build: py312hb401068_0 + build: py312hb401068_1 + build_number: 1 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_0.conda - sha256: c28d5ee8ddc58858c711f0a4874916ed7d1306fa8b12bb95e3e8bb7183f2e287 - md5: 7d360dce2fa56d1701773d26ecccb038 + url: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_1.conda + sha256: 52fcb1db44a935bba26988cc17247a0f71a8ad2fbc2b717274a8c8940856ee0d + md5: 5dcf96bca4649d496d818a0f5cfb962e depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 17704 - timestamp: 1718283533709 + size: 17560 + timestamp: 1725303027769 - kind: conda name: kernel-headers_linux-64 version: 3.10.0 - build: h4a8ded7_16 - build_number: 16 + build: he073ed8_18 + build_number: 18 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-h4a8ded7_16.conda - sha256: a55044e0f61058a5f6bab5e1dd7f15a1fa7a08ec41501dbfca5ab0fc50b9c0c1 - md5: ff7f38675b226cfb855aebfc32a13e31 - depends: - - _sysroot_linux-64_curr_repodata_hack 3.* + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda + sha256: a922841ad80bd7b222502e65c07ecb67e4176c4fa5b03678a005f39fcc98be4b + md5: ad8527bf134a90e1c9ed35fa0b64318c constrains: - sysroot_linux-64 ==2.17 license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 license_family: GPL - size: 944344 - timestamp: 1720621422017 + size: 943486 + timestamp: 1729794504440 - kind: conda name: kernel-headers_linux-aarch64 version: 4.18.0 - build: h5b4a56d_16 - build_number: 16 + build: h05a177a_18 + build_number: 18 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-aarch64-4.18.0-h5b4a56d_16.conda - sha256: ef73423948ee8af98ef28a071cb8ddc46ba2c44a3b9a852fdba79587033641c0 - md5: 84492cbda4b5828cddf03329e96e5b2f - depends: - - _sysroot_linux-aarch64_curr_repodata_hack 4.* + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-aarch64-4.18.0-h05a177a_18.conda + sha256: 99731884b26d5801c931f6ed4e1d40f0d1b2efc60ab2d1d49e9b3a6508a390df + md5: 40ebaa9844bc99af99fc1beaed90b379 constrains: - sysroot_linux-aarch64 ==2.17 license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 license_family: GPL - size: 1114753 - timestamp: 1720621462147 + size: 1113306 + timestamp: 1729794501866 - kind: conda name: keyutils version: 1.6.1 @@ -2729,34 +2785,36 @@ packages: timestamp: 1719463874284 - kind: conda name: ld_impl_linux-64 - version: '2.40' - build: hf3520f5_7 - build_number: 7 + version: '2.43' + build: h712a8e2_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda - sha256: 764b6950aceaaad0c67ef925417594dd14cd2e22fff864aeef455ac259263d15 - md5: b80f2f396ca2c28b8c14c437a4ed1e74 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe + md5: 048b02e3962f066da18efe3a21b77672 + depends: + - __glibc >=2.17,<3.0.a0 constrains: - - binutils_impl_linux-64 2.40 + - binutils_impl_linux-64 2.43 license: GPL-3.0-only license_family: GPL - size: 707602 - timestamp: 1718625640445 + size: 669211 + timestamp: 1729655358674 - kind: conda name: ld_impl_linux-aarch64 - version: '2.40' - build: h9fc2d93_7 - build_number: 7 + version: '2.43' + build: h80caac9_2 + build_number: 2 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.40-h9fc2d93_7.conda - sha256: 4a6c0bd77e125da8472bd73bba7cd4169a3ce4699b00a3893026ae8664b2387d - md5: 1b0feef706f4d03eff0b76626ead64fc + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + sha256: 80ec7e8f006196808fac5bd4b3773a652847f97bbf08044cd87731424ac64f8b + md5: fcbde5ea19d55468953bf588770c0501 constrains: - - binutils_impl_linux-aarch64 2.40 + - binutils_impl_linux-aarch64 2.43 license: GPL-3.0-only license_family: GPL - size: 735885 - timestamp: 1718625653417 + size: 698245 + timestamp: 1729655345825 - kind: conda name: libarchive version: 3.7.4 @@ -2873,131 +2931,132 @@ packages: timestamp: 1716394516418 - kind: conda name: libcurl - version: 8.9.1 - build: h18fefc2_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.9.1-h18fefc2_0.conda - sha256: 024be133aed5f100c0b222761e747cc27a2bdf94af51947ad5f70e88cf824988 - md5: 099a1016d23baa4f41148a985351a7a8 + version: 8.10.1 + build: h13a7ad3_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda + sha256: 983a977c5627f975a930542c8aabb46089ec6ea72f28d9c4d3ee8eafaf2fc25a + md5: d84030d0863ffe7dea00b9a807fee961 depends: + - __osx >=11.0 - krb5 >=1.21.3,<1.22.0a0 + - libnghttp2 >=1.58.0,<2.0a0 - libssh2 >=1.11.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - openssl >=3.3.2,<4.0a0 + - zstd >=1.5.6,<1.6.0a0 license: curl license_family: MIT - size: 339298 - timestamp: 1722440239161 + size: 379948 + timestamp: 1726660033582 - kind: conda name: libcurl - version: 8.9.1 - build: hdb1bdb2_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.9.1-hdb1bdb2_0.conda - sha256: 0ba60f83709068e9ec1ab543af998cb5a201c8379c871205447684a34b5abfd8 - md5: 7da1d242ca3591e174a3c7d82230d3c0 + version: 8.10.1 + build: h1ee3ff0_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda + sha256: dfbac497c4fee74f67391f9c4a40cab559468b7d04ff9fad4b404a26b5e1d5b8 + md5: 7ead800e22ff7b4bccb73e42a8f7a0f4 depends: - krb5 >=1.21.3,<1.22.0a0 - - libgcc-ng >=12 - - libnghttp2 >=1.58.0,<2.0a0 - libssh2 >=1.11.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 - - zstd >=1.5.6,<1.6.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: curl license_family: MIT - size: 416057 - timestamp: 1722439924963 + size: 342388 + timestamp: 1726660508261 - kind: conda name: libcurl - version: 8.9.1 - build: hfa30633_0 + version: 8.10.1 + build: h3ec0cbf_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.9.1-hfa30633_0.conda - sha256: ded3a7ce889fc45926a49be14801ed334f2e40ca52380edabbcf5484ec7a889b - md5: efeb999ea2b519696001823b8e49cdbd + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.10.1-h3ec0cbf_0.conda + sha256: 7c4983001c727f713b4448280ed4803d301087c184cd2819ba0b788ca62b73d1 + md5: f43539295c4e0cd15202d41bc72b8a26 depends: - krb5 >=1.21.3,<1.22.0a0 - - libgcc-ng >=12 + - libgcc >=13 - libnghttp2 >=1.58.0,<2.0a0 - libssh2 >=1.11.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - zstd >=1.5.6,<1.6.0a0 license: curl license_family: MIT - size: 429297 - timestamp: 1722439988823 + size: 439171 + timestamp: 1726659843118 - kind: conda name: libcurl - version: 8.9.1 - build: hfcf2730_0 + version: 8.10.1 + build: h58e7537_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.9.1-hfcf2730_0.conda - sha256: a7ce066fbb2d34f7948d8e5da30d72ff01f0a5bcde05ea46fa2d647eeedad3a7 - md5: 6ea09f173c46d135ee6d6845fe50a9c0 + url: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.10.1-h58e7537_0.conda + sha256: 662fe145459ed58dee882e525588d1da4dcc4cbd10cfca0725d1fc3840461798 + md5: 6c8669d8228a2bbd0283911cc6d6726e depends: + - __osx >=10.13 - krb5 >=1.21.3,<1.22.0a0 - libnghttp2 >=1.58.0,<2.0a0 - libssh2 >=1.11.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - zstd >=1.5.6,<1.6.0a0 license: curl license_family: MIT - size: 397060 - timestamp: 1722440158491 + size: 402588 + timestamp: 1726660264675 - kind: conda name: libcurl - version: 8.9.1 - build: hfd8ffcc_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.9.1-hfd8ffcc_0.conda - sha256: 4d6006c866844a39fb835436a48407f54f2310111a6f1d3e89efb16cf5c4d81b - md5: be0f46c6362775504d8894bd788a45b2 + version: 8.10.1 + build: hbbe4b11_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda + sha256: 54e6114dfce566c3a22ad3b7b309657e3600cdb668398e95f1301360d5d52c99 + md5: 6e801c50a40301f6978c53976917b277 depends: + - __glibc >=2.17,<3.0.a0 - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 - libnghttp2 >=1.58.0,<2.0a0 - libssh2 >=1.11.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - zstd >=1.5.6,<1.6.0a0 license: curl license_family: MIT - size: 374937 - timestamp: 1722440523552 + size: 424900 + timestamp: 1726659794676 - kind: conda name: libcxx - version: 18.1.8 - build: h3ed4263_6 - build_number: 6 + version: 19.1.4 + build: ha82da77_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-18.1.8-h3ed4263_6.conda - sha256: 6e267698e575bb02c8ed86184fad6d6d3504643dcfa10dad0306d3d25a3d22e3 - md5: 9fefa1597c93b710cc9bce87bffb0428 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + sha256: 342896ebc1d6acbf022ca6df006a936b9a472579e91e3c502cb1f52f218b78e9 + md5: a2d3d484d95889fccdd09498d8f6bf9a depends: - __osx >=11.0 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 1216771 - timestamp: 1724726498879 + size: 520678 + timestamp: 1732060258949 - kind: conda name: libcxx - version: 18.1.8 - build: hd876a4e_6 - build_number: 6 + version: 19.1.4 + build: hf95d169_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-18.1.8-hd876a4e_6.conda - sha256: 17f9d82da076bee9db33272f43e04be98afbcb27eba7cd83dda3212a7ee1c218 - md5: 93efb2350f312a3c871e87d9fdc09813 + url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.4-hf95d169_0.conda + sha256: 48c6d0ab9dd0c66693f79f4a032cd9ebb64fb88329dfa747aeac5299f9b3f33b + md5: 5f23923c08151687ff2fc3002b0a7234 depends: - __osx >=10.13 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 1223212 - timestamp: 1724726420315 + size: 529010 + timestamp: 1732060320836 - kind: conda name: libedit version: 3.1.20191231 @@ -3118,78 +3177,87 @@ packages: timestamp: 1702146165126 - kind: conda name: libexpat - version: 2.6.2 - build: h2f0025b_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.2-h2f0025b_0.conda - sha256: 07453df3232a649f39fb4d1e68cfe1c78c3457764f85225f6f3ccd1bdd9818a4 - md5: 1b9f46b804a2c3c5d7fd6a80b77c35f9 + version: 2.6.4 + build: h240833e_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda + sha256: d10f43d0c5df6c8cf55259bce0fe14d2377eed625956cddce06f58827d288c59 + md5: 20307f4049a735a78a29073be1be2626 depends: - - libgcc-ng >=12 + - __osx >=10.13 constrains: - - expat 2.6.2.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 72544 - timestamp: 1710362309065 + size: 70758 + timestamp: 1730967204736 - kind: conda name: libexpat - version: 2.6.2 - build: h59595ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda - sha256: 331bb7c7c05025343ebd79f86ae612b9e1e74d2687b8f3179faec234f986ce19 - md5: e7ba12deb7020dd080c6c70e7b6f6a3d + version: 2.6.4 + build: h286801f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + sha256: e42ab5ace927ee7c84e3f0f7d813671e1cf3529f5f06ee5899606630498c2745 + md5: 38d2656dd914feb0cab8c629370768bf depends: - - libgcc-ng >=12 + - __osx >=11.0 constrains: - - expat 2.6.2.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 73730 - timestamp: 1710362120304 + size: 64693 + timestamp: 1730967175868 - kind: conda name: libexpat - version: 2.6.2 - build: h63175ca_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.2-h63175ca_0.conda - sha256: 79f612f75108f3e16bbdc127d4885bb74729cf66a8702fca0373dad89d40c4b7 - md5: bc592d03f62779511d392c175dcece64 + version: 2.6.4 + build: h5888daf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26 + md5: db833e03127376d461e1e13e76f09b6c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 constrains: - - expat 2.6.2.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 139224 - timestamp: 1710362609641 + size: 73304 + timestamp: 1730967041968 - kind: conda name: libexpat - version: 2.6.2 - build: h73e2aa4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.2-h73e2aa4_0.conda - sha256: a188a77b275d61159a32ab547f7d17892226e7dac4518d2c6ac3ac8fc8dfde92 - md5: 3d1d51c8f716d97c864d12f7af329526 + version: 2.6.4 + build: h5ad3122_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + sha256: f42e758009ba9db90d1fe7992bc3e60d0c52f71fb20923375d2c44ae69a5a2b3 + md5: f1b3fab36861b3ce945a13f0dfdfc688 + depends: + - libgcc >=13 constrains: - - expat 2.6.2.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 69246 - timestamp: 1710362566073 + size: 72345 + timestamp: 1730967203789 - kind: conda name: libexpat - version: 2.6.2 - build: hebf3989_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda - sha256: ba7173ac30064ea901a4c9fb5a51846dcc25512ceb565759be7d18cbf3e5415e - md5: e3cde7cfa87f82f7cb13d482d5e0ad09 + version: 2.6.4 + build: he0c23c2_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + sha256: 0c0447bf20d1013d5603499de93a16b6faa92d7ead870d96305c0f065b6a5a12 + md5: eb383771c680aa792feb529eaf9df82f + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - - expat 2.6.2.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 63655 - timestamp: 1710362424980 + size: 139068 + timestamp: 1730967442102 - kind: conda name: libffi version: 3.4.2 @@ -3264,146 +3332,145 @@ packages: timestamp: 1636489106777 - kind: conda name: libgcc - version: 14.1.0 + version: 14.2.0 build: h77fa898_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda - sha256: 10fa74b69266a2be7b96db881e18fa62cfa03082b65231e8d652e897c4b335a3 - md5: 002ef4463dd1e2b44a94a4ace468f5d2 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569 + md5: 3cb76c3f10d3bc7f1105b2fc9db984df depends: - _libgcc_mutex 0.1 conda_forge - _openmp_mutex >=4.5 constrains: - - libgomp 14.1.0 h77fa898_1 - - libgcc-ng ==14.1.0=*_1 + - libgomp 14.2.0 h77fa898_1 + - libgcc-ng ==14.2.0=*_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 846380 - timestamp: 1724801836552 + size: 848745 + timestamp: 1729027721139 - kind: conda name: libgcc - version: 14.1.0 + version: 14.2.0 build: he277a41_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.1.0-he277a41_1.conda - sha256: 0affee19a50081827a9b7d5a43a1d241d295209342f5c6b8d1da21e950547680 - md5: 2cb475709e327bb76f74645784582e6a + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + sha256: 5d56757ccad208c79214395b00d006d8d18929a4ba49c47bd9460789a7620943 + md5: 511b511c5445e324066c3377481bcab8 depends: - _openmp_mutex >=4.5 constrains: - - libgcc-ng ==14.1.0=*_1 - - libgomp 14.1.0 he277a41_1 + - libgcc-ng ==14.2.0=*_1 + - libgomp 14.2.0 he277a41_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 533503 - timestamp: 1724802540921 + size: 535243 + timestamp: 1729089435134 - kind: conda name: libgcc-devel_linux-64 - version: 12.4.0 - build: ha4f9413_101 + version: 13.3.0 + build: h84ea5a7_101 build_number: 101 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-12.4.0-ha4f9413_101.conda - sha256: a8b3f294ec43b249e4161b418dc64502a54de696740e7a2ce909af5651deb494 - md5: 3a7914461d9072f25801a49770780cd4 + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.3.0-h84ea5a7_101.conda + sha256: 027cfb011328a108bc44f512a2dec6d954db85709e0b79b748c3392f85de0c64 + md5: 0ce69d40c142915ac9734bc6134e514a depends: - __unix license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 2556252 - timestamp: 1724801659892 + size: 2598313 + timestamp: 1724801050802 - kind: conda name: libgcc-devel_linux-aarch64 - version: 12.4.0 - build: h7b3af7c_101 + version: 13.3.0 + build: h0c07274_101 build_number: 101 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-aarch64-12.4.0-h7b3af7c_101.conda - sha256: be49fb593c7e04ba42104bd9e85eed972b48b522323b347cbc032af707c020d0 - md5: 903ed578fe18cbc08fca905a976d0de9 + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-aarch64-13.3.0-h0c07274_101.conda + sha256: 2e4b691f811c1bddc72984e09d605c8b45532ec32307c3be007a84fac698bee2 + md5: 4729642346d35283ed198d32ecc41206 depends: - __unix license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 317564 - timestamp: 1724801035983 + size: 2063611 + timestamp: 1724801861173 - kind: conda name: libgcc-ng - version: 14.1.0 + version: 14.2.0 build: h69a702a_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda - sha256: b91f7021e14c3d5c840fbf0dc75370d6e1f7c7ff4482220940eaafb9c64613b7 - md5: 1efc0ad219877a73ef977af7dbb51f17 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7 + md5: e39480b9ca41323497b05492a63bc35b depends: - - libgcc 14.1.0 h77fa898_1 + - libgcc 14.2.0 h77fa898_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 52170 - timestamp: 1724801842101 + size: 54142 + timestamp: 1729027726517 - kind: conda name: libgcc-ng - version: 14.1.0 + version: 14.2.0 build: he9431aa_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.1.0-he9431aa_1.conda - sha256: 44e76a6c1fad613d92035c69e475ccb7da2f554b2fdfabceff8dc4bc570f3622 - md5: 842a1a0cf6f995091734a723e5d291ef + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + sha256: 9b5cf168a6c7361cae869cb74b716766ee7c6d6b3f6172b32ba9bf91135efdc4 + md5: 0694c249c61469f2c0f7e2990782af21 depends: - - libgcc 14.1.0 he277a41_1 + - libgcc 14.2.0 he277a41_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 52203 - timestamp: 1724802545317 + size: 54104 + timestamp: 1729089444587 - kind: conda name: libgfortran5 - version: 14.1.0 - build: h9420597_1 + version: 14.2.0 + build: hb6113d0_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran5-14.1.0-h9420597_1.conda - sha256: 1c455a32c1f5aaf9befd03894cc053271f0aea3fb4211bb91dd0055138dc09e4 - md5: f30cf31e474062ea51481d4181ee15df + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran5-14.2.0-hb6113d0_1.conda + sha256: a87ff46d19916403cbf68cf1d785bf56b4d1ab7b2552468d2ea775d70782493f + md5: fc068e11b10e18f184e027782baa12b6 depends: - - libgcc >=14.1.0 + - libgcc >=14.2.0 constrains: - - libgfortran 14.1.0 + - libgfortran 14.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 1100985 - timestamp: 1724802553945 + size: 1102158 + timestamp: 1729089452640 - kind: conda name: libgfortran5 - version: 14.1.0 - build: hc5f4f2c_1 + version: 14.2.0 + build: hd5240d6_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_1.conda - sha256: c40d7db760296bf9c776de12597d2f379f30e890b9ae70c1de962ff2aa1999f6 - md5: 10a0cef64b784d6ab6da50ebca4e984d + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d + md5: 9822b874ea29af082e5d36098d25427d depends: - - libgcc >=14.1.0 + - libgcc >=14.2.0 constrains: - - libgfortran 14.1.0 + - libgfortran 14.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 1459939 - timestamp: 1724801851300 + size: 1462645 + timestamp: 1729027735353 - kind: conda name: libglib - version: 2.80.3 - build: h59d46d9_2 - build_number: 2 + version: 2.82.2 + build: h07bd6cf_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.80.3-h59d46d9_2.conda - sha256: 15cc86d7d91fb78a76e3e2b965e5d6e8b7c79cc4f4ec3322d48fb712d792eff6 - md5: 17ac2bac18ec707efc8575fae2f09990 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.82.2-h07bd6cf_0.conda + sha256: 101fb31c509d6a69ac5d612b51d4088ddbc675fca18cf0c3589cfee26cd01ca0 + md5: 890783f64502fa6bfcdc723cfbf581b4 depends: - __osx >=11.0 - libffi >=3.4,<4.0a0 @@ -3412,19 +3479,18 @@ packages: - libzlib >=1.3.1,<2.0a0 - pcre2 >=10.44,<10.45.0a0 constrains: - - glib 2.80.3 *_2 + - glib 2.82.2 *_0 license: LGPL-2.1-or-later - size: 3632316 - timestamp: 1723209072976 + size: 3635416 + timestamp: 1729191799117 - kind: conda name: libglib - version: 2.80.3 - build: h7025463_2 - build_number: 2 + version: 2.82.2 + build: h7025463_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libglib-2.80.3-h7025463_2.conda - sha256: 1461eb3b10814630acd1f3a11fc47dbb81c46a4f1f32ed389e3ae050a09c4903 - md5: b60894793e7e4a555027bfb4e4ed1d54 + url: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda + sha256: 7dfbf492b736f8d379f8c3b32a823f0bf2167ff69963e4c940339b146a04c54a + md5: 3e379c1b908a7101ecbc503def24613f depends: - libffi >=3.4,<4.0a0 - libiconv >=1.17,<2.0a0 @@ -3435,58 +3501,57 @@ packages: - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - glib 2.80.3 *_2 + - glib 2.82.2 *_0 license: LGPL-2.1-or-later - size: 3726738 - timestamp: 1723209368854 + size: 3810166 + timestamp: 1729192227078 - kind: conda name: libglib - version: 2.80.3 - build: haee52c6_2 - build_number: 2 + version: 2.82.2 + build: hc486b8e_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.80.3-haee52c6_2.conda - sha256: c32705e0cec1edb6c43fd32cb230e03f882c3dce7921dab3a361ce84b7cacb21 - md5: 937a787ab5789a1e0c818b9545b6deb9 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.82.2-hc486b8e_0.conda + sha256: 6797d24de7acd298f81a86078c64e4f3fea6d551a3e8892205c9e72a37a7cc3c + md5: 47f6d85fe47b865e56c539f2ba5f4dad depends: - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 + - libgcc >=13 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - pcre2 >=10.44,<10.45.0a0 constrains: - - glib 2.80.3 *_2 + - glib 2.82.2 *_0 license: LGPL-2.1-or-later - size: 4016353 - timestamp: 1723208981686 + size: 4020802 + timestamp: 1729191545578 - kind: conda name: libgomp - version: 14.1.0 + version: 14.2.0 build: h77fa898_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda - sha256: c96724c8ae4ee61af7674c5d9e5a3fbcf6cd887a40ad5a52c99aa36f1d4f9680 - md5: 23c255b008c4f2ae008f81edcabaca89 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63 + md5: cc3573974587f12dda90d96e3e55a702 depends: - _libgcc_mutex 0.1 conda_forge license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 460218 - timestamp: 1724801743478 + size: 460992 + timestamp: 1729027639220 - kind: conda name: libgomp - version: 14.1.0 + version: 14.2.0 build: he277a41_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.1.0-he277a41_1.conda - sha256: a257997cc35b97a58b4b3be1b108791619736d90af8d30dab717d0f0dd835ab5 - md5: 59d463d51eda114031e52667843f9665 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + sha256: 5aa53874a5e57a00f2e0c2e2910684eb674429cd5fcb803619b226a73e89aedf + md5: 376f0e73abbda6d23c0cb749adc195ef license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 461429 - timestamp: 1724802428910 + size: 463521 + timestamp: 1729089357313 - kind: conda name: libiconv version: '1.17' @@ -3586,168 +3651,167 @@ packages: timestamp: 1723626968270 - kind: conda name: libmamba - version: 1.5.9 - build: h4cc3d14_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.9-h4cc3d14_0.conda - sha256: b621d1d810546a351c89dd1804471e7b81c43b5259107b852af5660ffb6e60b6 - md5: 896cece5b883ad86e9dd88b1f4d23c99 + version: 1.5.11 + build: h4621f14_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.11-h4621f14_0.conda + sha256: 7de8e455ad8e594edc210a4a85623d98d734c3802edff7574664006806796437 + md5: 03f0dd4393d6a345cc3b269d759b3500 depends: - - __glibc >=2.17,<3.0.a0 - - fmt >=10.2.1,<11.0a0 + - __osx >=11.0 + - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.9.1,<9.0a0 - - libgcc >=13 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=18 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - libstdcxx >=13 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1706225 - timestamp: 1725066685037 + size: 1214100 + timestamp: 1732268430446 - kind: conda name: libmamba - version: 1.5.9 - build: hbfbf5c4_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.9-hbfbf5c4_0.conda - sha256: 696402ee91fd107c21a78a5cd279b0bff93158d66af0fd2e7f0706ebd8dbbe7b - md5: ab849f9089963feb44836755fa4edf96 + version: 1.5.11 + build: h489cd8b_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.11-h489cd8b_0.conda + sha256: 8c8be2c5032d87a60d0b01755723c692578305407b03cfa849aff7a9f39d5444 + md5: ad7fd8367491825ca622ecd3bd5b402f depends: - - __osx >=11.0 - - fmt >=10.2.1,<11.0a0 + - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.9.1,<9.0a0 - - libcxx >=17 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - openssl >=3.3.1,<4.0a0 + - libstdcxx >=13 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1217756 - timestamp: 1725067079763 + size: 1626161 + timestamp: 1732268401691 - kind: conda name: libmamba - version: 1.5.9 - build: hd44d3b3_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.9-hd44d3b3_0.conda - sha256: 22976bed4d197ee44c8c096d4d29dc8ddd13985b51f74a88d091c1cba1daa41b - md5: edfb44a51d49861ea6b59bfe1b6bf919 + version: 1.5.11 + build: h81425b0_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.11-h81425b0_0.conda + sha256: 7367a23147c5affafafd218f2ed1b24a4686b6aeaac062bc13bb0810e600559e + md5: 6c005670c32fd0220e1ea21af33e84db depends: - - __osx >=10.13 - - fmt >=10.2.1,<11.0a0 + - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.9.1,<9.0a0 - - libcxx >=17 + - libcurl >=8.10.1,<9.0a0 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1303905 - timestamp: 1725066863284 + size: 3536024 + timestamp: 1732268492780 - kind: conda name: libmamba - version: 1.5.9 - build: hdee400e_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.9-hdee400e_0.conda - sha256: 8f84e2b656255c3b1a9aa3be820c5d436e2f15fa395f8a8d198e81624aeba246 - md5: fad788081223eb2ae2382c1b0574d6d9 + version: 1.5.11 + build: hd41e4cc_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.11-hd41e4cc_0.conda + sha256: 78cba076c337be98e3a1eab84dcee72183e9065eb1ad74e4e3c0bf33a8127843 + md5: 8fc43b0dc7197b567173f3f37bb4eaf6 depends: - - fmt >=10.2.1,<11.0a0 + - __osx >=10.13 + - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.9.1,<9.0a0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=18 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 3582458 - timestamp: 1725067226104 + size: 1307098 + timestamp: 1732268240969 - kind: conda name: libmamba - version: 1.5.9 - build: hee7cc92_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.9-hee7cc92_0.conda - sha256: 7e265e8a23d7cc09f5bbfbdf1ca21fde37e93aa8e85f0815b6967512000b08e2 - md5: 17caf68e156302870317664364e6c08b + version: 1.5.11 + build: hf72d635_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.11-hf72d635_0.conda + sha256: 07db691a23ac69e92a516ca52ab92bb2216cb52bafc9374416d92e41033fb40b + md5: 66ddf67874b75a2252cd09ed931fc1e7 depends: - - fmt >=10.2.1,<11.0a0 + - __glibc >=2.17,<3.0.a0 + - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - - libcurl >=8.9.1,<9.0a0 + - libcurl >=8.10.1,<9.0a0 - libgcc >=13 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - libstdcxx >=13 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1649613 - timestamp: 1725066882546 + size: 1686162 + timestamp: 1732268335034 - kind: conda name: libmambapy - version: 1.5.9 - build: py312h0723cf6_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.9-py312h0723cf6_0.conda - sha256: ee22be66c5c3e2ebd18b0cc2a505055230b31d89b1ad1b47dc4272a1e92f4257 - md5: ebc6a730082e7cef3097938b16a01f13 + version: 1.5.11 + build: py312h0252a60_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.11-py312h0252a60_0.conda + sha256: eda80fa42900968ccdfbd826e04a70ad3e65deff5f97d4c86f7fdda89069e8fa + md5: 1802866814f1d62c14c1500015da2009 depends: - - fmt >=10.2.1,<11.0a0 - - libmamba 1.5.9 hdee400e_0 - - openssl >=3.3.1,<4.0a0 + - __osx >=10.13 + - fmt >=11.0.2,<12.0a0 + - libcxx >=18 + - libmamba 1.5.11 hd41e4cc_0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 561616 - timestamp: 1725067891514 + size: 273969 + timestamp: 1732268316283 - kind: conda name: libmambapy - version: 1.5.9 - build: py312h1ed1908_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.9-py312h1ed1908_0.conda - sha256: 18a6212d65aa142efb12600ebbc5a3fb5b56a9676052f61f9b047c4b3100a304 - md5: d1607ea8bfe7e164ce3f3027615a8b7a + version: 1.5.11 + build: py312h33c3f33_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.11-py312h33c3f33_0.conda + sha256: 3d7f01037b02b4ed6a3964780a7bcca6a1540baf294086cb1370e7ef83e9b75a + md5: a282c17c6817ac4f351c43d8a1fa70fe depends: - - __osx >=11.0 - - fmt >=10.2.1,<11.0a0 - - libcxx >=17 - - libmamba 1.5.9 hbfbf5c4_0 - - openssl >=3.3.1,<4.0a0 + - fmt >=11.0.2,<12.0a0 + - libgcc >=13 + - libmamba 1.5.11 h489cd8b_0 + - libstdcxx >=13 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython @@ -3755,160 +3819,231 @@ packages: - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 255891 - timestamp: 1725067240488 + size: 294281 + timestamp: 1732268545149 - kind: conda name: libmambapy - version: 1.5.9 - build: py312h7fb9e8e_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.9-py312h7fb9e8e_0.conda - sha256: 382eb636fcd106e1b1a255f1cb7be741e379f7c6d4975620939f0d8e8025d614 - md5: ccaeeb6e3caaf0c744480393791aa366 + version: 1.5.11 + build: py312h643a1bd_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.11-py312h643a1bd_0.conda + sha256: c7e52d3e47641f820c1a335095d5805b7bc24f3b0b23e1d377736715bb293641 + md5: 125871e32ae9d4f85a0d54d58f024952 depends: - - __glibc >=2.17,<3.0.a0 - - fmt >=10.2.1,<11.0a0 - - libgcc >=13 - - libmamba 1.5.9 h4cc3d14_0 - - libstdcxx >=13 - - openssl >=3.3.1,<4.0a0 + - fmt >=11.0.2,<12.0a0 + - libmamba 1.5.11 h81425b0_0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 319624 - timestamp: 1725066753685 + size: 467477 + timestamp: 1732268850008 - kind: conda name: libmambapy - version: 1.5.9 - build: py312haab923c_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.9-py312haab923c_0.conda - sha256: 780be3f33299a8c2f74f6eb0561b8a66b2d1ecd3607aa7f88c63fcc24b57270f - md5: a1197bc9f650a9b6602f5509c86a4f52 + version: 1.5.11 + build: py312hd07f1d4_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.11-py312hd07f1d4_0.conda + sha256: fc0f7fb20fdc43f5c8487c141808a75393d951920413e6cb84f8bc3e2cf9bcff + md5: dd47ca30a3843123b3111dc2798a9a82 depends: - - __osx >=10.13 - - fmt >=10.2.1,<11.0a0 - - libcxx >=17 - - libmamba 1.5.9 hd44d3b3_0 - - openssl >=3.3.1,<4.0a0 + - __osx >=11.0 + - fmt >=11.0.2,<12.0a0 + - libcxx >=18 + - libmamba 1.5.11 h4621f14_0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 272891 - timestamp: 1725067012839 + size: 255655 + timestamp: 1732268529447 - kind: conda name: libmambapy - version: 1.5.9 - build: py312hc6280c9_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.9-py312hc6280c9_0.conda - sha256: 6b303a39d71359045b956cd6d53ce1a8755c8cbf82f48ed4649597d122e79031 - md5: f43db48375a056628a97959bdcbdd9fe + version: 1.5.11 + build: py312hf3f0a4e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.11-py312hf3f0a4e_0.conda + sha256: 336683d154b01f4addfa2b86c49f1afaf06b394b196fc157a76844e35e84b5e7 + md5: 6012a9f871d3c2908cfd2642ea90f4c0 depends: - - fmt >=10.2.1,<11.0a0 + - __glibc >=2.17,<3.0.a0 + - fmt >=11.0.2,<12.0a0 - libgcc >=13 - - libmamba 1.5.9 hee7cc92_0 + - libmamba 1.5.11 hf72d635_0 - libstdcxx >=13 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 287312 - timestamp: 1725067379245 + size: 326538 + timestamp: 1732268785636 +- kind: conda + name: libmpdec + version: 4.0.0 + build: h2466b09_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda + sha256: fc529fc82c7caf51202cc5cec5bb1c2e8d90edbac6d0a4602c966366efe3c7bf + md5: 74860100b2029e2523cf480804c76b9b + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-2-Clause + license_family: BSD + size: 88657 + timestamp: 1723861474602 +- kind: conda + name: libmpdec + version: 4.0.0 + build: h4bc722e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-h4bc722e_0.conda + sha256: d02d1d3304ecaf5c728e515eb7416517a0b118200cd5eacbe829c432d1664070 + md5: aeb98fdeb2e8f25d43ef71fbacbeec80 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: BSD-2-Clause + license_family: BSD + size: 89991 + timestamp: 1723817448345 +- kind: conda + name: libmpdec + version: 4.0.0 + build: h68df207_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmpdec-4.0.0-h68df207_0.conda + sha256: 1c63ef313c5d4ac02cdf21471fdba99c188bfcb87068a127a0f0964f7ec170ac + md5: 5a03ba481cb547e6f31a1d81ebc5e319 + depends: + - libgcc-ng >=12 + license: BSD-2-Clause + license_family: BSD + size: 110277 + timestamp: 1723861247377 +- kind: conda + name: libmpdec + version: 4.0.0 + build: h99b78c6_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h99b78c6_0.conda + sha256: f7917de9117d3a5fe12a39e185c7ce424f8d5010a6f97b4333e8a1dcb2889d16 + md5: 7476305c35dd9acef48da8f754eedb40 + depends: + - __osx >=11.0 + license: BSD-2-Clause + license_family: BSD + size: 69263 + timestamp: 1723817629767 +- kind: conda + name: libmpdec + version: 4.0.0 + build: hfdf4475_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-hfdf4475_0.conda + sha256: 791be3d30d8e37ec49bcc23eb8f1e1415d911a7c023fa93685f2ea485179e258 + md5: ed625b2e59dff82859c23dd24774156b + depends: + - __osx >=10.13 + license: BSD-2-Clause + license_family: BSD + size: 76561 + timestamp: 1723817691512 - kind: conda name: libnghttp2 - version: 1.58.0 - build: h47da74e_1 - build_number: 1 + version: 1.64.0 + build: h161d5f1_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda - sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb - md5: 700ac6ea6d53d5510591c4344d5c989a + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975 + md5: 19e57602824042dfd0446292ef90488b depends: - - c-ares >=1.23.0,<2.0a0 + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.32.3,<2.0a0 - libev >=4.33,<4.34.0a0 - libev >=4.33,<5.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.0,<4.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT - size: 631936 - timestamp: 1702130036271 + size: 647599 + timestamp: 1729571887612 - kind: conda name: libnghttp2 - version: 1.58.0 - build: h64cf6d3_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda - sha256: 412fd768e787e586602f8e9ea52bf089f3460fc630f6987f0cbd89b70e9a4380 - md5: faecc55c2a8155d9ff1c0ff9a0fef64f + version: 1.64.0 + build: h6d7220d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + sha256: 00cc685824f39f51be5233b54e19f45abd60de5d8847f1a56906f8936648b72f + md5: 3408c02539cee5f1141f9f11450b6a51 depends: - - __osx >=10.9 - - c-ares >=1.23.0,<2.0a0 - - libcxx >=16.0.6 + - __osx >=11.0 + - c-ares >=1.34.2,<2.0a0 + - libcxx >=17 - libev >=4.33,<4.34.0a0 - libev >=4.33,<5.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.0,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT - size: 599736 - timestamp: 1702130398536 + size: 566719 + timestamp: 1729572385640 - kind: conda name: libnghttp2 - version: 1.58.0 - build: ha4dd798_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - sha256: fc97aaaf0c6d0f508be313d86c2705b490998d382560df24be918b8e977802cd - md5: 1813e066bfcef82de579a0be8a766df4 + version: 1.64.0 + build: hc7306c3_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda + sha256: 0dcfdcf3a445d2d7de4f3b186ab0a794dc872f4ea21622f9b997be72712c027f + md5: ab21007194b97beade22ceb7a3f6fee5 depends: - - __osx >=10.9 - - c-ares >=1.23.0,<2.0a0 - - libcxx >=16.0.6 + - __osx >=10.13 + - c-ares >=1.34.2,<2.0a0 + - libcxx >=17 - libev >=4.33,<4.34.0a0 - libev >=4.33,<5.0a0 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.0,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT - size: 565451 - timestamp: 1702130473930 + size: 606663 + timestamp: 1729572019083 - kind: conda name: libnghttp2 - version: 1.58.0 - build: hb0e430d_1 - build_number: 1 + version: 1.64.0 + build: hc8609a4_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.58.0-hb0e430d_1.conda - sha256: ecc11e4f92f9d5830a90d42b4db55c66c4ad531e00dcf30d55171d934a568cb5 - md5: 8f724cdddffa79152de61f5564a3526b + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.64.0-hc8609a4_0.conda + sha256: c093c6d370aadbf0409c20b6c54c488ee2f6fea976181919fcc63e87ee232673 + md5: f52c614fa214a8bedece9421c771670d depends: - - c-ares >=1.23.0,<2.0a0 + - c-ares >=1.32.3,<2.0a0 - libev >=4.33,<4.34.0a0 - libev >=4.33,<5.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.2.0,<4.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT - size: 677508 - timestamp: 1702130071743 + size: 714610 + timestamp: 1729571912479 - kind: conda name: libnsl version: 2.0.1 @@ -3939,36 +4074,36 @@ packages: timestamp: 1697359010159 - kind: conda name: libsanitizer - version: 12.4.0 - build: h469570c_1 + version: 13.3.0 + build: ha58e236_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-12.4.0-h469570c_1.conda - sha256: 2dfb9ec14fd6f2c89eac3af64a6bdc4362fe6f70835e7eb6171c5ae4f5a93009 - md5: 0e5754cdbc01923d95406be98dc5126c + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-13.3.0-ha58e236_1.conda + sha256: 6892c7e723dbfb3a7e65c9c21ad7396dee5c73fd988e039045ca96145632ee71 + md5: ed8a2074f0afb09450a009e02de65e3c depends: - - libgcc >=12.4.0 - - libstdcxx >=12.4.0 + - libgcc >=13.3.0 + - libstdcxx >=13.3.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 3879458 - timestamp: 1724801157229 + size: 4105930 + timestamp: 1724802022367 - kind: conda name: libsanitizer - version: 12.4.0 - build: h46f95d5_1 + version: 13.3.0 + build: heb74ff8_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-12.4.0-h46f95d5_1.conda - sha256: 09bfebe6b68ca51018df751e231bf187f96aa49f4d0804556c3920b50d7a244b - md5: 6cf3b8a6dd5b1525d7b2653f1ce8c2c5 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.3.0-heb74ff8_1.conda + sha256: c86d130f0a3099e46ff51aa7ffaab73cb44fc420d27a96076aab3b9a326fc137 + md5: c4cb22f270f501f5c59a122dc2adf20a depends: - - libgcc >=12.4.0 - - libstdcxx >=12.4.0 + - libgcc >=13.3.0 + - libstdcxx >=13.3.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 3947704 - timestamp: 1724801833649 + size: 4133922 + timestamp: 1724801171589 - kind: conda name: libsolv version: 0.7.30 @@ -4053,247 +4188,255 @@ packages: timestamp: 1720790579319 - kind: conda name: libsqlite - version: 3.46.0 - build: h1b8f9f3_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.46.0-h1b8f9f3_0.conda - sha256: 63af1a9e3284c7e4952364bafe7267e41e2d9d8bcc0e85a4ea4b0ec02d3693f6 - md5: 5dadfbc1a567fe6e475df4ce3148be09 - depends: - - __osx >=10.13 - - libzlib >=1.2.13,<2.0a0 - license: Unlicense - size: 908643 - timestamp: 1718050720117 -- kind: conda - name: libsqlite - version: 3.46.0 - build: h2466b09_0 + version: 3.47.0 + build: h2466b09_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.46.0-h2466b09_0.conda - sha256: 662bd7e0d63c5b8c31cca19b91649e798319b93568a2ba8d1375efb91eeb251b - md5: 951b0a3a463932e17414cd9f047fa03d + url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + sha256: 3342d6fe787f5830f7e8466d9c65c914bfd8d67220fb5673041b338cbba47afe + md5: 5b1f36012cc3d09c4eb9f24ad0e2c379 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Unlicense - size: 876677 - timestamp: 1718051113874 + size: 892175 + timestamp: 1730208431651 - kind: conda name: libsqlite - version: 3.46.0 - build: hde9e2c9_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 - md5: 18aa975d2094c34aef978060ae7da7d8 + version: 3.47.0 + build: h2f8c449_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.47.0-h2f8c449_1.conda + sha256: a0f7381c867898a45018b1e5cf1aca68659d292d58252e8f489a4270b010fed8 + md5: af445c495253a871c3d809e1199bb12b depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0a0 + - __osx >=10.13 + - libzlib >=1.3.1,<2.0a0 license: Unlicense - size: 865346 - timestamp: 1718050628718 + size: 915300 + timestamp: 1730208101739 - kind: conda name: libsqlite - version: 3.46.0 - build: hf51ef55_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.46.0-hf51ef55_0.conda - sha256: 7b48d006be6cd089105687fb524a2c93c4218bfc398d0611340cafec55249977 - md5: a8ae63fd6fb7d007f74ef3df95e5edf3 + version: 3.47.0 + build: hadc24fc_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + sha256: 8a9aadf996a2399f65b679c6e7f29139d5059f699c63e6d7b50e20db10c00508 + md5: b6f02b52a174e612e89548f4663ce56a depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 license: Unlicense - size: 1043861 - timestamp: 1718050586624 + size: 875349 + timestamp: 1730208050020 - kind: conda name: libsqlite - version: 3.46.0 - build: hfb93653_0 + version: 3.47.0 + build: hbaaea75_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.0-hfb93653_0.conda - sha256: 73048f9cb8647d3d3bfe6021c0b7d663e12cffbe9b4f31bd081e713b0a9ad8f9 - md5: 12300188028c9bc02da965128b91b517 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + sha256: 5a96caa566c11e5a5ebdcdb86a0759a7fb27d3c5f42e6a0fd0d6023c1e935d9e + md5: 07a14fbe439eef078cc479deca321161 depends: - __osx >=11.0 - - libzlib >=1.2.13,<2.0a0 + - libzlib >=1.3.1,<2.0a0 license: Unlicense - size: 830198 - timestamp: 1718050644825 + size: 837683 + timestamp: 1730208293578 - kind: conda - name: libssh2 - version: 1.11.0 - build: h0841786_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d - md5: 1f5a58e686b13bcfde88b93f547d23fe + name: libsqlite + version: 3.47.0 + build: hc4a20ef_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda + sha256: 73e143fdb966b61cd25ab804d416d87dfce43ac684e0fac3ad8b1450796331ab + md5: a6b185aac10d08028340858f77231b23 depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 271133 - timestamp: 1685837707056 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + size: 1041855 + timestamp: 1730208187962 - kind: conda name: libssh2 - version: 1.11.0 - build: h492db2e_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.0-h492db2e_0.conda - sha256: 409163dd4a888b9266369f1bce57b5ca56c216e34249637c3e10eb404e356171 - md5: 45532845e121677ad328c9af9953f161 + version: 1.11.1 + build: h3dc7d44_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-h3dc7d44_0.conda + sha256: ef2a81c9a15080b996a37f0e1712881da90a710b234e63d8539d69892353de90 + md5: b1caec4561059e43a5d056684c5a2de0 depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.1,<4.0a0 + - __osx >=10.13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 license: BSD-3-Clause license_family: BSD - size: 284335 - timestamp: 1685837600415 + size: 283874 + timestamp: 1732349525684 - kind: conda name: libssh2 - version: 1.11.0 - build: h7a5bd25_0 + version: 1.11.1 + build: h9cc3647_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - sha256: bb57d0c53289721fff1eeb3103a1c6a988178e88d8a8f4345b0b91a35f0e0015 - md5: 029f7dc931a3b626b94823bc77830b01 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h9cc3647_0.conda + sha256: f7047c6ed44bcaeb04432e8c74da87591940d091b0a3940c0d884b7faa8062e9 + md5: ddc7194676c285513706e5fc64f214d7 depends: - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 279028 + timestamp: 1732349599461 +- kind: conda + name: libssh2 + version: 1.11.1 + build: ha41c0db_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.1-ha41c0db_0.conda + sha256: 40f2af5357457546bd11cd64a3b9043d83865180f65ce602515c35f353be35c7 + md5: aeffe03c0e598f015aab08dbb04f6ee4 + depends: + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 license: BSD-3-Clause license_family: BSD - size: 255610 - timestamp: 1685837894256 + size: 311577 + timestamp: 1732349396421 - kind: conda name: libssh2 - version: 1.11.0 - build: h7dfc565_0 + version: 1.11.1 + build: he619c9f_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - sha256: 813fd04eed2a2d5d9c36e53c554f9c1f08e9324e2922bd60c9c52dbbed2dbcec - md5: dc262d03aae04fe26825062879141a41 + url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda + sha256: 4b3256bd2b4e4b3183005d3bd8826d651eccd1a4740b70625afa2b7e7123d191 + md5: af0cbf037dd614c34399b3b3e568c557 depends: - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause license_family: BSD - size: 266806 - timestamp: 1685838242099 + size: 291889 + timestamp: 1732349796504 - kind: conda name: libssh2 - version: 1.11.0 - build: hd019ec5_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda - sha256: f3886763b88f4b24265db6036535ef77b7b77ce91b1cbe588c0fbdd861eec515 - md5: ca3a72efba692c59a90d4b9fc0dfe774 + version: 1.11.1 + build: hf672d98_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda + sha256: 0407ac9fda2bb67e11e357066eff144c845801d00b5f664efbc48813af1e7bb9 + md5: be2de152d8073ef1c01b7728475f2fe7 depends: - - libzlib >=1.2.13,<2.0.0a0 - - openssl >=3.1.1,<4.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 license: BSD-3-Clause license_family: BSD - size: 259556 - timestamp: 1685837820566 + size: 304278 + timestamp: 1732349402869 - kind: conda name: libstdcxx - version: 14.1.0 + version: 14.2.0 build: h3f4de04_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.1.0-h3f4de04_1.conda - sha256: 430e7c36ca9736d06fd669eb1771acb9a8bcaac578ae76b093fa06391798a0ae - md5: 6c2afef2109372440a90c566bcb6391c + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + sha256: 519556d2c93f1b487091ce046d62e762286177f4a670ec10e16005177d0bcab3 + md5: 37f489acd39e22b623d2d1e5ac6d195c depends: - - libgcc 14.1.0 he277a41_1 + - libgcc 14.2.0 he277a41_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 3808995 - timestamp: 1724802564657 + size: 3816794 + timestamp: 1729089463404 - kind: conda name: libstdcxx - version: 14.1.0 + version: 14.2.0 build: hc0a3c3a_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.1.0-hc0a3c3a_1.conda - sha256: 44decb3d23abacf1c6dd59f3c152a7101b7ca565b4ef8872804ceaedcc53a9cd - md5: 9dbb9699ea467983ba8a4ba89b08b066 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462 + md5: 234a5554c53625688d51062645337328 depends: - - libgcc 14.1.0 h77fa898_1 + - libgcc 14.2.0 h77fa898_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 3892781 - timestamp: 1724801863728 + size: 3893695 + timestamp: 1729027746910 - kind: conda name: libstdcxx-devel_linux-64 - version: 12.4.0 - build: ha4f9413_101 + version: 13.3.0 + build: h84ea5a7_101 build_number: 101 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-12.4.0-ha4f9413_101.conda - sha256: 13a2c9b166b4338ef6b0a91c6597198dbb227c038ebaa55df4b6a3f6bfccd5f3 - md5: 5e22204cb6cedf08c64933360ccebe7e + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.3.0-h84ea5a7_101.conda + sha256: 0a9226c1b994f996229ffb54fa40d608cd4e4b48e8dc73a66134bea8ce949412 + md5: 29b5a4ed4613fa81a07c21045e3f5bf6 depends: - __unix license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 11890684 - timestamp: 1724801712899 + size: 14074676 + timestamp: 1724801075448 - kind: conda name: libstdcxx-devel_linux-aarch64 - version: 12.4.0 - build: h7b3af7c_101 + version: 13.3.0 + build: h0c07274_101 build_number: 101 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-aarch64-12.4.0-h7b3af7c_101.conda - sha256: 6f47666e2c1d06d670cdd85493b01cc11b3424e031b31124057385ed50fff978 - md5: 29a9692d3789a0ea5ebc810c16215ca6 + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-aarch64-13.3.0-h0c07274_101.conda + sha256: a2cc4cc3ef5d470c25a872a05485cf322a525950f9e1472e22cc97030d0858b1 + md5: a7fdc5d75d643dd46f4e3d6092a13036 depends: - __unix license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 10168094 - timestamp: 1724801076172 + size: 12182186 + timestamp: 1724801911954 - kind: conda name: libstdcxx-ng - version: 14.1.0 + version: 14.2.0 build: h4852527_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-h4852527_1.conda - sha256: a2dc44f97290740cc187bfe94ce543e6eb3c2ea8964d99f189a1d8c97b419b8c - md5: bd2598399a70bb86d8218e95548d735e + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8 + md5: 8371ac6457591af2cf6159439c1fd051 depends: - - libstdcxx 14.1.0 hc0a3c3a_1 + - libstdcxx 14.2.0 hc0a3c3a_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 52219 - timestamp: 1724801897766 + size: 54105 + timestamp: 1729027780628 - kind: conda name: libstdcxx-ng - version: 14.1.0 + version: 14.2.0 build: hf1166c9_1 build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.1.0-hf1166c9_1.conda - sha256: d7aa6fa26735317ea5cc18e4c2f3316ce29dcc283d65b72b3b99b2d88386aaf4 - md5: 51f54efdd1d2ed5d7e9c67381b75fdb1 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + sha256: 9f97461bd55a2745a7a0941f3502a047f15bfe7bb2952dc7fb204b3202f866fd + md5: 0e75771b8a03afae5a2c6ce71bc733f5 depends: - - libstdcxx 14.1.0 h3f4de04_1 + - libstdcxx 14.2.0 h3f4de04_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 52240 - timestamp: 1724802596264 + size: 54133 + timestamp: 1729089498541 - kind: conda name: libuuid version: 2.38.1 @@ -4324,56 +4467,61 @@ packages: timestamp: 1680113474501 - kind: conda name: libuv - version: 1.48.0 - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.48.0-h31becfc_0.conda - sha256: 8be03c6a43e17fdf574e2c29f1f8b917ba2842b5f4662b51d577960a3083fc2c - md5: 97f754b22f63a943345bd807e1d51e01 + version: 1.49.2 + build: h7ab814d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + sha256: 0e5176af1e788ad5006cf261c4ea5a288a935fda48993b0240ddd2e562dc3d02 + md5: 4bc348e3a1a74d20a3f9beb866d75e0a depends: - - libgcc-ng >=12 + - __osx >=11.0 license: MIT license_family: MIT - size: 635472 - timestamp: 1709913320273 + size: 410500 + timestamp: 1729322654121 - kind: conda name: libuv - version: 1.48.0 - build: h67532ce_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.48.0-h67532ce_0.conda - sha256: fb87f7bfd464a3a841d23f418c86a206818da0c4346984392071d9342c9ea367 - md5: c8e7344c74f0d86584f7ecdc9f25c198 + version: 1.49.2 + build: h86ecc28_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda + sha256: adf4eca89339ac7780f2394e7e6699be81259eb91f79f9d9fdf2c1bc6b26f210 + md5: 1899e1ec2be63386c41c4db31d3056af + depends: + - libgcc >=13 license: MIT license_family: MIT - size: 407040 - timestamp: 1709913680478 + size: 627484 + timestamp: 1729322575379 - kind: conda name: libuv - version: 1.48.0 - build: h93a5062_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.48.0-h93a5062_0.conda - sha256: 60bed2a7a85096387ab0381cbc32ea2da7f8dd99bd90e440983019c0cdd96ad1 - md5: abfd49e80f13453b62a56be226120ea8 + version: 1.49.2 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + sha256: a35cd81cd1a9add11024097da83cc06b0aae83186fe4124b77710876f37d8f31 + md5: 070e3c9ddab77e38799d5c30b109c633 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT - size: 405988 - timestamp: 1709913494015 + size: 884647 + timestamp: 1729322566955 - kind: conda name: libuv - version: 1.48.0 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.48.0-hd590300_0.conda - sha256: b7c0e8a0c93c2621be7645b37123d4e8d27e8a974da26a3fba47a9c37711aa7f - md5: 7e8b914b1062dd4386e3de4d82a3ead6 + version: 1.49.2 + build: hd79239c_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.49.2-hd79239c_0.conda + sha256: a2083200357513f932b44e88858a50a638d1a751a050bc62b2cbee2ac54f102c + md5: ec36c2438046ca8d2b4368d62dd5c38c depends: - - libgcc-ng >=12 + - __osx >=11.0 license: MIT license_family: MIT - size: 899979 - timestamp: 1709913354710 + size: 413607 + timestamp: 1729322686826 - kind: conda name: libxcrypt version: 4.4.36 @@ -4404,187 +4552,183 @@ packages: timestamp: 1702724383534 - kind: conda name: libxml2 - version: 2.12.7 - build: h00a45b3_4 - build_number: 4 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.12.7-h00a45b3_4.conda - sha256: 1ce32ab0ffbc8938f0820949ea733eb11f2f05355034af12fc6fe708f184fac1 - md5: d25c3e16ee77cd25342e4e235424c758 + version: 2.13.5 + build: h442d1da_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.5-h442d1da_0.conda + sha256: 020466b17c143190bd5a6540be2ceef4c1f8d514408bd5f0adaafcd9d0057b5c + md5: 1fbabbec60a3c7c519a5973b06c3b2f4 depends: - - icu >=75.1,<76.0a0 - - libgcc-ng >=12 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - xz >=5.2.6,<6.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 753275 - timestamp: 1721031124841 + size: 1511585 + timestamp: 1731489892312 - kind: conda name: libxml2 - version: 2.12.7 - build: h01dff8b_4 - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.7-h01dff8b_4.conda - sha256: a9a76cdc6e93c0182bc2ac58b1ea0152be1a16a5d23f4dc7b8df282a7aef8d20 - md5: 1265488dc5035457b729583119ad4a1b + version: 2.13.5 + build: h495214b_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.5-h495214b_0.conda + sha256: 66e1bf40699daf83b39e1281f06c64cf83499de3a9c05d59477fadded6d85b18 + md5: 8711bc6fb054192dc432741dcd233ac3 depends: - - __osx >=11.0 + - __osx >=10.13 - icu >=75.1,<76.0a0 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 588990 - timestamp: 1721031045514 + size: 608931 + timestamp: 1731489767386 - kind: conda name: libxml2 - version: 2.12.7 - build: h0f24e4e_4 - build_number: 4 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.7-h0f24e4e_4.conda - sha256: ae78197961b09b0eef4ee194a44e4adc4555c0f2f20c348086b0cd8aaf2f7731 - md5: ed4d301f0d2149b34deb9c4fecafd836 + version: 2.13.5 + build: hb346dea_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.5-hb346dea_0.conda + sha256: 8c9d6a3a421ac5bf965af495d1b0a08c6fb2245ba156550bc064a7b4f8fc7bd8 + md5: c81a9f1118541aaa418ccb22190c817e depends: + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 1682090 - timestamp: 1721031296951 + size: 689626 + timestamp: 1731489608971 - kind: conda name: libxml2 - version: 2.12.7 - build: he7c6b58_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-he7c6b58_4.conda - sha256: 10e9e0ac52b9a516a17edbc07f8d559e23778e54f1a7721b2e0e8219284fed3b - md5: 08a9265c637230c37cb1be4a6cad4536 + version: 2.13.5 + build: hbbdcc80_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.5-hbbdcc80_0.conda + sha256: 936de9c0e91cb6f178c48ea14313cf6c79bdb1f474c785c117c41492b0407a98 + md5: 967d4a9dadd710415ee008d862a07c99 depends: - - __glibc >=2.17,<3.0.a0 + - __osx >=11.0 - icu >=75.1,<76.0a0 - - libgcc-ng >=12 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 707169 - timestamp: 1721031016143 + size: 583082 + timestamp: 1731489765442 - kind: conda name: libxml2 - version: 2.12.7 - build: heaf3512_4 - build_number: 4 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.7-heaf3512_4.conda - sha256: ed18a2d8d428c0b88d47751ebcc7cc4e6202f99c3948fffd776cba83c4f0dad3 - md5: ea1be6ecfe814da889e882c8b6ead79d + version: 2.13.5 + build: hf4efe5d_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.13.5-hf4efe5d_0.conda + sha256: bb5033bd79371e82886f9e83ef86babae8e0f50b77d7f9302210345b9205d939 + md5: 5650ac8a6ed680c032bdabe40ad19ee0 depends: - - __osx >=10.13 - icu >=75.1,<76.0a0 + - libgcc >=13 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 619901 - timestamp: 1721031175411 + size: 734453 + timestamp: 1731489860751 - kind: conda name: libzlib version: 1.3.1 - build: h2466b09_1 - build_number: 1 + build: h2466b09_2 + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - sha256: b13846a54a15243e15f96fec06b526d8155adc6a1ac2b6ed47a88f6a71a94b68 - md5: d4483ca8afc57ddf1f6dded53b36c17f + url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402 + md5: 41fbfac52c601159df6c01f875de31b9 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other - size: 56186 - timestamp: 1716874730539 + size: 55476 + timestamp: 1727963768015 - kind: conda name: libzlib version: 1.3.1 - build: h4ab18f5_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - sha256: adf6096f98b537a11ae3729eaa642b0811478f0ea0402ca67b5108fe2cb0010d - md5: 57d7dc60e9325e3de37ff8dffd18e814 + build: h8359307_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b + md5: 369964e85dc26bfe78f41399b366c435 depends: - - libgcc-ng >=12 + - __osx >=11.0 constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other - size: 61574 - timestamp: 1716874187109 + size: 46438 + timestamp: 1727963202283 - kind: conda name: libzlib version: 1.3.1 - build: h68df207_1 - build_number: 1 + build: h86ecc28_2 + build_number: 2 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h68df207_1.conda - sha256: 0d6dfd1e36e10c205ff1fdcf42d42289ff0f50be7a4eaa7b34f086a5e22a0734 - md5: b13fb82f88902e34dd0638cd7d378c21 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + sha256: 5a2c1eeef69342e88a98d1d95bff1603727ab1ff4ee0e421522acd8813439b84 + md5: 08aad7cbe9f5a6b460d0976076b6ae64 depends: - - libgcc-ng >=12 + - libgcc >=13 constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other - size: 67199 - timestamp: 1716874136348 + size: 66657 + timestamp: 1727963199518 - kind: conda name: libzlib version: 1.3.1 - build: h87427d6_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - sha256: 80a62db652b1da0ccc100812a1d86e94f75028968991bfb17f9536f3aa72d91d - md5: b7575b5aa92108dcc9aaab0f05f2dbce + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other - size: 57372 - timestamp: 1716874211519 + size: 60963 + timestamp: 1727963148474 - kind: conda name: libzlib version: 1.3.1 - build: hfb2fe0b_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - sha256: c34365dd37b0eab27b9693af32a1f7f284955517c2cc91f1b88a7ef4738ff03e - md5: 636077128927cf79fd933276dc3aed47 + build: hd23fc13_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda + sha256: 8412f96504fc5993a63edf1e211d042a1fd5b1d51dedec755d2058948fcced09 + md5: 003a54a4e32b02f7355b50a837e699da depends: - - __osx >=11.0 + - __osx >=10.13 constrains: - - zlib 1.3.1 *_1 + - zlib 1.3.1 *_2 license: Zlib license_family: Other - size: 46921 - timestamp: 1716874262512 + size: 57133 + timestamp: 1727963183990 - kind: conda name: lz4-c version: 1.9.4 @@ -4732,91 +4876,14 @@ packages: license_family: GPL2 size: 171416 timestamp: 1713515738503 -- kind: conda - name: m2w64-gcc-libgfortran - version: 5.3.0 - build: '6' - build_number: 6 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 - sha256: 9de95a7996d5366ae0808eef2acbc63f9b11b874aa42375f55379e6715845dc6 - md5: 066552ac6b907ec6d72c0ddab29050dc - depends: - - m2w64-gcc-libs-core - - msys2-conda-epoch ==20160418 - license: GPL, LGPL, FDL, custom - size: 350687 - timestamp: 1608163451316 -- kind: conda - name: m2w64-gcc-libs - version: 5.3.0 - build: '7' - build_number: 7 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 - sha256: 3bd1ab02b7c89a5b153a17be03b36d833f1517ff2a6a77ead7c4a808b88196aa - md5: fe759119b8b3bfa720b8762c6fdc35de - depends: - - m2w64-gcc-libgfortran - - m2w64-gcc-libs-core - - m2w64-gmp - - m2w64-libwinpthread-git - - msys2-conda-epoch ==20160418 - license: GPL3+, partial:GCCRLE, partial:LGPL2+ - size: 532390 - timestamp: 1608163512830 -- kind: conda - name: m2w64-gcc-libs-core - version: 5.3.0 - build: '7' - build_number: 7 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 - sha256: 58afdfe859ed2e9a9b1cc06bc408720cb2c3a6a132e59d4805b090d7574f4ee0 - md5: 4289d80fb4d272f1f3b56cfe87ac90bd - depends: - - m2w64-gmp - - m2w64-libwinpthread-git - - msys2-conda-epoch ==20160418 - license: GPL3+, partial:GCCRLE, partial:LGPL2+ - size: 219240 - timestamp: 1608163481341 -- kind: conda - name: m2w64-gmp - version: 6.1.0 - build: '2' - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 - sha256: 7e3cd95f554660de45f8323fca359e904e8d203efaf07a4d311e46d611481ed1 - md5: 53a1c73e1e3d185516d7e3af177596d9 - depends: - - msys2-conda-epoch ==20160418 - license: LGPL3 - size: 743501 - timestamp: 1608163782057 -- kind: conda - name: m2w64-libwinpthread-git - version: 5.0.0.4634.697f757 - build: '2' - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 - sha256: f63a09b2cae7defae0480f1740015d6235f1861afa6fe2e2d3e10bd0d1314ee0 - md5: 774130a326dee16f1ceb05cc687ee4f0 - depends: - - msys2-conda-epoch ==20160418 - license: MIT, BSD - size: 31928 - timestamp: 1608166099896 - kind: conda name: menuinst - version: 2.1.2 + version: 2.2.0 build: py312h275cf98_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.1.2-py312h275cf98_0.conda - sha256: 1bad57b65af8240704ed7f59127aa2e73e752b3b38d545053a9ead17f7543000 - md5: 99dfcf93d3f9f3de81df4bc511b7f37b + url: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.2.0-py312h275cf98_0.conda + sha256: 6de0335756afcbca905e4796cc801a88c568ec0711fad3777c7ae87a81628faf + md5: c435a5681c148e369bb49f8fa15acbaf depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -4824,154 +4891,143 @@ packages: - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause AND MIT - size: 133599 - timestamp: 1723302280122 + size: 133005 + timestamp: 1731147494253 - kind: conda name: menuinst - version: 2.1.2 + version: 2.2.0 build: py312h7900ff3_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.1.2-py312h7900ff3_0.conda - sha256: 00d20eb241772301b0bbc13c67876b880f37ea5b99032847bafdcae1cb87fdf7 - md5: 42a2e41695577b153127635d797bf080 + url: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.2.0-py312h7900ff3_0.conda + sha256: a3d3f509e545913b6aee004b3e91c0147723b7d569ff256db9cbc8eb2d7b1772 + md5: f22f8e77b36e67297feffe03eefd5375 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause AND MIT - size: 166453 - timestamp: 1723302022197 + size: 166308 + timestamp: 1731147065526 - kind: conda name: menuinst - version: 2.1.2 + version: 2.2.0 build: py312h81bd7bf_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.1.2-py312h81bd7bf_0.conda - sha256: 2f78e21d87d3c94800ed2501a8a3967a84f956cb8907233b928fdbe04f5c0546 - md5: 856ba965475ade914d8825feb00ca94a + url: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.2.0-py312h81bd7bf_0.conda + sha256: b1def1d581bfd96473e854712ce77fe039835ea5c80d9a5033b0d2d2d14cdf0c + md5: 4ecad32f75f4ad25268e38778cac2b7f depends: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause AND MIT - size: 166357 - timestamp: 1723302129353 + size: 166659 + timestamp: 1731147206286 - kind: conda name: menuinst - version: 2.1.2 + version: 2.2.0 build: py312h996f985_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.1.2-py312h996f985_0.conda - sha256: 47246ff2c184c8259056f96a5defa994f53ccc30fc1f5ff9e94d8b570ffddb1c - md5: f45a51625cd7c39b64c78c5a46a12965 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.2.0-py312h996f985_0.conda + sha256: 467e05563f58004b3d143ec7b975443b015eddd76e98f5ea71e04fdd1657b30f + md5: ef25ec436741df9dbcb2831b4ccb160d depends: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause AND MIT - size: 166175 - timestamp: 1723302130806 + size: 166746 + timestamp: 1731147165325 - kind: conda name: menuinst - version: 2.1.2 + version: 2.2.0 build: py312hb401068_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.1.2-py312hb401068_0.conda - sha256: d22cf40a3c9ce90fba0dd1983cb98720a31fb454cb402526c34e159eee95566e - md5: fef7fd3062d69721e7b5210279c3dca0 + url: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.2.0-py312hb401068_0.conda + sha256: caf806b6f0d8acbfc06d87c21d89b0624b5b230fd30246860399fa01f3b0ba0f + md5: 4b908217561a1274f48b0f9952fb5359 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause AND MIT - size: 165873 - timestamp: 1723302112869 + size: 166741 + timestamp: 1731147133148 - kind: conda name: micromamba - version: 1.5.9 - build: '0' + version: 2.0.2 + build: '2' + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/micromamba-1.5.9-0.tar.bz2 - sha256: 7805705e845167322171a7a349b6633f68355a49c32a7d7fd01609fad542a736 - md5: 1ee1e5ee7ad98d9b6a1e57acd02f61ee + url: https://conda.anaconda.org/conda-forge/linux-64/micromamba-2.0.2-2.tar.bz2 + sha256: 546f1c5412361af00b2df98010c0dcbd32282dcd19e5e672dc59fc2a0b6b7a26 + md5: 316c8430b309056db8673584267a3ae1 depends: - __glibc >=2.17,<3.0.a0 - - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 5604810 - timestamp: 1725067654009 + size: 6028813 + timestamp: 1729508319220 - kind: conda name: micromamba - version: 1.5.9 - build: '0' + version: 2.0.2 + build: '2' + build_number: 2 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-1.5.9-0.tar.bz2 - sha256: 0d9183ccbc6d74164a4f7bd87286fe99e0f13dcefc38e64564d9c45f6e2e6314 - md5: d65b47539ad0dc8fddcbd058809e07eb - depends: - - libzlib >=1.3.1,<2.0a0 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-2.0.2-2.tar.bz2 + sha256: 19167a52137e131aa1306f0aef67c7849aa7e75cb1591a75f3ce417ef4d28f26 + md5: 2de10cb8308aa812293f7c7ced73afb3 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 6900015 - timestamp: 1725067630716 + size: 7222304 + timestamp: 1729508823169 - kind: conda name: micromamba - version: 1.5.9 - build: '0' + version: 2.0.2 + build: '2' + build_number: 2 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/micromamba-1.5.9-0.tar.bz2 - sha256: baf21f539d3af5cdf8cdb7f215995e403d742cddf8334f0ba6cab63cbc8f21d2 - md5: 67d538f1dfc9e84f60d8694d2f52f724 + url: https://conda.anaconda.org/conda-forge/osx-64/micromamba-2.0.2-2.tar.bz2 + sha256: 8f105c0022f655e94f5344a76f12f6b06ec2031f3e675089ba39a7d2b38f25ef + md5: 1cc5d0411c68b98b07a44d0e14a5f368 depends: - __osx >=10.13 - libcxx >=17 - - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 5734410 - timestamp: 1725067485862 + size: 6129559 + timestamp: 1729509261822 - kind: conda name: micromamba - version: 1.5.9 - build: '0' + version: 2.0.2 + build: '2' + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-1.5.9-0.tar.bz2 - sha256: fd2594332d27e1c6949527c21802f89ff43c1f0eedfc7fe0e09cc0b546419ce2 - md5: 74ec4c42ed9e8ed921d67f1f812a0719 + url: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-2.0.2-2.tar.bz2 + sha256: 7eecccd9e57f7d3a0c118b5b9e93cec514ad33903ae182878733a178e3ef5f2d + md5: 46876e6f7a2eb93170700d0fbf1dd199 depends: - __osx >=11.0 - libcxx >=17 - - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 5825490 - timestamp: 1725067242634 + size: 6119796 + timestamp: 1729508549858 - kind: conda name: micromamba - version: 1.5.9 - build: '0' + version: 2.0.2 + build: '2' + build_number: 2 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/micromamba-1.5.9-0.tar.bz2 - sha256: 36a64581420e66e656d32aa15dafdfa26e3129408b3b5a530b8fc988d38de167 - md5: 8bf89d8133b303ab878884bce97bdc59 + url: https://conda.anaconda.org/conda-forge/win-64/micromamba-2.0.2-2.tar.bz2 + sha256: 4e7af0e090e2dd4d0b245f62f1815de332fda1b1b6988eddb222904582d3f9d4 + md5: eb9835f31d51ccfad1f25a24869139dd depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 3636853 - timestamp: 1725069090895 -- kind: conda - name: msys2-conda-epoch - version: '20160418' - build: '1' - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 - sha256: 99358d58d778abee4dca82ad29fb58058571f19b0f86138363c260049d4ac7f1 - md5: b0309b72560df66f71a9d5e34a5efdfa - size: 3227 - timestamp: 1608166968312 + size: 3925141 + timestamp: 1729511045826 - kind: conda name: ncurses version: '6.5' @@ -5047,107 +5103,106 @@ packages: timestamp: 1717585382642 - kind: conda name: nodejs - version: 22.7.0 - build: h08fde81_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.7.0-h08fde81_0.conda - sha256: a9ff48b79103918ae46e6d70a090c07646309ba94c6dbff6664ec535df030382 - md5: c4b4eea2b29f0eb95d89ccd648c078f4 - depends: - - __osx >=11.0 - - icu >=75.1,<76.0a0 - - libcxx >=17 - - libuv >=1.48.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 - - zlib - license: MIT - license_family: MIT - size: 15027402 - timestamp: 1724456362591 -- kind: conda - name: nodejs - version: 22.7.0 + version: 22.11.0 build: h57928b3_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.7.0-h57928b3_0.conda - sha256: 4d2b483480231e5d25a8375f3c424609cd1c0983b657338d544b9160e2a8743a - md5: f69c88e6ac2b9c0dba88ab9abf677516 + url: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + sha256: b182be51b98ee410d9065c2e202dfb86bb7cb6f1db958790e34836bb99e9ad4b + md5: 902548b1eaf4fec280a98c13c3d8cf3e license: MIT license_family: MIT - size: 25602394 - timestamp: 1724440325962 + size: 25685624 + timestamp: 1731917625548 - kind: conda name: nodejs - version: 22.7.0 + version: 22.11.0 build: h8374285_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.7.0-h8374285_0.conda - sha256: bd55f9072e8e38823b5170415ca3f09a41de6c0f833409f238db4ff12d14b445 - md5: 570119ba3d65f16ec936fe7d42171913 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + sha256: 6368bdcbf057da1e4be5f457dde2a2fabbb389a5185c571d4175f06529340bbb + md5: 99f27727173302a7172ff76dabe8596c depends: - __glibc >=2.28,<3.0.a0 - icu >=75.1,<76.0a0 - - libgcc-ng >=13 - - libstdcxx-ng >=13 - - libuv >=1.48.0,<2.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libuv >=1.49.2,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - zlib license: MIT license_family: MIT - size: 21717958 - timestamp: 1724448139856 + size: 21847436 + timestamp: 1731925818400 - kind: conda name: nodejs - version: 22.7.0 - build: hd71786a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.7.0-hd71786a_0.conda - sha256: ceaa87bcc099cc5eb30f9a728d368eba9aea20a85f7ef29d60736608865f74ab - md5: b7e5e42e6f934306cd576169b60b69e6 + version: 22.11.0 + build: haa7c7e9_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + sha256: 304a2bf558f262a8e29f6b6abcc5fabde3b31d903bc699381b1b57f41e7c34d0 + md5: 34da600f0addaef949d28953e23482b4 depends: - - __osx >=10.15 + - __osx >=11.0 - icu >=75.1,<76.0a0 - - libcxx >=17 - - libuv >=1.48.0,<2.0a0 + - libcxx >=18 + - libuv >=1.49.2,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - zlib license: MIT license_family: MIT - size: 15455406 - timestamp: 1724448298945 + size: 14965601 + timestamp: 1731936621771 - kind: conda name: nodejs - version: 22.7.0 + version: 22.11.0 build: hf235a45_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.7.0-hf235a45_0.conda - sha256: 8b10c42cc2d6f6ac5a20a42f216f94a9480bde7f5fedee3f84b71cae426d54d6 - md5: 11cb180c84856b35a4d8d419b6274892 + url: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + sha256: b90c26267d12d5dd97ef09b4393235be3a3cbe5eef07c5a2ada4230623f0b0b1 + md5: 64cd0bde7dffac5baa4d9fb0ac3ae713 depends: - __glibc >=2.28,<3.0.a0 - icu >=75.1,<76.0a0 - - libgcc-ng >=13 - - libstdcxx-ng >=13 - - libuv >=1.48.0,<2.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libuv >=1.49.2,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - zlib + license: MIT + license_family: MIT + size: 21336234 + timestamp: 1731921762943 +- kind: conda + name: nodejs + version: 22.11.0 + build: hf4117ec_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.11.0-hf4117ec_0.conda + sha256: d86709c3c2e2a58331b1642bab314b22d030e3d8738e19429f967d3ab0314604 + md5: 076c12f64b455b71958dfdfdcd6b6d96 + depends: + - __osx >=10.15 + - icu >=75.1,<76.0a0 + - libcxx >=18 + - libuv >=1.49.2,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.4.0,<4.0a0 - zlib license: MIT license_family: MIT - size: 21386879 - timestamp: 1724445846043 + size: 15707721 + timestamp: 1731928765541 - kind: conda name: openssl - version: 3.3.1 - build: h2466b09_3 - build_number: 3 + version: 3.4.0 + build: h2466b09_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_3.conda - sha256: 76a10564ca450f56495cff06bf60bdf0fe42e6ef7a20469276894d4ac7c0140a - md5: c6ebd3a1a2b393e040ca71c9f9ef8d97 + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + sha256: e03045a0837e01ff5c75e9273a572553e7522290799807f918c917a9826a6484 + md5: d0d805d9b5524a14efb51b3bff965e83 depends: - ca-certificates - ucrt >=10.0.20348.0 @@ -5155,88 +5210,85 @@ packages: - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache - size: 8362062 - timestamp: 1724404916759 + size: 8491156 + timestamp: 1731379715927 - kind: conda name: openssl - version: 3.3.1 - build: h8359307_3 - build_number: 3 + version: 3.4.0 + build: h39f12f2_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-h8359307_3.conda - sha256: 9dd1ee7a8c21ff4fcbb98e9d0be0e83e5daf8a555c73589ad9e3046966b72e5e - md5: 644904d696d83c0ac78d594e0cf09f66 + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + sha256: bd1d58ced46e75efa3b842c61642fd12272c69e9fe4d7261078bc082153a1d53 + md5: df307bbc703324722df0293c9ca2e418 depends: - __osx >=11.0 - ca-certificates license: Apache-2.0 license_family: Apache - size: 2888820 - timestamp: 1724402552318 + size: 2935176 + timestamp: 1731377561525 - kind: conda name: openssl - version: 3.3.1 - build: h86ecc28_3 - build_number: 3 + version: 3.4.0 + build: h86ecc28_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.3.1-h86ecc28_3.conda - sha256: 5489a7c02329844703934b46258b7a61a36d2449eba04f9df81f7eb208bf631d - md5: 7f591390401ad65781372240424ab7fc + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + sha256: 64dbbdd6384fa56338124783197f7ad9048c989a02264bcd2e07355e3570f113 + md5: b2f202b5bddafac824eb610b65dde98f depends: - ca-certificates - - libgcc-ng >=13 + - libgcc >=13 license: Apache-2.0 license_family: Apache - size: 3428368 - timestamp: 1724404203725 + size: 3474825 + timestamp: 1731379200886 - kind: conda name: openssl - version: 3.3.1 - build: hb9d3cd8_3 - build_number: 3 + version: 3.4.0 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-hb9d3cd8_3.conda - sha256: 9e27441b273a7cf9071f6e88ba9ad565d926d8083b154c64a74b99fba167b137 - md5: 6c566a46baae794daf34775d41eb180a + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + sha256: 814b9dff1847b132c676ee6cc1a8cb2d427320779b93e1b6d76552275c128705 + md5: 23cc74f77eb99315c0360ec3533147a9 depends: - __glibc >=2.17,<3.0.a0 - ca-certificates - - libgcc-ng >=13 + - libgcc >=13 license: Apache-2.0 license_family: Apache - size: 2892042 - timestamp: 1724402701933 + size: 2947466 + timestamp: 1731377666602 - kind: conda name: openssl - version: 3.3.1 - build: hd23fc13_3 - build_number: 3 + version: 3.4.0 + build: hd471939_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-hd23fc13_3.conda - sha256: 63921822fbb66337e0fd50b2a07412583fbe7783bc92c663bdf93c9a09026fdc - md5: ad8c8c9556a701817bd1aca75a302e96 + url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hd471939_0.conda + sha256: ba7e068ed469d6625e32ae60e6ad893e655b6695280dadf7e065ed0b6f3b885c + md5: ec99d2ce0b3033a75cbad01bbc7c5b71 depends: - __osx >=10.13 - ca-certificates license: Apache-2.0 license_family: Apache - size: 2549881 - timestamp: 1724403015051 + size: 2590683 + timestamp: 1731378034404 - kind: conda name: packaging - version: '24.1' - build: pyhd8ed1ab_0 + version: '24.2' + build: pyhff2d567_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - sha256: 36aca948219e2c9fdd6d80728bcc657519e02f06c2703d8db3446aec67f51d81 - md5: cbe1bb1f21567018ce595d9c2be0f0db + url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + sha256: 74843f871e5cd8a1baf5ed8c406c571139c287141efe532f8ffbdafa3664d244 + md5: 8508b703977f4c4ada34d657d051972c depends: - python >=3.8 license: Apache-2.0 license_family: APACHE - size: 50290 - timestamp: 1718189540074 + size: 60380 + timestamp: 1731802602808 - kind: conda name: pcre2 version: '10.44' @@ -5375,19 +5427,19 @@ packages: timestamp: 1720806136579 - kind: conda name: platformdirs - version: 4.2.2 + version: 4.3.6 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.2-pyhd8ed1ab_0.conda - sha256: adc59384cf0b2fc6dc7362840151e8cb076349197a38f7230278252698a88442 - md5: 6f6cf28bf8e021933869bae3f84b8fc9 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + sha256: c81bdeadc4adcda216b2c7b373f0335f5c78cc480d1d55d10f21823590d7e46f + md5: fd8f2b18b65bbf62e8f653100690c8d2 depends: - python >=3.8 license: MIT license_family: MIT - size: 20572 - timestamp: 1715777739019 + size: 20625 + timestamp: 1726613611845 - kind: conda name: pluggy version: 1.5.0 @@ -5405,13 +5457,13 @@ packages: timestamp: 1713667175451 - kind: conda name: pre-commit - version: 3.8.0 + version: 4.0.1 build: pyha770c72_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.8.0-pyha770c72_0.conda - sha256: 2363c8706ca3b2a3385b09e33f639f6b66e4fa8d00a21c3dea4d934472a96e85 - md5: 1822e87a5d357f79c6aab871d86fb062 + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda + sha256: 2490b18ec802d8f085f2de8298a3d275451f7db17769353080dfb121fe386675 + md5: 5971cc64048943605f352f7f8612de6c depends: - cfgv >=2.0.0 - identify >=1.0.0 @@ -5421,25 +5473,26 @@ packages: - virtualenv >=20.10.0 license: MIT license_family: MIT - size: 180036 - timestamp: 1722604788932 + size: 194633 + timestamp: 1728420305558 - kind: conda name: pre-commit-hooks - version: 4.6.0 - build: pyhd8ed1ab_0 + version: 5.0.0 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-4.6.0-pyhd8ed1ab_0.conda - sha256: 2d4a57474c7e2b90cc301df6197207d0812753279b2a7fae88106e0adc5d0b21 - md5: 9b353c467bcabf27ab5bae2e319c16bf + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda + sha256: 75a24fc0022d74a763609127d3aa33678e94f99023fa9dd90eaaa6e2cde267a8 + md5: c40b2ccce2c365b1e36c0c971913646c depends: - python >=3.6 - ruamel.yaml >=0.15 - tomli >=1.1.0 license: MIT license_family: MIT - size: 34686 - timestamp: 1712432480698 + size: 35026 + timestamp: 1728898856315 - kind: conda name: prettier version: 3.3.3 @@ -5664,26 +5717,25 @@ packages: timestamp: 1661604969727 - kind: conda name: python - version: 3.12.5 - build: h2ad013b_0_cpython - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda - sha256: e2aad83838988725d4ffba4e9717b9328054fd18a668cff3377e0c50f109e8bd - md5: 9c56c4df45f6571b13111d8df2448692 + version: 3.12.7 + build: h5d932e8_0_cpython + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.7-h5d932e8_0_cpython.conda + sha256: 25570873d92d4d9490c6db780cc85e6c28bd3ff61dc1ece79f602cf82bc73bc1 + md5: e6cab21bb5787270388939cf41cc5f43 depends: - - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.6.2,<3.0a0 + - ld_impl_linux-aarch64 >=2.36.1 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 + - libgcc >=13 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libuuid >=2.38.1,<3.0a0 - libxcrypt >=4.4.36 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -5691,25 +5743,25 @@ packages: constrains: - python_abi 3.12.* *_cp312 license: Python-2.0 - size: 31663253 - timestamp: 1723143721353 + size: 13762126 + timestamp: 1728057461028 - kind: conda name: python - version: 3.12.5 - build: h30c5eda_0_cpython + version: 3.12.7 + build: h739c21a_0_cpython subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.5-h30c5eda_0_cpython.conda - sha256: 1319e918fb54c9491832a9731cad00235a76f61c6f9b23fc0f70cdfb74c950ea - md5: 5e315581e2948dfe3bcac306540e9803 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda + sha256: 45d7ca2074aa92594bd2f91a9003b338cc1df8a46b9492b7fc8167110783c3ef + md5: e0d82e57ebb456077565e6d82cd4a323 depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -5717,25 +5769,56 @@ packages: constrains: - python_abi 3.12.* *_cp312 license: Python-2.0 - size: 12926356 - timestamp: 1723142203193 + size: 12975439 + timestamp: 1728057819519 - kind: conda name: python - version: 3.12.5 - build: h37a9e06_0_cpython + version: 3.12.7 + build: h8f8b54e_0_cpython subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.5-h37a9e06_0_cpython.conda - sha256: c0f39e625b2fd65f70a9cc086fe4b25cc72228453dbbcd92cd5d140d080e38c5 - md5: 517cb4e16466f8d96ba2a72897d14c48 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.7-h8f8b54e_0_cpython.conda + sha256: 28172d94f7193c5075c0fc3c4b1bb617c512ffc991f4e2af0dbb6a2916872b76 + md5: 7f81191b1ca1113e694e90e15c27a12f depends: - __osx >=10.13 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 13761315 + timestamp: 1728058247482 +- kind: conda + name: python + version: 3.12.7 + build: hc5c86c4_0_cpython + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + sha256: 674be31ff152d9f0e0fe16959a45e3803a730fc4f54d87df6a9ac4e6a698c41d + md5: 0515111a9cdf69f83278f7c197db9807 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -5743,23 +5826,23 @@ packages: constrains: - python_abi 3.12.* *_cp312 license: Python-2.0 - size: 12173272 - timestamp: 1723142761765 + size: 31574780 + timestamp: 1728059777603 - kind: conda name: python - version: 3.12.5 - build: h889d299_0_cpython + version: 3.12.7 + build: hce54a09_0_cpython subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python-3.12.5-h889d299_0_cpython.conda - sha256: 4cef304eb8877fd3094c14b57097ccc1b817b4afbf2223dd45d2b61e44064740 - md5: db056d8b140ab2edd56a2f9bdb203dcd + url: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda + sha256: 2308cfa9ec563360d29ced7fd13a6b60b9a7b3cf8961a95c78c69f486211d018 + md5: 21f1f7c6ccf6b747c5086d2422c230e1 depends: - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - ucrt >=10.0.20348.0 @@ -5769,53 +5852,163 @@ packages: constrains: - python_abi 3.12.* *_cp312 license: Python-2.0 - size: 15897752 - timestamp: 1723141830317 + size: 15987537 + timestamp: 1728057382072 +- kind: conda + name: python + version: 3.13.0 + build: h0608dab_100_cp313 + build_number: 100 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.13.0-h0608dab_100_cp313.conda + sha256: f4c8ca4c34cb2a508956cfc8c2130dc30f168a75ae8254da8c43b5dce10ed2ea + md5: 9603103619775a3f99fe4b58d278775e + depends: + - __osx >=10.13 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + license: Python-2.0 + size: 13933848 + timestamp: 1729169951268 - kind: conda name: python - version: 3.12.5 - build: hb188aa9_0_cpython + version: 3.13.0 + build: h6bfe66a_100_cp313 + build_number: 100 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.5-hb188aa9_0_cpython.conda - sha256: dbab5e16487bf7276e98ca4dbcbd412be7ab3c674f8ecc0c6f2199bc5f01d554 - md5: 29d0b64c0b5e812fe96a42dcb471a7da + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.13.0-h6bfe66a_100_cp313.conda + sha256: d9a0431172e369027adbc246f531e1ac931c67588b55175c05c9011d87427895 + md5: 42a8b7b84b9f632329f59a8537660e17 depends: - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-aarch64 >=2.36.1 - - libexpat >=2.6.2,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.46.0,<4.0a0 + - libgcc >=13 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.46.1,<4.0a0 - libuuid >=2.38.1,<3.0a0 - - libxcrypt >=4.4.36 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 + - python_abi 3.13.* *_cp313 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.12.* *_cp312 license: Python-2.0 - size: 13724462 - timestamp: 1723141768383 + size: 13423414 + timestamp: 1728417463367 - kind: conda - name: python_abi - version: '3.12' - build: 5_cp312 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 - md5: 0424ae29b104430108f5218a66db7260 - constrains: - - python 3.12.* *_cpython - license: BSD-3-Clause - license_family: BSD - size: 6238 - timestamp: 1723823388266 + name: python + version: 3.13.0 + build: h75c3a9f_100_cp313 + build_number: 100 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.0-h75c3a9f_100_cp313.conda + sha256: be9464399b76ae1fef77853eed70267ef657a98a5f69f7df012b7c6a34792151 + md5: 94ae22ea862d056ad1bc095443d02d73 + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + license: Python-2.0 + size: 12804842 + timestamp: 1729168680448 +- kind: conda + name: python + version: 3.13.0 + build: h9ebbce0_100_cp313 + build_number: 100 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.0-h9ebbce0_100_cp313.conda + sha256: 6ab5179679f0909db828d8316f3b8b379014a82404807310fe7df5a6cf303646 + md5: 08e9aef080f33daeb192b2ddc7e4721f + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + license: Python-2.0 + size: 33112481 + timestamp: 1728419573472 +- kind: conda + name: python + version: 3.13.0 + build: hf5aa216_100_cp313 + build_number: 100 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.13.0-hf5aa216_100_cp313.conda + sha256: 18f3f0bd514c9101d38d57835b2d027958f3ae4b3b65c22d187a857aa26b3a08 + md5: 3c2f7ad3f598480fe2a09e4e33cb1a2a + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - python_abi 3.13.* *_cp313 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 + license: Python-2.0 + size: 16641177 + timestamp: 1728417810202 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 + md5: 0424ae29b104430108f5218a66db7260 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6238 + timestamp: 1723823388266 - kind: conda name: python_abi version: '3.12' @@ -5876,87 +6069,167 @@ packages: license_family: BSD size: 6730 timestamp: 1723823139725 +- kind: conda + name: python_abi + version: '3.13' + build: 5_cp313 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.13-5_cp313.conda + sha256: 438225b241c5f9bddae6f0178a97f5870a89ecf927dfca54753e689907331442 + md5: 381bbd2a92c863f640a55b6ff3c35161 + constrains: + - python 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 6217 + timestamp: 1723823393322 +- kind: conda + name: python_abi + version: '3.13' + build: 5_cp313 + build_number: 5 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.13-5_cp313.conda + sha256: 7f3ce809934a401ec8a91f66bd157a2f5b620d5bb5e02b53aa2453e8a6bf117e + md5: 74a44e8cf3265491bd0e7da5e788b017 + constrains: + - python 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 6323 + timestamp: 1723823381420 +- kind: conda + name: python_abi + version: '3.13' + build: 5_cp313 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.13-5_cp313.conda + sha256: 075ad768648e88b78d2a94099563b43d3082e7c35979f457164f26d1079b7b5c + md5: 927a2186f1f997ac018d67c4eece90a6 + constrains: + - python 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 6291 + timestamp: 1723823083064 +- kind: conda + name: python_abi + version: '3.13' + build: 5_cp313 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.13-5_cp313.conda + sha256: 4437198eae80310f40b23ae2f8a9e0a7e5c2b9ae411a8621eb03d87273666199 + md5: b8e82d0a5c1664638f87f63cc5d241fb + constrains: + - python 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 6322 + timestamp: 1723823058879 +- kind: conda + name: python_abi + version: '3.13' + build: 5_cp313 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.13-5_cp313.conda + sha256: 0c12cc1b84962444002c699ed21e815fb9f686f950d734332a1b74d07db97756 + md5: 44b4fe6f22b57103afb2299935c8b68e + constrains: + - python 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 6716 + timestamp: 1723823166911 - kind: conda name: pyyaml version: 6.0.2 - build: py312h396f95a_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.2-py312h396f95a_0.conda - sha256: fdfc0be973297f90777248a36913b8dd0a581fdaf8c5495174c147fce9984966 - md5: 0d8fb5e4b02256354c754455152d0eb6 + build: py312h024a12e_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda + sha256: b06f1c15fb39695bbf707ae8fb554b9a77519af577b5556784534c7db10b52e3 + md5: 1ee23620cf46cb15900f70a1300bae55 depends: - - libgcc-ng >=12 + - __osx >=11.0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT - size: 199147 - timestamp: 1723018401815 + size: 187143 + timestamp: 1725456547263 - kind: conda name: pyyaml version: 6.0.2 - build: py312h41a817b_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h41a817b_0.conda - sha256: 06a139ccc9a1472489ca5df6f7c6f44e2eb9b1c2de1142f5beec3f430ca7ae3c - md5: 1779c9cbd9006415ab7bb9e12747e9d1 + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda + sha256: fa3ede1fa2ed6ea0a51095aeea398f6f0f54af036c4bc525726107cfb49229d5 + md5: afb7809721516919c276b45f847c085f depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT - size: 205734 - timestamp: 1723018377857 + size: 181227 + timestamp: 1725456516473 - kind: conda name: pyyaml version: 6.0.2 - build: py312h4389bb4_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_0.conda - sha256: 2413377ce0fd4eee66eaf5450d0200cd9124acfb9fc7932dcdc2f618bc8e840e - md5: a64ca370389c8bfacf848f40654ffc04 + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda + sha256: a60705971e958724168f2ebbb8ed4853067f1d3f7059843df3903e3092bbcffa + md5: 549e5930e768548a89c23f595dac5a95 depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT - size: 181385 - timestamp: 1723018911152 + size: 206553 + timestamp: 1725456256213 - kind: conda name: pyyaml version: 6.0.2 - build: py312h7e5086c_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h7e5086c_0.conda - sha256: 1248d77c97f936e04ab5a8e4d9ac4175b470de7edf4b19310a59557223da2fe4 - md5: 0edf42e0544fab34322e3c30d04213df + build: py312hb2c0f52_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.2-py312hb2c0f52_1.conda + sha256: 8c515ebe1e7e85d972d72b75760af9dfac06fd11a9dba7e05c42d69aedbb303c + md5: dc5de424f7dbb9772da720dbb81317b2 depends: - - __osx >=11.0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT - size: 187731 - timestamp: 1723018560445 + size: 199141 + timestamp: 1725456356043 - kind: conda name: pyyaml version: 6.0.2 - build: py312hbd25219_0 + build: py312hb553811_1 + build_number: 1 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312hbd25219_0.conda - sha256: dfc405e4c08edd587893ff0300140814838508d92e4ef1f8a1f8f35527108380 - md5: 3d847d381481b9bd802c2735e08f0c43 + url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312hb553811_1.conda + sha256: 455ce40588b35df654cb089d29cc3f0d3c78365924ffdfc6ee93dba80cea5f33 + md5: 66514594817d51c78db7109a23ad322f depends: - __osx >=10.13 - python >=3.12,<3.13.0a0 @@ -5964,8 +6237,103 @@ packages: - yaml >=0.2.5,<0.3.0a0 license: MIT license_family: MIT - size: 190172 - timestamp: 1723018420621 + size: 189347 + timestamp: 1725456465705 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py313h20a7fcf_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py313h20a7fcf_1.conda + sha256: f9fbafcf30cfab591c67f7550c0fd58e2bff394b53864dcdc658f5abd27ce5d6 + md5: bf2ddf70a9ce8f899b1082d17cbb3d1d + depends: + - __osx >=11.0 + - python >=3.13.0rc1,<3.14.0a0 + - python >=3.13.0rc1,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 187550 + timestamp: 1725456463634 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py313h31d5739_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.2-py313h31d5739_1.conda + sha256: 3f76b99cde1581f667e414b6e36f3bdadd4b454e980115ab876da5301e60a624 + md5: a4610536c884df004c921f963d9a736d + depends: + - libgcc >=13 + - python >=3.13.0rc1,<3.14.0a0 + - python >=3.13.0rc1,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 198069 + timestamp: 1725456352618 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py313h536fd9c_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py313h536fd9c_1.conda + sha256: 86ae34bf2bab82c0fff2e31a37318c8977297776436df780a83c6efa5f84749d + md5: 3789f360de131c345e96fbfc955ca80b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 205855 + timestamp: 1725456273924 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py313ha37c0e0_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py313ha37c0e0_1.conda + sha256: 79ca3a62f0f085e5f29f1614c0d509a20d3a34bb2ef956c079ee4cdf0e36dbfc + md5: cdaa065902c8bbf2975cf7744fb5c27d + depends: + - __osx >=10.13 + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 190014 + timestamp: 1725456352876 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py313ha7868ed_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py313ha7868ed_1.conda + sha256: ffa21c4715aa139d20c96ae7274fbb7de12a546f3332eb8d07cc794741fcbde6 + md5: c1743e5c4c7402a14b515cf276778e59 + depends: + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 181722 + timestamp: 1725456802746 - kind: conda name: readline version: '8.2' @@ -6028,19 +6396,6 @@ packages: license_family: GPL size: 255870 timestamp: 1679532707590 -- kind: conda - name: reproc - version: 14.2.4.post0 - build: h10d778d_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/reproc-14.2.4.post0-h10d778d_1.conda - sha256: 41c7fb3ef17684c98c1d2c50d0eaba388beed400dbc4cc099a9f31a2819ef594 - md5: d7c3258e871481be5bbaf28b4729e29f - license: MIT - license_family: MIT - size: 32403 - timestamp: 1698242540515 - kind: conda name: reproc version: 14.2.4.post0 @@ -6058,49 +6413,63 @@ packages: timestamp: 1698242244378 - kind: conda name: reproc - version: 14.2.4.post0 - build: h93a5062_1 - build_number: 1 + version: 14.2.5.post0 + build: h2466b09_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.5.post0-h2466b09_0.conda + sha256: 112dee79da4f55de91f029dd9808f4284bc5e0cf0c4d308d4cec3381bf5bc836 + md5: c3ca4c18c99a3b9832e11b11af227713 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 37058 + timestamp: 1731926140985 +- kind: conda + name: reproc + version: 14.2.5.post0 + build: h5505292_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-14.2.4.post0-h93a5062_1.conda - sha256: e12534c909613b56c539eed6f4cd55da2eb03086435101fad79c383a9c3df527 - md5: ef7ae6d7bb50c8c735551d825e1ea287 + url: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-14.2.5.post0-h5505292_0.conda + sha256: a5f0dbfa8099a3d3c281ea21932b6359775fd8ce89acc53877a6ee06f50642bc + md5: f1d129089830365d9dac932c4dd8c675 + depends: + - __osx >=11.0 license: MIT license_family: MIT - size: 32026 - timestamp: 1698242638367 + size: 32023 + timestamp: 1731926255834 - kind: conda name: reproc - version: 14.2.4.post0 - build: hcfcfb64_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.4.post0-hcfcfb64_1.conda - sha256: b0febe375de5a98d6371225d4599b7e4c1a6f70d3e4e2eb50b14ec9efb19f02c - md5: 887478162e563ea09451b19c22b1605b + version: 14.2.5.post0 + build: h6e16a3a_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/reproc-14.2.5.post0-h6e16a3a_0.conda + sha256: dda2a8bc1bf16b563b74c2a01dccea657bda573b0c45e708bfeee01c208bcbaf + md5: eda18d4a7dce3831016086a482965345 depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=10.13 license: MIT license_family: MIT - size: 36752 - timestamp: 1698242941460 + size: 31749 + timestamp: 1731926270954 - kind: conda name: reproc - version: 14.2.4.post0 - build: hd590300_1 - build_number: 1 + version: 14.2.5.post0 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/reproc-14.2.4.post0-hd590300_1.conda - sha256: bb2e4e0ce93bc61bc7c03c4f66abcb8161b0a4f1c41b5156cf1e5e17892b05d8 - md5: 82ca53502dfd5a64a80dee76dae14685 + url: https://conda.anaconda.org/conda-forge/linux-64/reproc-14.2.5.post0-hb9d3cd8_0.conda + sha256: a1973f41a6b956f1305f9aaefdf14b2f35a8c9615cfe5f143f1784ed9aa6bf47 + md5: 69fbc0a9e42eb5fe6733d2d60d818822 depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT - size: 33928 - timestamp: 1698242272153 + size: 34194 + timestamp: 1731925834928 - kind: conda name: reproc-cpp version: 14.2.4.post0 @@ -6120,73 +6489,70 @@ packages: timestamp: 1698242268434 - kind: conda name: reproc-cpp - version: 14.2.4.post0 - build: h59595ed_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.4.post0-h59595ed_1.conda - sha256: 8f0c6852471c0f2b02ab21d7c2877e30fc7f4d7d8034ca90bd9fdc3a22277fe9 - md5: 715e1d720ec1a03715bebd237972fca5 + version: 14.2.5.post0 + build: h240833e_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/reproc-cpp-14.2.5.post0-h240833e_0.conda + sha256: 4d8638b7f44082302c7687c99079789f42068d34cddc0959c11ad5d28aab3d47 + md5: 420229341978751bd96faeced92c200e depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - reproc 14.2.4.post0 hd590300_1 + - __osx >=10.13 + - libcxx >=18 + - reproc 14.2.5.post0 h6e16a3a_0 license: MIT license_family: MIT - size: 25379 - timestamp: 1698242302911 + size: 24394 + timestamp: 1731926392643 - kind: conda name: reproc-cpp - version: 14.2.4.post0 - build: h63175ca_1 - build_number: 1 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/reproc-cpp-14.2.4.post0-h63175ca_1.conda - sha256: c9b5274eca644ba52420bbdf49f654534b47719a761e15764e0d2e5b6634a7d2 - md5: 12fcd53cef836a4128c65c464ebb09d7 + version: 14.2.5.post0 + build: h286801f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-cpp-14.2.5.post0-h286801f_0.conda + sha256: f1b6aa9d9131ea159a5883bc5990b91b4b8f56eb52e0dc2b01aa9622e14edc81 + md5: 11a3d09937d250fc4423bf28837d9363 depends: - - reproc 14.2.4.post0 hcfcfb64_1 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - __osx >=11.0 + - libcxx >=18 + - reproc 14.2.5.post0 h5505292_0 license: MIT license_family: MIT - size: 29917 - timestamp: 1698243016234 + size: 24834 + timestamp: 1731926355120 - kind: conda name: reproc-cpp - version: 14.2.4.post0 - build: h93d8f39_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/reproc-cpp-14.2.4.post0-h93d8f39_1.conda - sha256: dfdf987c7584d61a690a390872f89f968fb25ba44c76a9417f73e09bba1da3bc - md5: a32e95ada0ee860c91e87266700970c3 + version: 14.2.5.post0 + build: h5888daf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.5.post0-h5888daf_0.conda + sha256: 568485837b905b1ea7bdb6e6496d914b83db57feda57f6050d5a694977478691 + md5: 828302fca535f9cfeb598d5f7c204323 depends: - - __osx >=10.9 - - libcxx >=16.0.6 - - reproc 14.2.4.post0 h10d778d_1 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - reproc 14.2.5.post0 hb9d3cd8_0 license: MIT license_family: MIT - size: 24313 - timestamp: 1698242598504 + size: 25665 + timestamp: 1731925852714 - kind: conda name: reproc-cpp - version: 14.2.4.post0 - build: h965bd2d_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/reproc-cpp-14.2.4.post0-h965bd2d_1.conda - sha256: 83736a55ff9cf3a54591aa44c3ee1181cd570c0a452b8d8a2ab113f3e0b0974b - md5: f81d00496e13ee828f84b3ef17e41346 + version: 14.2.5.post0 + build: he0c23c2_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/reproc-cpp-14.2.5.post0-he0c23c2_0.conda + sha256: ccf49fb5149298015ab410aae88e43600954206608089f0dfb7aea8b771bbe8e + md5: d2ce31fa746dddeb37f24f32da0969e9 depends: - - __osx >=10.9 - - libcxx >=16.0.6 - - reproc 14.2.4.post0 h93a5062_1 + - reproc 14.2.5.post0 h2466b09_0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 24527 - timestamp: 1698242706531 + size: 30096 + timestamp: 1731926177599 - kind: conda name: requests version: 2.32.3 @@ -6211,172 +6577,373 @@ packages: - kind: conda name: ruamel.yaml version: 0.18.6 - build: py312h41838bb_0 + build: py312h0bf5046_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py312h0bf5046_1.conda + sha256: 839efe8e59d146206a9bffde190015c9bf2419a914d8f53493540fc7311184b3 + md5: c67fe5e10c151ef58bfc255b30f35f29 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - ruamel.yaml.clib >=0.1.2 + license: MIT + license_family: MIT + size: 268321 + timestamp: 1728765161983 +- kind: conda + name: ruamel.yaml + version: 0.18.6 + build: py312h3d0f464_1 + build_number: 1 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py312h41838bb_0.conda - sha256: 27ab446d39a46f7db365265a48ce74929c672e14c86b1ce8955f59e2d92dff39 - md5: 9db93e711729ec70dacdfa58bf970cfd + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py312h3d0f464_1.conda + sha256: 6a7fba898720a81e2f19ec2870fc43ec2fc568dc71974390a91285d0bb75c476 + md5: 54f228329acc295c90a1961871439f58 depends: + - __osx >=10.13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ruamel.yaml.clib >=0.1.2 license: MIT license_family: MIT - size: 268460 - timestamp: 1707298596313 + size: 266986 + timestamp: 1728765127326 - kind: conda name: ruamel.yaml version: 0.18.6 - build: py312h98912ed_0 + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py312h4389bb4_1.conda + sha256: aed92a2293b89c53b1fd1de40935dca0322e7a0e08a6df3917bb82bdbb1d1f96 + md5: bc4a745d5f87eaf136035aa43455e105 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ruamel.yaml.clib >=0.1.2 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 267122 + timestamp: 1728765254935 +- kind: conda + name: ruamel.yaml + version: 0.18.6 + build: py312h66e93f0_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py312h98912ed_0.conda - sha256: 26856daba883254736b7f3767c08f445b5d010eebbf4fc7aa384ee80e24aa663 - md5: a99a06a875138829ef65f44bbe2c30ca + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py312h66e93f0_1.conda + sha256: adbf638ac2916c8c376ade8e5f77cf6998e049eea4e23cc8a9f4a947c6938df3 + md5: 28ed869ade5601ee374934a31c9d628e depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ruamel.yaml.clib >=0.1.2 license: MIT license_family: MIT - size: 268015 - timestamp: 1707298336196 + size: 267375 + timestamp: 1728765106963 - kind: conda name: ruamel.yaml version: 0.18.6 - build: py312hdd3e373_0 + build: py312hb2c0f52_1 + build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py312hdd3e373_0.conda - sha256: d8576e72fec57ff9c4806fbcd6d336395652a3a3c1667bba6fc742e208a6dbdd - md5: 675a11ab58c2461d33d37275d117dcd2 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py312hb2c0f52_1.conda + sha256: 472a68884b3752012585eae75fe3371bfb2a3c38feef6b80d57fd9849ee93f8a + md5: 2868b65b462c1c311fbb5c81aa522e36 depends: - - libgcc-ng >=12 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - ruamel.yaml.clib >=0.1.2 license: MIT license_family: MIT - size: 268146 - timestamp: 1707298453178 + size: 268102 + timestamp: 1728765224852 +- kind: conda + name: ruamel.yaml + version: 0.18.6 + build: py313h31d5739_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py313h31d5739_1.conda + sha256: 41705e5c2cfa59892c9b65e5d5120610492214100ad2bbc5058bc698ac96149b + md5: 8719b53b9df4bbf069e5daabe6da931f + depends: + - libgcc >=13 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + - ruamel.yaml.clib >=0.1.2 + license: MIT + license_family: MIT + size: 267821 + timestamp: 1728765239495 +- kind: conda + name: ruamel.yaml + version: 0.18.6 + build: py313h536fd9c_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py313h536fd9c_1.conda + sha256: ac7a37421d6df4fdaa7db3cc6a0933145618e9322ddd330e28c66858c3459302 + md5: b6fef5b4027fe6b74e02b24cba799416 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - ruamel.yaml.clib >=0.1.2 + license: MIT + license_family: MIT + size: 269517 + timestamp: 1728765152456 - kind: conda name: ruamel.yaml version: 0.18.6 - build: py312he37b823_0 + build: py313h63a2874_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py312he37b823_0.conda - sha256: 4a27b50445842e97a31e3f412816d4a0d576b4f1ee327b9a892a183ba5c60f6f - md5: cb9f9b4797001b2c52383f4007fa1f4b + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py313h63a2874_1.conda + sha256: 299495375e9f6da0ee6e5c557c7da1bc779bc86e4758628366ffa51e8608e21d + md5: 66289d6eadc39bdf78562d234b8fc595 depends: - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - __osx >=11.0 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 - ruamel.yaml.clib >=0.1.2 license: MIT license_family: MIT - size: 268637 - timestamp: 1707298502612 + size: 270393 + timestamp: 1728765228584 - kind: conda name: ruamel.yaml version: 0.18.6 - build: py312he70551f_0 + build: py313ha7868ed_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py312he70551f_0.conda - sha256: 31a9e347107a46149ae334586430bebb3a769bb5792eba9ccb89c664dbce7970 - md5: 5833ba75a49ac40876242ccb5f77ab23 + url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py313ha7868ed_1.conda + sha256: 9417dfe495f5c364abdccb210eb3a832bdf0d30a1365ca6fe7f25ee22729899e + md5: d3c863b4c69bf25a37acbc0cfbf40fca depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 - ruamel.yaml.clib >=0.1.2 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 267762 - timestamp: 1707298539404 + size: 269317 + timestamp: 1728765259683 +- kind: conda + name: ruamel.yaml + version: 0.18.6 + build: py313hb558fbc_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py313hb558fbc_1.conda + sha256: 573028a5ae884e4cd8a8e6f377ce8e855d7614a3cc563a6b287810505d9b9f94 + md5: ece09462c9d3bb96965499b931d8bd50 + depends: + - __osx >=10.13 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - ruamel.yaml.clib >=0.1.2 + license: MIT + license_family: MIT + size: 270860 + timestamp: 1728765152853 - kind: conda name: ruamel.yaml.clib version: 0.2.8 - build: py312h41838bb_0 + build: py312h0bf5046_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312h0bf5046_1.conda + sha256: ce979a9bcb4b987e30c4aadfbd4151006cd6ac480bdbee1d059e6f0186b48bca + md5: 2ed5f254c9ea57b6d0fd4e12baa4b87f + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 117121 + timestamp: 1728724705098 +- kind: conda + name: ruamel.yaml.clib + version: 0.2.8 + build: py312h3d0f464_1 + build_number: 1 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h41838bb_0.conda - sha256: c0a321d14505b3621d6301e1ed9bc0129b4c8b2812e7520040d2609aaeb07845 - md5: a134bf1778eb7add92ea760e801dc245 + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h3d0f464_1.conda + sha256: b5ddb73db7ca3d4d8780af1761efb97a5f555ae489f287a91367624d4425f498 + md5: f4c0464f98dabcd65064e89991c3c9c2 depends: + - __osx >=10.13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 118650 - timestamp: 1707314908121 + size: 122331 + timestamp: 1728724619287 - kind: conda name: ruamel.yaml.clib version: 0.2.8 - build: py312h98912ed_0 + build: py312h4389bb4_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312h4389bb4_1.conda + sha256: d5583406ea6d17391294da0a6dadf9a22aad732d1f658f2d6d12fc50b968c0fa + md5: 5758e70a80936d7527f70196685c6695 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 108926 + timestamp: 1728725024979 +- kind: conda + name: ruamel.yaml.clib + version: 0.2.8 + build: py312h66e93f0_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h98912ed_0.conda - sha256: 5965302881d8b1049291e3ba3912286cdc72cb82303230cbbf0a048c6f6dd7c1 - md5: 05f31c2a79ba61df8d6d903ce4a4ce7b + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda + sha256: ac987b1c186d79e4e1ce4354a84724fc68db452b2bd61de3a3e1b6fc7c26138d + md5: 532c3e5d0280be4fea52396ec1fa7d5d depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 145481 + timestamp: 1728724626666 +- kind: conda + name: ruamel.yaml.clib + version: 0.2.8 + build: py312hb2c0f52_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hb2c0f52_1.conda + sha256: 819677769f58b5cbcdf1b4f3fbf5a0779c2e40a8922d8fb72e48dd9357d65345 + md5: 189e58f9d58f36f522ceda028f5249f8 + depends: + - libgcc >=13 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 135640 - timestamp: 1707314642857 + size: 138521 + timestamp: 1728724676717 - kind: conda name: ruamel.yaml.clib version: 0.2.8 - build: py312hdd3e373_0 + build: py313h31d5739_1 + build_number: 1 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hdd3e373_0.conda - sha256: d6d59cb7f978b80ed061447a51c992dfd23e443ab754612cb621f3f38b338830 - md5: 7d6fe36395d184fd7cfa4469c722339f + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py313h31d5739_1.conda + sha256: 14306ef32d744426eead8adcd81ce23b9867c68a6bd35b2e1933f81574033d80 + md5: 45d4bb437ea45371894c6c1267ddaf54 depends: - - libgcc-ng >=12 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - libgcc >=13 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 137024 + timestamp: 1728724756324 +- kind: conda + name: ruamel.yaml.clib + version: 0.2.8 + build: py313h536fd9c_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py313h536fd9c_1.conda + sha256: ef739ff0b07df6406efcb49eed327d931d4dfa6072f98def6a0ae700e584a338 + md5: d3400df9c9d0b58368bc0c0fc2591c39 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 127157 - timestamp: 1707314746829 + size: 144267 + timestamp: 1728724587572 - kind: conda name: ruamel.yaml.clib version: 0.2.8 - build: py312he37b823_0 + build: py313h63a2874_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312he37b823_0.conda - sha256: c3138824f484cca2804d22758c75965b578cd35b35243ff02e64da06bda03477 - md5: 2fa02324046cfcb7a67fae30fd06a945 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py313h63a2874_1.conda + sha256: 8ed7448178b423dbd59cdea422b1fb732c16beacff2cc70f727eff1afd307896 + md5: 34ad7f96e9e4bae5f9a88d0fb04ad557 depends: - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - __osx >=11.0 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 111221 - timestamp: 1707315016121 + size: 115973 + timestamp: 1728724684349 - kind: conda name: ruamel.yaml.clib version: 0.2.8 - build: py312he70551f_0 + build: py313ha7868ed_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312he70551f_0.conda - sha256: 7d5705ee3190a5b1c24eee2def964cc1d70b9e856488d971f0fd6df0224ca666 - md5: f8de34a829b65a8e3ac6ddc61ed0d2e0 + url: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py313ha7868ed_1.conda + sha256: d462f89d59f73686f324b603cc6fed4db49f7337143ad4447ac9b6fd68610e67 + md5: 86dc53d90ebfb62cbe18217f7f2ddd72 depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 96333 - timestamp: 1707315306489 + size: 108488 + timestamp: 1728724833760 +- kind: conda + name: ruamel.yaml.clib + version: 0.2.8 + build: py313hb558fbc_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py313hb558fbc_1.conda + sha256: 02ce4f34ca0e8acdcc67591142675657c9f4951f9cf65a5274dcb4f310227e88 + md5: d9f11ed93c18a0d4fce36373a43caadb + depends: + - __osx >=10.13 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 121594 + timestamp: 1728724629571 - kind: conda name: rust version: 1.77.2 @@ -6550,139 +7117,143 @@ packages: timestamp: 1715154009471 - kind: conda name: setuptools - version: 72.2.0 - build: pyhd8ed1ab_0 + version: 75.6.0 + build: pyhff2d567_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-72.2.0-pyhd8ed1ab_0.conda - sha256: 0252f6570de8ff29d489958fc7826677a518061b1aa5e1828a427eec8a7928a4 - md5: 1462aa8b243aad09ef5d0841c745eb89 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + sha256: eeec4645f70ce0ed03348397dced9d218a650a42df98592419af61d2689163ed + md5: 68d7d406366926b09a6a023e3d0f71d7 depends: - - python >=3.8 + - python >=3.9 license: MIT license_family: MIT - size: 1459799 - timestamp: 1724163617860 + size: 774304 + timestamp: 1732216189406 - kind: conda name: sysroot_linux-64 version: '2.17' - build: h4a8ded7_16 - build_number: 16 + build: h4a8ded7_18 + build_number: 18 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_16.conda - sha256: b892b0b9c6dc8efe8b9b5442597d1ab8d65c0dc7e4e5a80f822cbdf0a639bd77 - md5: 223fe8a3ff6d5e78484a9d58eb34d055 + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_18.conda + sha256: 23c7ab371c1b74d01a187e05aa7240e3f5654599e364a9adff7f0b02e26f471f + md5: 0ea96f90a10838f58412aa84fdd9df09 depends: - - _sysroot_linux-64_curr_repodata_hack 3.* - - kernel-headers_linux-64 3.10.0 h4a8ded7_16 + - kernel-headers_linux-64 3.10.0 he073ed8_18 - tzdata license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 license_family: GPL - size: 15513240 - timestamp: 1720621429816 + size: 15500960 + timestamp: 1729794510631 - kind: conda name: sysroot_linux-aarch64 version: '2.17' - build: h5b4a56d_16 - build_number: 16 + build: h5b4a56d_18 + build_number: 18 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.17-h5b4a56d_16.conda - sha256: 0ef01e563e4943d7dff7b3adb4ba62778829f4246dffab3043e6b244996e781e - md5: 9b21a7aa2da30fd368c735c6d6185ec4 + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.17-h5b4a56d_18.conda + sha256: 769a720e0066e3b5c4168d6de455dbde12c2ee11ee3a19fc614659d04f726370 + md5: d42f4bece921c5e59f56a36414106dc1 depends: - - _sysroot_linux-aarch64_curr_repodata_hack 4.* - - kernel-headers_linux-aarch64 4.18.0 h5b4a56d_16 + - kernel-headers_linux-aarch64 4.18.0 h05a177a_18 - tzdata license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 license_family: GPL - size: 15612617 - timestamp: 1720621472671 + size: 15669544 + timestamp: 1729794509305 - kind: conda name: taplo version: 0.9.3 - build: h1de38c7_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h1de38c7_0.conda - sha256: 31012219e1843dd23ac647a4bf866e2f9d1135c458d96d5dac3bc8aed1a4cdbc - md5: 15132abc26d062d31ae3f51f955e5af2 + build: h112f5b8_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h112f5b8_1.conda + sha256: fa8f652347208e63f0d9190dedf8c76e452468bd562d159905fd501b3e584e63 + md5: 54ac19b576977e5c67ab9a786a9a4ea6 depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - openssl >=3.3.1,<4.0a0 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 constrains: - __glibc >=2.17 license: MIT license_family: MIT - size: 3800652 - timestamp: 1722469974675 + size: 3633592 + timestamp: 1727792638698 - kind: conda name: taplo version: 0.9.3 - build: h563f0a8_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-h563f0a8_0.conda - sha256: 0dabdf9b68ecd90f5df0ed834fa169775e1b24bee3c41698c95128ca5f1ca52c - md5: 1586f6e3c42fddd12396e264bcf520fc + build: h53e704d_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h53e704d_1.conda + sha256: c6043d0e7df9bf3a4752cf965c04586e268040a563aaa97e60279e87b1da4b7b + md5: b8a6d8df78c43e3ffd4459313c9bcf84 depends: - - __osx >=11.0 - - openssl >=3.3.1,<4.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 constrains: - - __osx >=11.0 + - __glibc >=2.17 license: MIT license_family: MIT - size: 3489710 - timestamp: 1722470204954 + size: 3835339 + timestamp: 1727786201305 - kind: conda name: taplo version: 0.9.3 - build: h823019e_0 + build: ha073cba_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-h823019e_0.conda - sha256: 54505d45d3801eb178f6d0b0870a47236d5ae7232368a6363cb4b68b67911dfa - md5: c7f563cf04c6c8202d2ba24ab3ededf0 + url: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-ha073cba_1.conda + sha256: 92a705d40a3ab1587058049ac1ad22a9c1e372dfa4f3788730393c776b5af84b + md5: d4d5e0723a7b8f53e04ea65b374ba3a9 depends: - - m2w64-gcc-libs - - m2w64-gcc-libs-core + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 3825427 - timestamp: 1722471277238 + size: 3862809 + timestamp: 1727787217223 - kind: conda name: taplo version: 0.9.3 - build: h8e35287_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h8e35287_0.conda - sha256: 4f1f98ebe9225803e9c146c73e954c0979af8f61e184210f06ec501f3675de21 - md5: 73a1d1e7c372287c874f75250f14881d + build: hdf53557_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-hdf53557_1.conda + sha256: 5dd8f44aa881f45821c4d460ba20a6c6b2ac9564fd4682c48ff5d8048f6afeef + md5: c6ab80dfebf091636c1e0570660e368c depends: - - libgcc-ng >=12 - - openssl >=3.3.1,<4.0a0 + - __osx >=11.0 + - openssl >=3.3.2,<4.0a0 constrains: - - __glibc >=2.17 + - __osx >=11.0 license: MIT license_family: MIT - size: 3596635 - timestamp: 1722522048461 + size: 3522930 + timestamp: 1727786418703 - kind: conda name: taplo version: 0.9.3 - build: hd264b5c_0 + build: hf3953a5_1 + build_number: 1 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hd264b5c_0.conda - sha256: b3a6e9eb8f9f1c7dc3feb54baccb52e29470a5115c85965d87730085f350c0c3 - md5: 23c7b26e204ac57d2eef3e61bb635be5 + url: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hf3953a5_1.conda + sha256: 76cc103c5b785887a519c2bb04b68bea170d3a061331170ea5f15615df0af354 + md5: 9ac41cb4cb31a6187d7336e16d1dab8f depends: - __osx >=10.13 - - openssl >=3.3.1,<4.0a0 + - openssl >=3.3.2,<4.0a0 constrains: - __osx >=10.13 license: MIT license_family: MIT - size: 3699006 - timestamp: 1722470174306 + size: 3738226 + timestamp: 1727786378888 - kind: conda name: tk version: 8.6.13 @@ -6763,91 +7334,89 @@ packages: timestamp: 1699202167581 - kind: conda name: tomli - version: 2.0.1 - build: pyhd8ed1ab_0 + version: 2.1.0 + build: pyhff2d567_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 - sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f - md5: 5844808ffab9ebdb694585b50ba02a96 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + sha256: 354b8a64d4f3311179d85aefc529ca201a36afc1af090d0010c46be7b79f9a47 + md5: 3fa1089b4722df3a900135925f4519d9 depends: - - python >=3.7 + - python >=3.9 license: MIT license_family: MIT - size: 15940 - timestamp: 1644342331069 + size: 18741 + timestamp: 1731426862834 - kind: conda name: tqdm - version: 4.66.5 + version: 4.67.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.5-pyhd8ed1ab_0.conda - sha256: f2384902cef72048b0e9bad5c03d7a843de02ba6bc8618a9ecab6ff81a131312 - md5: c6e94fc2b2ec71ea33fe7c7da259acb4 + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda + sha256: 5673b7104350a6998cb86cccf1d0058217d86950e8d6c927d8530606028edb1d + md5: 4085c9db273a148e149c03627350e22c depends: - colorama - python >=3.7 license: MPL-2.0 or MIT - size: 89519 - timestamp: 1722737568509 + size: 89484 + timestamp: 1732497312317 - kind: conda name: truststore - version: 0.9.2 + version: 0.10.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.9.2-pyhd8ed1ab_0.conda - sha256: 04be82b30b57ac21b509e1dc6829ee9eb1b92c54366a64a256b0eedabfec1ac8 - md5: f14e46d1bf271e748ff556d8b872e28a + url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda + sha256: 0d23d3b370fc0393d05468fbff5152826317d4495446f6b2cc4d446e21050808 + md5: ad1c20cd193e3044bcf17798c33b9d67 depends: - python >=3.10 license: MIT license_family: MIT - size: 21086 - timestamp: 1724771094952 + size: 21799 + timestamp: 1729762456098 - kind: conda name: typos - version: 1.24.3 - build: h3bba108_0 + version: 1.27.3 + build: h0716509_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.24.3-h3bba108_0.conda - sha256: 4ab446ef4c6c39d7f71908ae667b403cc28116f4e36f2e507192a3ae865c79d4 - md5: f7422bcc6711d70e0404610cf585d1c2 + url: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.3-h0716509_0.conda + sha256: c90def76424d9112e6f3ff0022417b6af8a0dc75c7423aff3a0b63e167a0c4de + md5: 4a9624d5f5f3af36d6e12c19d6687ead depends: - __osx >=11.0 constrains: - __osx >=11.0 license: MIT license_family: MIT - size: 2625789 - timestamp: 1725094487342 + size: 2690663 + timestamp: 1731096387328 - kind: conda name: typos - version: 1.24.3 - build: h813c833_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/typos-1.24.3-h813c833_0.conda - sha256: a98d93d93e0a87c461c31d85a070e1a02ac114f3f8edb1fa4a7e6a1a00a937b3 - md5: 878039340151fe7262bd6cb647fa2e21 + version: 1.27.3 + build: h371c88c_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.3-h371c88c_0.conda + sha256: 595bc4a13679a58915bde0151cb610698945ab86ad58d464d4007effd22ad912 + md5: 1865a469ac9720633b67968c366b664d depends: - - m2w64-gcc-libs - - m2w64-gcc-libs-core - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.40.33810 + - __osx >=10.13 + constrains: + - __osx >=10.13 license: MIT license_family: MIT - size: 2257281 - timestamp: 1725095138001 + size: 2722231 + timestamp: 1731096331455 - kind: conda name: typos - version: 1.24.3 + version: 1.27.3 build: h8fae777_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/typos-1.24.3-h8fae777_0.conda - sha256: 264ff336c5fa8861e4748a8e843af92a99a1f11ca50cab7490ccbef8288b08a5 - md5: 46029270901da73402d9fe2aeab7f46c + url: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.3-h8fae777_0.conda + sha256: 68120e46684994ead963131c0991e361dcd5a1b2e7e56b0691f98d3b27b90a23 + md5: aed08ccad36c904173b72f2516a1114a depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 @@ -6855,173 +7424,273 @@ packages: - __glibc >=2.17 license: MIT license_family: MIT - size: 3091289 - timestamp: 1725094121576 + size: 3167460 + timestamp: 1731096056773 - kind: conda name: typos - version: 1.24.3 - build: h9bb4cbb_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/typos-1.24.3-h9bb4cbb_0.conda - sha256: 1658b7692bee81735871549ef7a74160cee440c558b5de779f51d4a43e9425eb - md5: af681f1c33ab416ad128cb7045d12623 + version: 1.27.3 + build: ha073cba_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.3-ha073cba_0.conda + sha256: 6f2925efb394f6959c3ed301513a1df622b36630f7cf389c1630645e5b02599f + md5: a7a5bafcff266a5aa443b544fb22d57c depends: - - __osx >=10.13 - constrains: - - __osx >=10.13 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 2644513 - timestamp: 1725094469699 + size: 2301862 + timestamp: 1731096674707 - kind: conda name: typos - version: 1.24.3 + version: 1.27.3 build: ha3529ed_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.24.3-ha3529ed_0.conda - sha256: efcb5fc8ad24b7386d8ee4d627339fdd8f7baf935a2ffcbbe17c9413164f2761 - md5: c4e525614092f5b37b2d45f23eed93fc + url: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.3-ha3529ed_0.conda + sha256: 7dc17c314d257e63763c227e998225ebaaeb031fa2fd63ec7097205e348b7226 + md5: 9f35e9582ea42fedbc86a407a16d479c depends: - libgcc >=13 constrains: - __glibc >=2.17 license: MIT license_family: MIT - size: 2994925 - timestamp: 1725094103922 + size: 3075699 + timestamp: 1731095963553 - kind: conda name: tzdata - version: 2024a - build: h8827d51_1 - build_number: 1 + version: 2024b + build: hc8b5060_0 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - sha256: 7d21c95f61319dba9209ca17d1935e6128af4235a67ee4e57a00908a1450081e - md5: 8bfdead4e0fff0383ae4c9c50d0531bd + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf + md5: 8ac3367aafb1cc0a068483c580af8015 license: LicenseRef-Public-Domain - size: 124164 - timestamp: 1724736371498 + size: 122354 + timestamp: 1728047496079 - kind: conda name: ucrt version: 10.0.22621.0 - build: h57928b3_0 + build: h57928b3_1 + build_number: 1 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 - sha256: f29cdaf8712008f6b419b8b1a403923b00ab2504bfe0fb2ba8eb60e72d4f14c6 - md5: 72608f6cd3e5898229c3ea16deb1ac43 + url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450 + md5: 6797b005cd0f439c4c5c9ac565783700 constrains: - vs2015_runtime >=14.29.30037 - license: LicenseRef-Proprietary - license_family: PROPRIETARY - size: 1283972 - timestamp: 1666630199266 + license: LicenseRef-MicrosoftWindowsSDK10 + size: 559710 + timestamp: 1728377334097 - kind: conda name: ukkonen version: 1.0.1 - build: py312h0d7def4_4 - build_number: 4 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312h0d7def4_4.conda - sha256: f5f7550991ca647f69b67b9188c7104a3456122611dd6a6e753cff555e45dfd9 - md5: 57cfbb8ce3a1800bd343bf6afba6f878 + build: py312h451a7dd_5 + build_number: 5 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py312h451a7dd_5.conda + sha256: a4fdd0ce8532174bb7caf475fac947d3cdfe85d3b71ebeb2892281c650614c08 + md5: 800fc7dab0bb640c93f530f8fa280c7b depends: - cffi - - python >=3.12.0rc3,<3.13.0a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 17235 - timestamp: 1695549871621 + size: 14718 + timestamp: 1725784301836 - kind: conda name: ukkonen version: 1.0.1 - build: py312h389731b_4 - build_number: 4 + build: py312h6142ec9_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h389731b_4.conda - sha256: 7336cf66feba973207f4903c20b05c3c82e351246df4b6113f72d92b9ee55b81 - md5: 6407429e0969b58b8717dbb4c6c15513 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h6142ec9_5.conda + sha256: 1e4452b4a12d8a69c237f14b876fbf0cdc456914170b49ba805779c749c31eca + md5: 2b485a809d1572cbe7f0ad9ee107e4b0 depends: + - __osx >=11.0 - cffi - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython + - libcxx >=17 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 13605 + timestamp: 1725784243533 +- kind: conda + name: ukkonen + version: 1.0.1 + build: py312h68727a3_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h68727a3_5.conda + sha256: 9fb020083a7f4fee41f6ece0f4840f59739b3e249f157c8a407bb374ffb733b5 + md5: f9664ee31aed96c85b7319ab0a693341 + depends: + - __glibc >=2.17,<3.0.a0 + - cffi + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 13948 - timestamp: 1695549890285 + size: 13904 + timestamp: 1725784191021 - kind: conda name: ukkonen version: 1.0.1 - build: py312h49ebfd2_4 - build_number: 4 + build: py312hc5c4d5f_5 + build_number: 5 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312h49ebfd2_4.conda - sha256: efca19a5e73e4aacfc5e90a5389272b2508e41dc4adab9eb5353c5200ba37041 - md5: 4e6b5a8025cd8fd97b3cfe103ffce6b1 + url: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hc5c4d5f_5.conda + sha256: f6433143294c1ca52410bf8bbca6029a04f2061588d32e6d2b67c7fd886bc4e0 + md5: f270aa502d8817e9cb3eb33541f78418 depends: + - __osx >=10.13 - cffi - - libcxx >=15.0.7 - - python >=3.12.0rc3,<3.13.0a0 + - libcxx >=17 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 13246 - timestamp: 1695549689363 + size: 13031 + timestamp: 1725784199719 - kind: conda name: ukkonen version: 1.0.1 - build: py312h8572e83_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h8572e83_4.conda - sha256: f9a4384d466f4d8b5b497d951329dd4407ebe02f8f93456434e9ab789d6e23ce - md5: 52c9e25ee0a32485a102eeecdb7eef52 + build: py312hd5eb7cc_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312hd5eb7cc_5.conda + sha256: f1944f3d9645a6fa2770966ff010791136e7ce0eaa0c751822b812ac04fee7d6 + md5: d8c5ef1991a5121de95ea8e44c34e13a depends: - cffi - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 17213 + timestamp: 1725784449622 +- kind: conda + name: ukkonen + version: 1.0.1 + build: py313h0c4e38b_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py313h0c4e38b_5.conda + sha256: 6abf14f984a1fc3641908cb7e96ba8f2ce56e6f81069852b384e1755f8f5225e + md5: 6185cafe9e489071688304666923c2ad + depends: + - __osx >=10.13 + - cffi + - libcxx >=17 + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 13126 + timestamp: 1725784265187 +- kind: conda + name: ukkonen + version: 1.0.1 + build: py313h1ec8472_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py313h1ec8472_5.conda + sha256: 4f57f2eccd5584421f1b4d8c96c167c1008cba660d7fab5bdec1de212a0e0ff0 + md5: 97337494471e4265a203327f9a194234 + depends: + - cffi + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 17210 + timestamp: 1725784604368 +- kind: conda + name: ukkonen + version: 1.0.1 + build: py313h33d0bda_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py313h33d0bda_5.conda + sha256: 4edcb6a933bb8c03099ab2136118d5e5c25285e3fd2b0ff0fa781916c53a1fb7 + md5: 5bcffe10a500755da4a71cc0fb62a420 + depends: + - __glibc >=2.17,<3.0.a0 + - cffi + - libgcc >=13 + - libstdcxx >=13 + - python >=3.13.0rc1,<3.14.0a0 + - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 14050 - timestamp: 1695549556745 + size: 13916 + timestamp: 1725784177558 - kind: conda name: ukkonen version: 1.0.1 - build: py312h8f0b210_4 - build_number: 4 + build: py313h44a8f36_5 + build_number: 5 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py312h8f0b210_4.conda - sha256: 1660c56757ef39b3b467f1e2d6d51d236d36d426afa701dcbf71887e93c9f095 - md5: 6761f5b303f3fcb695ae5f297cde7bde + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py313h44a8f36_5.conda + sha256: d2aed135eaeafff397dab98f9c068e1e5c12ad3f80d6e7dff4c1b7fc847abf21 + md5: d8fa57c936faaa0829f8c1ac263dc484 depends: - cffi - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.12.0rc3,<3.13.0a0 - - python >=3.12.0rc3,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.13.0rc1,<3.14.0a0 + - python >=3.13.0rc1,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + size: 14819 + timestamp: 1725784294677 +- kind: conda + name: ukkonen + version: 1.0.1 + build: py313hf9c7212_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py313hf9c7212_5.conda + sha256: 482eac475928c031948790647ae10c2cb1d4a779c2e8f35f5fd1925561b13203 + md5: 8ddba23e26957f0afe5fc9236c73124a + depends: + - __osx >=11.0 + - cffi + - libcxx >=17 + - python >=3.13.0rc1,<3.14.0a0 + - python >=3.13.0rc1,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 license: MIT license_family: MIT - size: 14812 - timestamp: 1695549601083 + size: 13689 + timestamp: 1725784235751 - kind: conda name: urllib3 - version: 2.2.2 - build: pyhd8ed1ab_1 - build_number: 1 + version: 2.2.3 + build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.2-pyhd8ed1ab_1.conda - sha256: 00c47c602c03137e7396f904eccede8cc64cc6bad63ce1fc355125df8882a748 - md5: e804c43f58255e977093a2298e442bb8 + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda + sha256: b6bb34ce41cd93956ad6eeee275ed52390fb3788d6c75e753172ea7ac60b66e5 + md5: 6b55867f385dd762ed99ea687af32a69 depends: - brotli-python >=1.0.9 - h2 >=4,<5 @@ -7030,42 +7699,42 @@ packages: - zstandard >=0.18.0 license: MIT license_family: MIT - size: 95048 - timestamp: 1719391384778 + size: 98076 + timestamp: 1726496531769 - kind: conda name: vc version: '14.3' - build: h8a93ad2_20 - build_number: 20 + build: ha32ba9b_23 + build_number: 23 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h8a93ad2_20.conda - sha256: 23ac5feb15a9adf3ab2b8c4dcd63650f8b7ae860c5ceb073e49cf71d203eddef - md5: 8558f367e1d7700554f7cdb823c46faf + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + sha256: 986ddaf8feec2904eac9535a7ddb7acda1a1dfb9482088fdb8129f1595181663 + md5: 7c10ec3158d1eb4ddff7007c9101adb0 depends: - - vc14_runtime >=14.40.33810 + - vc14_runtime >=14.38.33135 track_features: - vc14 license: BSD-3-Clause license_family: BSD - size: 17391 - timestamp: 1717709040616 + size: 17479 + timestamp: 1731710827215 - kind: conda name: vc14_runtime - version: 14.40.33810 - build: hcc2c482_20 - build_number: 20 + version: 14.42.34433 + build: he29a5d6_23 + build_number: 23 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_20.conda - sha256: bba8daa6f78b26b48fb7e1377eb52160e25495710bf53146c5f405bd50565982 - md5: ad33c7cd933d69b9dee0f48317cdf137 + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + sha256: c483b090c4251a260aba6ff3e83a307bcfb5fb24ad7ced872ab5d02971bd3a49 + md5: 32b37d0cfa80da34548501cdc913a832 depends: - ucrt >=10.0.20348.0 constrains: - - vs2015_runtime 14.40.33810.* *_20 - license: LicenseRef-ProprietaryMicrosoft + - vs2015_runtime 14.42.34433.* *_23 + license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime license_family: Proprietary - size: 751028 - timestamp: 1724712684919 + size: 754247 + timestamp: 1731710681163 - kind: conda name: vhs version: 0.7.2 @@ -7130,13 +7799,13 @@ packages: timestamp: 1718057909213 - kind: conda name: virtualenv - version: 20.26.3 + version: 20.27.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.26.3-pyhd8ed1ab_0.conda - sha256: f78961b194e33eed5fdccb668774651ec9423a043069fa7a4e3e2f853b08aa0c - md5: 284008712816c64c85bf2b7fa9f3b264 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + sha256: 189b935224732267df10dc116bce0835bd76fcdb20c30f560591c92028d513b0 + md5: dae21509d62aa7bf676279ced3edcb3f depends: - distlib <1,>=0.3.7 - filelock <4,>=3.12.2 @@ -7144,39 +7813,39 @@ packages: - python >=3.8 license: MIT license_family: MIT - size: 4363507 - timestamp: 1719150878323 + size: 2965442 + timestamp: 1730204927840 - kind: conda name: vs2015_runtime - version: 14.40.33810 - build: h3bf8584_20 - build_number: 20 + version: 14.42.34433 + build: hdffcdeb_23 + build_number: 23 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_20.conda - sha256: 0c2803f7a788c51f28235a7228dc2ab3f107b4b16ab0845a3e595c8c51e50a7a - md5: c21f1b4a3a30bbc3ef35a50957578e0e + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + sha256: 568ce8151eaae256f1cef752fc78651ad7a86ff05153cc7a4740b52ae6536118 + md5: 5c176975ca2b8366abad3c97b3cd1e83 depends: - - vc14_runtime >=14.40.33810 + - vc14_runtime >=14.42.34433 license: BSD-3-Clause license_family: BSD - size: 17395 - timestamp: 1717709043353 + size: 17572 + timestamp: 1731710685291 - kind: conda name: win_inet_pton version: 1.1.0 - build: pyhd8ed1ab_6 - build_number: 6 + build: pyh7428d3b_7 + build_number: 7 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyhd8ed1ab_6.tar.bz2 - sha256: a11ae693a0645bf6c7b8a47bac030be9c0967d0b1924537b9ff7458e832c0511 - md5: 30878ecc4bd36e8deeea1e3c151b2e0b + url: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda + sha256: c5297692ab34aade5e21107abaf623d6f93847662e25f655320038d2bfa1a812 + md5: c998c13b2f998af57c3b88c7a47979e0 depends: - __win - python >=3.6 - license: PUBLIC-DOMAIN - size: 8191 - timestamp: 1667051294134 + license: LicenseRef-Public-Domain + size: 9602 + timestamp: 1727796413384 - kind: conda name: xz version: 5.2.6 @@ -7388,167 +8057,173 @@ packages: - kind: conda name: zlib version: 1.3.1 - build: h4ab18f5_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-h4ab18f5_1.conda - sha256: cee16ab07a11303de721915f0a269e8c7a54a5c834aa52f74b1cc3a59000ade8 - md5: 9653f1bf3766164d0e65fa723cabbc54 + build: h8359307_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + sha256: 58f8860756680a4831c1bf4f294e2354d187f2e999791d53b1941834c4b37430 + md5: e3170d898ca6cb48f1bb567afb92f775 depends: - - libgcc-ng >=12 - - libzlib 1.3.1 h4ab18f5_1 + - __osx >=11.0 + - libzlib 1.3.1 h8359307_2 license: Zlib license_family: Other - size: 93004 - timestamp: 1716874213487 + size: 77606 + timestamp: 1727963209370 - kind: conda name: zlib version: 1.3.1 - build: h68df207_1 - build_number: 1 + build: h86ecc28_2 + build_number: 2 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h68df207_1.conda - sha256: 7d4f12a602447c00f65f99fcf332f350cc49161a4f215466e9eb1bbe51852978 - md5: 6031f9e32654fbdb9fdba406ab980517 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h86ecc28_2.conda + sha256: b4f649aa3ecdae384d5dad7074e198bff120edd3dfb816588e31738fc6d627b1 + md5: bc230abb5d21b63ff4799b0e75204783 depends: - - libgcc-ng >=12 - - libzlib 1.3.1 h68df207_1 + - libgcc >=13 + - libzlib 1.3.1 h86ecc28_2 license: Zlib license_family: Other - size: 95770 - timestamp: 1716874148566 + size: 95582 + timestamp: 1727963203597 - kind: conda name: zlib version: 1.3.1 - build: h87427d6_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-h87427d6_1.conda - sha256: 41bd5fef28b2755d637e3a8ea5c84010628392fbcf80c7e3d7370aaced7ee4fe - md5: 3ac9ef8975965f9698dbedd2a4cc5894 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + sha256: 5d7c0e5f0005f74112a34a7425179f4eb6e73c92f5d109e6af4ddeca407c92ab + md5: c9f075ab2f33b3bbee9e62d4ad0a6cd8 depends: - - __osx >=10.13 - - libzlib 1.3.1 h87427d6_1 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib 1.3.1 hb9d3cd8_2 license: Zlib license_family: Other - size: 88782 - timestamp: 1716874245467 + size: 92286 + timestamp: 1727963153079 - kind: conda name: zlib version: 1.3.1 - build: hfb2fe0b_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-hfb2fe0b_1.conda - sha256: 87360c2dc662916aac37cf01e53324b4f4f78db6f399220818076752b093ede5 - md5: f27e021db7862b6ddbc1d3578f10d883 + build: hd23fc13_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda + sha256: 219edbdfe7f073564375819732cbf7cc0d7c7c18d3f546a09c2dfaf26e4d69f3 + md5: c989e0295dcbdc08106fe5d9e935f0b9 depends: - - __osx >=11.0 - - libzlib 1.3.1 hfb2fe0b_1 + - __osx >=10.13 + - libzlib 1.3.1 hd23fc13_2 license: Zlib license_family: Other - size: 78260 - timestamp: 1716874280334 + size: 88544 + timestamp: 1727963189976 - kind: conda name: zstandard version: 0.23.0 - build: py312h331e495_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h331e495_0.conda - sha256: c1d379d1062f23e3fbd3dd8548fc6cf61b23d6f96b11e78c4e01f4761580cb02 - md5: fb62d40e45f51f7d6a7df47c9a12caf4 + build: py312h15fbf35_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + sha256: d00ca25c1e28fd31199b26a94f8c96574475704a825d244d7a6351ad3745eeeb + md5: a4cde595509a7ad9c13b1a3809bcfe51 depends: - - __osx >=10.13 + - __osx >=11.0 - cffi >=1.11 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 411066 - timestamp: 1721044218542 + size: 330788 + timestamp: 1725305806565 - kind: conda name: zstandard version: 0.23.0 - build: py312h3483029_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h3483029_0.conda - sha256: 7e1e105ea7eab2af591faebf743ff2493f53c313079e316419577925e4492b03 - md5: eab52e88c858d87cf5a069f79d10bb50 + build: py312h7122b0e_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h7122b0e_1.conda + sha256: 2685dde42478fae0780fba5d1f8a06896a676ae105f215d32c9f9e76f3c6d8fd + md5: bd132ba98f3fc0a6067f355f8efe4cb6 depends: - - __glibc >=2.17,<3.0.a0 + - __osx >=10.13 - cffi >=1.11 - - libgcc-ng >=12 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 416708 - timestamp: 1721044154409 + size: 410873 + timestamp: 1725305688706 - kind: conda name: zstandard version: 0.23.0 - build: py312h721a963_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h721a963_0.conda - sha256: 6fc0d2f7a0a49a7c1453bb9eacd5456214b6cf000760067d72f0cce464975fa1 - md5: caf7f5b85615a132c0fa586b82bd59e6 + build: py312h7606c53_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda + sha256: 3e0c718aa18dcac7f080844dbe0aea41a9cea75083019ce02e8a784926239826 + md5: a92cc3435b2fd6f51463f5a4db5c50b1 depends: - - __osx >=11.0 - cffi >=1.11 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 332489 - timestamp: 1721044244889 + size: 320624 + timestamp: 1725305934189 - kind: conda name: zstandard version: 0.23.0 - build: py312h7606c53_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_0.conda - sha256: 907edf473419a5aff6151900d09bb3f2b2c2ede8964f20ae87cb6fae04d0cbb7 - md5: c405924e081cb476495ffe72c88e92c2 + build: py312hb698573_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312hb698573_1.conda + sha256: 2681c2a249752bdc7978e59ee2f34fcdfcbfda80029b84b8e5fec8dbc9e3af25 + md5: ffcb8e97e62af42075e0e5f46bb9856e depends: - cffi >=1.11 + - libgcc >=13 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 320649 - timestamp: 1721044547910 + size: 392496 + timestamp: 1725305808244 - kind: conda name: zstandard version: 0.23.0 - build: py312h9fc3309_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312h9fc3309_0.conda - sha256: 65c201c2f3e120c57e2c2eae8fb30254fbe249adb2df0a3073ce4b30fd3004ca - md5: 1903935398241d9772c260a4d0ee5bc3 + build: py312hef9b889_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + sha256: b97015e146437283f2213ff0e95abdc8e2480150634d81fbae6b96ee09f5e50b + md5: 8b7069e9792ee4e5b4919a7a306d2e67 depends: + - __glibc >=2.17,<3.0.a0 - cffi >=1.11 - - libgcc-ng >=12 + - libgcc >=13 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 392329 - timestamp: 1721044339954 + size: 419552 + timestamp: 1725305670210 - kind: conda name: zstd version: 1.5.6 diff --git a/src/header.ps1 b/src/header.ps1 index 196b353..e628cc6 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -7,7 +7,6 @@ function New-TemporaryDirectory { $TEMPDIR = New-TemporaryDirectory $PREFIX = "" -$FORCE = $false $VERBOSE = $false $QUIET = $false $UNPACK_SHELL = "" @@ -17,7 +16,6 @@ usage: $($MyInvocation.MyCommand.Name) [options] Unpacks an environment packed using pixi-pack --f, --force No error if environment already exists -h, --help Print this help message and exit -o, --output-directory Where to unpack the environment -s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] @@ -26,15 +24,13 @@ Unpacks an environment packed using pixi-pack "@ # Parse command-line arguments -$args = $MyInvocation.UnboundArguments +$InputArgs = $MyInvocation.UnboundArguments for ($i = 0; $i -lt $args.Count; $i++) { - switch ($args[$i]) { - "-f" { $FORCE = $true } - "--force" { $FORCE = $true } - "-o" { $PREFIX = $args[++$i] } - "--output-directory" { $PREFIX = $args[++$i] } - "-s" { $UNPACK_SHELL = $args[++$i] } - "--shell" { $UNPACK_SHELL = $args[++$i] } + switch ($InputArgs[$i]) { + "-o" { $PREFIX = $InputArgs[++$i] } + "--output-directory" { $PREFIX = $InputArgs[++$i] } + "-s" { $UNPACK_SHELL = $InputArgs[++$i] } + "--shell" { $UNPACK_SHELL = $InputArgs[++$i] } "-v" { $VERBOSE = $true } "--verbose" { $VERBOSE = $true } "-q" { $QUIET = $true } @@ -50,7 +46,7 @@ if ($VERBOSE -and $QUIET) { exit 1 } -# Step 1: Extract the archive and pixi-pack executable, and decode them +# Extract the archive and pixi-pack executable, and decode them $scriptContent = Get-Content -Raw -Path $MyInvocation.MyCommand.Path $lines = $scriptContent -split "`r?`n" @@ -60,7 +56,7 @@ $archiveLine = $null # Find the lines where __END_HEADER__ and __END_ARCHIVE__ occur for ($i = 0; $i -lt $lines.Count; $i++) { if ($lines[$i] -like "*__END_HEADER__*") { - $headerLine = $i + 1 + $headerLine = $i + 2 } if ($lines[$i] -like "*__END_ARCHIVE__*") { $archiveLine = $i + 1 @@ -100,7 +96,7 @@ try { exit 1 } -# Step 2: Build the command with flags +# Build the command with flags $arguments = @("unpack") # Use $PREFIX for output directory if it is provided @@ -129,4 +125,4 @@ $arguments += $archivePath exit 0 -__END_HEADER__ \ No newline at end of file +__END_HEADER__ diff --git a/src/header.sh b/src/header.sh index c1bb718..0874139 100644 --- a/src/header.sh +++ b/src/header.sh @@ -20,41 +20,56 @@ Unpacks an environment packed using pixi-pack -v, --verbose Increase logging verbosity -q, --quiet Decrease logging verbosity " -# Parse command-line options -while getopts ":hfvo:s:q" opt; do - case ${opt} in - h ) +# Parse command-line arguments +while [[ $# -gt 0 ]]; do + case "$1" in + -h) echo "$USAGE" exit 0 ;; - f ) + -f) FORCE=1 + shift ;; - v ) + -v) VERBOSE=1 + shift ;; - o ) - PREFIX="$OPTARG" + -o) + if [[ -n "$2" && "$2" != -* ]]; then + PREFIX="$2" + shift 2 + else + echo "Option -o requires an argument" >&2 + echo "$USAGE" >&2 + exit 1 + fi ;; - s ) - UNPACK_SHELL="$OPTARG" + -s) + if [[ -n "$2" && "$2" != -* ]]; then + UNPACK_SHELL="$2" + shift 2 + else + echo "Option -s requires an argument" >&2 + echo "$USAGE" >&2 + exit 1 + fi ;; - q ) + -q) QUIET=1 + shift ;; - \? ) - echo "Invalid option: -$OPTARG" >&2 + -*) + echo "Invalid option: $1" >&2 echo "$USAGE" >&2 exit 1 ;; - : ) - echo "Option -$OPTARG requires an argument" >&2 - echo "$USAGE" >&2 - exit 1 + *) + # Stop parsing options when encountering a non-option argument + break ;; esac done -shift $((OPTIND -1)) # Validate shell option if provided if [ -n "$UNPACK_SHELL" ]; then @@ -79,11 +94,12 @@ if [ "$FORCE" = "1" ] && [ -n "$PREFIX" ] && [ -e "$PREFIX" ]; then rm -rf "$PREFIX" fi -archive_begin=$(($(grep -anm 1 "^@@END_HEADER@@" "$0" | sed 's/:.*//') + 1)) +archive_begin=$(($(grep -anm 1 "^@@END_HEADER@@" "$0" | sed 's/:.*//') + 2)) archive_end=$(($(grep -anm 1 "^@@END_ARCHIVE@@" "$0" | sed 's/:.*//') - 1)) echo "Unpacking payload ..." -tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1)) | base64 -d > "$TEMPDIR/archive.tar" +echo $(tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1))) > "$TEMPDIR/archive_temp" +base64 -d "$TEMPDIR/archive_temp" > "$TEMPDIR/archive.tar" pixi_pack_start=$(($archive_end + 2)) @@ -114,4 +130,4 @@ CMD="$CMD \"$TEMPDIR/archive.tar\"" eval "$CMD" exit 0 -@@END_HEADER@@ \ No newline at end of file +@@END_HEADER@@ diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 29a9c57..207c53c 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -311,7 +311,11 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& .arg(options.output_dir.path()) .output() .expect("Failed to execute packed file for extraction"); - assert!(output.status.success(), "Packed file execution failed"); + assert!( + output.status.success(), + "Packed file execution failed: {:?}", + output + ); } #[cfg(target_os = "windows")] { From f31cce31803759bde8b872a63127d2baeff62b34 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 17:13:11 -0500 Subject: [PATCH 34/83] Remove -f from header files. Added status code to pack.rs error and other minor changes. --- pixi.lock | 1945 ++++++++++++++++++------------------- src/header.ps1 | 3 +- src/header.sh | 36 +- src/pack.rs | 56 +- tests/integration_test.rs | 2 - 5 files changed, 994 insertions(+), 1048 deletions(-) diff --git a/pixi.lock b/pixi.lock index 3cea343..e6cadb2 100644 --- a/pixi.lock +++ b/pixi.lock @@ -14,7 +14,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.3-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.8.0-h2b85faf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda @@ -23,7 +23,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/compilers-1.8.0-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-24.9.2-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-24.11.0-py312h7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda @@ -36,18 +36,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/frozendict-2.4.6-py312h66e93f0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.3.0-h9576a4e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.3.0-hfea6d02_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran-13.3.0-h9576a4e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-13.3.0-h10434e7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-13.3.0-hb919d3a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-13.3.0-hb919d3a_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.3.0-h9576a4e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.3.0-hdbfa832_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_1.conda @@ -59,7 +59,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.10.1-hbbe4b11_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.3.0-h84ea5a7_101.conda @@ -67,31 +67,31 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.10-hf72d635_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.10-py312hf3f0a4e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.11-hf72d635_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.11-py312hf3f0a4e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.3.0-heb74ff8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsolv-0.7.30-h3509ff9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.3.0-h84ea5a7_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.5-hb346dea_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-hd590300_1001.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.1.2-py312h7900ff3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/micromamba-2.0.2-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.2.0-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/micromamba-2.0.4-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.9.0-hf235a45_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pkg-config-0.29.2-h4bc722e_1009.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda @@ -113,14 +113,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.81.0-h1a8d7c4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.81.0-h2c6d0dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h53e704d_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.0-h8fae777_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.3-h8fae777_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312h68727a3_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda @@ -140,7 +140,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.1.0-py312h6f74592_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.2-ha64f414_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.3-h86ecc28_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-compiler-1.8.0-h6561dab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.8.30-hcefe29a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda @@ -149,7 +149,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/compilers-1.8.0-h8af1aa0_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.9.2-py312h996f985_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.11.0-py312h996f985_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda @@ -162,18 +162,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/frozendict-2.4.6-py312hb2c0f52_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc-13.3.0-h8a56e6e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_impl_linux-aarch64-13.3.0-hcdea9b6_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-13.3.0-h1cd514b_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-13.3.0-h1cd514b_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran-13.3.0-h8a56e6e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_impl_linux-aarch64-13.3.0-h174a3c4_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-13.3.0-h2809cf8_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-13.3.0-h2809cf8_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx-13.3.0-h8a56e6e_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_impl_linux-aarch64-13.3.0-h1211b58_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-13.3.0-h2864abd_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-13.3.0-h2864abd_7.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jsonpointer-3.0.0-py312h996f985_1.conda @@ -185,7 +185,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.10.1-h3ec0cbf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h31becfc_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.3-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-aarch64-13.3.0-h0c07274_101.conda @@ -194,31 +194,31 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.82.2-hc486b8e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.10-h489cd8b_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.10-py312h33c3f33_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.11-h489cd8b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.11-py312h33c3f33_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.64.0-hc8609a4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsanitizer-13.3.0-ha58e236_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsolv-0.7.30-h62756fc_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.0-h492db2e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.1-ha41c0db_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-aarch64-13.3.0-h0c07274_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.13.4-hf4efe5d_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.13.5-hf4efe5d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lz4-c-1.9.4-hd600fc2_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lzo-2.10-h31becfc_1001.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.1.2-py312h996f985_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-2.0.2-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.2.0-py312h996f985_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-2.0.4-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.9.0-h8374285_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.3.2-h86ecc28_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.44-h070dd5b_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pkg-config-0.29.2-hce167ba_1009.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda @@ -241,14 +241,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py312hb2c0f52_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/rust-1.81.0-h21fc29f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.81.0-hbe8e118_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.17-h5b4a56d_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h112f5b8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.0-ha3529ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.3-ha3529ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py312h451a7dd_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda @@ -262,16 +262,16 @@ environments: osx-64: - conda: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312h5861a67_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.2-h32b1619_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.3-hf13058a_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.8.30-h8857fd0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/conda-24.9.2-py312hb401068_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/conda-24.11.0-py311h6eed73b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda @@ -279,42 +279,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-11.0.2-h3c5361c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.6-py312h3d0f464_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.6-py311h1314207_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py311h6eed73b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.7.4-h20e244c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.10.1-h58e7537_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.3-hf95d169_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.4-hf95d169_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.3-hac325c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.10-ha16e19f_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.10-py312hf4eca44_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.11-hd41e4cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.11-py311h308a38f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsolv-0.7.30-h69d5d9b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.47.0-h2f8c449_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-h3dc7d44_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.49.2-hd79239c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.4-h12808cf_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.5-h495214b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h10d778d_1001.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.1.2-py312hb401068_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/micromamba-2.0.2-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.2.0-py311h6eed73b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/micromamba-2.0.4-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-hf036a51_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.9.0-hd71786a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.2-hd23fc13_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.11.0-hf4117ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hd471939_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pkg-config-0.29.2-hf7e621a_1009.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda @@ -322,50 +322,50 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prettier-3.3.3-h2ff3409_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.6-py312h104f124_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.6-py311h2725bcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.7-h8f8b54e_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312hb553811_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.10-ha513fb2_3_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-5_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py311h3336109_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/reproc-14.2.5.post0-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/reproc-cpp-14.2.5.post0-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py312h3d0f464_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h3d0f464_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py311h1314207_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py311h1314207_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/rust-1.81.0-h6c54e5d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.81.0-h38e4360_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hf3953a5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.0-h371c88c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.3-h371c88c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hc5c4d5f_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py311hf2f7c97_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-cpp-0.8.0-he965462_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h7122b0e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py311hdf6fcd6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boltons-24.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.3-h5505292_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.9.2-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.11.0-py312h81bd7bf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda @@ -378,39 +378,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.7.4-h83d404f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.10.1-h13a7ad3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.82.2-h07bd6cf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.22.5-h8414b35_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.10-h66a2e1b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.10-py312he1e5f57_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.11-h4621f14_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.11-py312hd07f1d4_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsolv-0.7.30-h6c9b7f8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h9cc3647_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.5-hbbdcc80_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.9.4-hb7217d7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h93a5062_1001.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.1.2-py312h81bd7bf_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-2.0.2-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.2.0-py312h81bd7bf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-2.0.4-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.9.0-h08fde81_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pkg-config-0.29.2-hde07d2e_1009.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda @@ -433,13 +433,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py312h0bf5046_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.81.0-h4ff7c5d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.81.0-hf6ec828_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-hdf53557_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.0-h0716509_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.3-h0716509_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312h6142ec9_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda @@ -461,7 +461,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/conda-24.9.2-py312h2e8e312_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/conda-24.11.0-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-libmamba-solver-24.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda @@ -473,33 +473,33 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libarchive-3.7.4-haf234dc_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.10.1-h1ee3ff0_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.82.2-h7025463_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.10-h81425b0_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.10-py312h643a1bd_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.11-h81425b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.11-py312h643a1bd_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsolv-0.7.30-hbb528cf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.5-h442d1da_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hcfcfb64_1001.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.1.2-py312h275cf98_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/micromamba-2.0.2-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.2.0-py312h275cf98_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/micromamba-2.0.4-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.9.0-h57928b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pkg-config-0.29.2-h88c491f_1009.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda @@ -514,28 +514,28 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py312h4389bb4_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.4.post0-hcfcfb64_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-cpp-14.2.4.post0-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.5.post0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/reproc-cpp-14.2.5.post0-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py312h4389bb4_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/rust-1.81.0-hf8d6059_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.81.0-h17fc481_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-ha073cba_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/truststore-0.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.0-ha073cba_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.3-ha073cba_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312hd5eb7cc_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 @@ -570,9 +570,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda @@ -586,8 +586,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.9.0-hf235a45_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda @@ -599,11 +599,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py313h536fd9c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py313h536fd9c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h53e704d_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.0-h8fae777_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.3-h8fae777_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py313h33d0bda_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda @@ -619,9 +619,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.3-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda @@ -635,8 +635,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.9.0-h8374285_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.3.2-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda @@ -648,11 +648,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py313h31d5739_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py313h31d5739_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h112f5b8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.0-ha3529ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.3-ha3529ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py313h44a8f36_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda @@ -667,9 +667,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.3-hf95d169_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.3-hac325c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.4-hf95d169_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-hfdf4475_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.47.0-h2f8c449_1.conda @@ -677,8 +677,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-hf036a51_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.9.0-hd71786a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.2-hd23fc13_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.11.0-hf4117ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hd471939_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda @@ -690,11 +690,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py313hb558fbc_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py313hb558fbc_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hf3953a5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.0-h371c88c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.3-h371c88c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py313h0c4e38b_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda @@ -709,9 +709,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h99b78c6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda @@ -719,8 +719,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.9.0-h08fde81_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda @@ -732,11 +732,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py313h63a2874_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py313h63a2874_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-hdf53557_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.0-h0716509_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.3-h0716509_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py313hf9c7212_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda @@ -750,15 +750,15 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.9.0-h57928b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.0.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-5.0.0-pyhd8ed1ab_1.conda @@ -769,18 +769,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.2-py313ha7868ed_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py313ha7868ed_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py313ha7868ed_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-ha073cba_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.0-ha073cba_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.3-ha073cba_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py313h1ec8472_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 packages: @@ -951,6 +951,26 @@ packages: license_family: BSD size: 297896 timestamp: 1711936529147 +- kind: conda + name: brotli-python + version: 1.1.0 + build: py311hd89902b_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda + sha256: 004cefbd18f581636a8dcb1964fb73478f15d496769226ec896c1d4a0161b7d8 + md5: d75f06ee06001794aa83a05e885f1520 + depends: + - __osx >=10.13 + - libcxx >=17 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - libbrotlicommon 1.1.0 h00291cd_2 + license: MIT + license_family: MIT + size: 363793 + timestamp: 1725267947069 - kind: conda name: brotli-python version: 1.1.0 @@ -993,26 +1013,6 @@ packages: license_family: MIT size: 349867 timestamp: 1725267732089 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py312h5861a67_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312h5861a67_2.conda - sha256: 265764ff4ad9e5cfefe7ea85c53d95157bf16ac2c0e5f190c528e4c9c0c1e2d0 - md5: b95025822e43128835826ec0cc45a551 - depends: - - __osx >=10.13 - - libcxx >=17 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - constrains: - - libbrotlicommon 1.1.0 h00291cd_2 - license: MIT - license_family: MIT - size: 363178 - timestamp: 1725267893889 - kind: conda name: brotli-python version: 1.1.0 @@ -1135,62 +1135,65 @@ packages: timestamp: 1720974491916 - kind: conda name: c-ares - version: 1.34.2 - build: h32b1619_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.2-h32b1619_0.conda - sha256: 972d0403c92c9cd1d1c60e34d80991258125ee880cf5a9289ae83a443d8970cd - md5: 724edfea6dde646c1faf2ce1423e0faa + version: 1.34.3 + build: h5505292_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.3-h5505292_1.conda + sha256: 6dfa83cbd9acc8671d439fe9c745a5716faf6cbadf2f1e18c841bcf86cbba5f2 + md5: fb72102e8a8f9bcd38e40af09ff41c42 depends: - __osx >=11.0 license: MIT license_family: MIT - size: 182342 - timestamp: 1729006698430 + size: 179318 + timestamp: 1732447193278 - kind: conda name: c-ares - version: 1.34.2 - build: h7ab814d_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.2-h7ab814d_0.conda - sha256: 24d53d27397f9c2f0c168992690b5ec1bd62593fb4fc1f1e906ab91b10fd06c3 - md5: 8a8cfc11064b521bc54bd2d8591cb137 + version: 1.34.3 + build: h86ecc28_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.3-h86ecc28_1.conda + sha256: 1181db17781d9d66c1478e7fbc3e82dd273e9cb43ed910e1d0f8b3c96b16e290 + md5: 0cd9ebf65479cdceb6a4888b764dafcd depends: - - __osx >=11.0 + - libgcc >=13 license: MIT license_family: MIT - size: 177487 - timestamp: 1729006763496 + size: 214791 + timestamp: 1732447020593 - kind: conda name: c-ares - version: 1.34.2 - build: ha64f414_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.2-ha64f414_0.conda - sha256: 06f67e6b2c18f1ff79391ffb032c752fcbbf754f6f6e7a786edde6cca1c92791 - md5: 588af5337614cece17e61b6ac907f812 + version: 1.34.3 + build: hb9d3cd8_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.3-hb9d3cd8_1.conda + sha256: 732571ba6286dbccbf4c6450078a581b7a5620204faf876ff0ef282d77a6bfa8 + md5: ee228789a85f961d14567252a03e725f depends: - - __glibc >=2.28,<3.0.a0 + - __glibc >=2.17,<3.0.a0 - libgcc >=13 license: MIT license_family: MIT - size: 214916 - timestamp: 1729006632022 + size: 204857 + timestamp: 1732447031823 - kind: conda name: c-ares - version: 1.34.2 - build: heb4867d_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.2-heb4867d_0.conda - sha256: c2a515e623ac3e17a56027c06098fbd5ab47afefefbd386b4c21289f2ec55139 - md5: 2b780c0338fc0ffa678ac82c54af51fd + version: 1.34.3 + build: hf13058a_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.3-hf13058a_1.conda + sha256: 37c031f91bb4c7ebec248e283c453b24840764fb53b640768780dcd904093f17 + md5: 7d8083876d71fe1316fc18369ee0dc58 depends: - - __glibc >=2.28,<3.0.a0 - - libgcc >=13 + - __osx >=10.13 license: MIT license_family: MIT - size: 205797 - timestamp: 1729006575652 + size: 184403 + timestamp: 1732447223773 - kind: conda name: c-compiler version: 1.8.0 @@ -1294,6 +1297,24 @@ packages: license: ISC size: 163752 timestamp: 1725278204397 +- kind: conda + name: cffi + version: 1.17.1 + build: py311h137bacd_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda + sha256: 012ee7b1ed4f9b0490d6e90c72decf148d7575173c7eaf851cd87fd434d2cacc + md5: a4b0f531064fa3dd5e3afbb782ea2cd5 + depends: + - __osx >=10.13 + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + size: 288762 + timestamp: 1725560945833 - kind: conda name: cffi version: 1.17.1 @@ -1369,24 +1390,6 @@ packages: license_family: MIT size: 312892 timestamp: 1725561779888 -- kind: conda - name: cffi - version: 1.17.1 - build: py312hf857d28_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda - sha256: 94fe49aed25d84997e2630d6e776a75ee2a85bd64f258702c57faa4fe2986902 - md5: 5bbc69b8194fedc2792e451026cac34f - depends: - - __osx >=10.13 - - libffi >=3.4,<4.0a0 - - pycparser - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - size: 282425 - timestamp: 1725560725144 - kind: conda name: cffi version: 1.17.1 @@ -1561,12 +1564,12 @@ packages: timestamp: 1728985303287 - kind: conda name: conda - version: 24.9.2 - build: py312h2e8e312_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/conda-24.9.2-py312h2e8e312_0.conda - sha256: bc30bbb602d12f60b371ad930501e6b922d6a99efa872dcb13859ab18c2d2180 - md5: e96a579e12e284c0e77fcb4037e6f1ea + version: 24.11.0 + build: py311h6eed73b_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/conda-24.11.0-py311h6eed73b_0.conda + sha256: 5f3c5f62d912a03610f7af8577b2a55981e72ee4e88645fdb6c2f72a97d9089a + md5: eccf77b0c1aa0c971efa9b94e640e82a depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1581,8 +1584,8 @@ packages: - platformdirs >=3.10.0 - pluggy >=1.0.0 - pycosat >=0.6.3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 - requests >=2.28.0,<3 - ruamel.yaml >=0.11.14,<0.19 - setuptools >=60.0.0 @@ -1594,17 +1597,16 @@ packages: - conda-env >=2.6 - conda-content-trust >=0.1.1 license: BSD-3-Clause - license_family: BSD - size: 1161848 - timestamp: 1729155771939 + size: 1203045 + timestamp: 1732552792537 - kind: conda name: conda - version: 24.9.2 - build: py312h7900ff3_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-24.9.2-py312h7900ff3_0.conda - sha256: 705f9cf0b3685774e46fd1be20c69202fd79d823431c64e2af4361ca6473c57b - md5: 132748eafd19d4c984595d301806f0b1 + version: 24.11.0 + build: py312h2e8e312_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/conda-24.11.0-py312h2e8e312_0.conda + sha256: bbb4792ab7a67d33ac3001754de1c9a9e9b1a8b4e212764b3e547af7c7cbc26c + md5: b9181ccbab5b594123c480a8454f467e depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1628,21 +1630,20 @@ packages: - truststore >=0.8.0 - zstandard >=0.19.0 constrains: - - conda-build >=24.3 - conda-env >=2.6 - conda-content-trust >=0.1.1 + - conda-build >=24.3 license: BSD-3-Clause - license_family: BSD - size: 1158773 - timestamp: 1729155303908 + size: 1175669 + timestamp: 1732552908447 - kind: conda name: conda - version: 24.9.2 - build: py312h81bd7bf_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.9.2-py312h81bd7bf_0.conda - sha256: 9fd0cf944aa1c962b3d73a3353bed53d34621305e9a2d138d70d8e1ebbeaaebd - md5: 33246b020f664b7404cadc0e266f5b16 + version: 24.11.0 + build: py312h7900ff3_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-24.11.0-py312h7900ff3_0.conda + sha256: 7e0403f51c2f18dd03f7369301fbc99ca918ad78c5b166a5fe80159bd2318c68 + md5: 94274d4c4733bb708fa2b4e257620d40 depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1658,7 +1659,6 @@ packages: - pluggy >=1.0.0 - pycosat >=0.6.3 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - requests >=2.28.0,<3 - ruamel.yaml >=0.11.14,<0.19 @@ -1667,21 +1667,20 @@ packages: - truststore >=0.8.0 - zstandard >=0.19.0 constrains: - - conda-content-trust >=0.1.1 - conda-build >=24.3 + - conda-content-trust >=0.1.1 - conda-env >=2.6 license: BSD-3-Clause - license_family: BSD - size: 1162019 - timestamp: 1729155467183 + size: 1171248 + timestamp: 1732552698240 - kind: conda name: conda - version: 24.9.2 - build: py312h996f985_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.9.2-py312h996f985_0.conda - sha256: 7745d2cc63d62a46475a4c61da914a45ce600f15e371355ce7026669bff263ea - md5: dc0f6f79a447cbbad02c856deb531a7b + version: 24.11.0 + build: py312h81bd7bf_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/conda-24.11.0-py312h81bd7bf_0.conda + sha256: 15d613bcb532e9ba4247b299531637a3cbd4fd4cea565be2859c924d758db714 + md5: fc731f726c139dbe79a54da4334b2180 depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1710,17 +1709,16 @@ packages: - conda-build >=24.3 - conda-content-trust >=0.1.1 license: BSD-3-Clause - license_family: BSD - size: 1160794 - timestamp: 1729155457680 + size: 1173448 + timestamp: 1732552796088 - kind: conda name: conda - version: 24.9.2 - build: py312hb401068_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/conda-24.9.2-py312hb401068_0.conda - sha256: 22f93dccb52c3621c9542dc5f1c9ef3b0558cd34298784481e4c9abfcf3cd677 - md5: 06339440083591573deacb6e63ab1f6b + version: 24.11.0 + build: py312h996f985_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/conda-24.11.0-py312h996f985_0.conda + sha256: ccd615e26c5fbca7363f10be86579599da35cf170ba5abb1265247d69b62f2a6 + md5: a8e0f4213d8fe4ca981954153dd4acd6 depends: - archspec >=0.2.3 - boltons >=23.0.0 @@ -1736,6 +1734,7 @@ packages: - pluggy >=1.0.0 - pycosat >=0.6.3 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - requests >=2.28.0,<3 - ruamel.yaml >=0.11.14,<0.19 @@ -1745,12 +1744,11 @@ packages: - zstandard >=0.19.0 constrains: - conda-build >=24.3 - - conda-content-trust >=0.1.1 - conda-env >=2.6 + - conda-content-trust >=0.1.1 license: BSD-3-Clause - license_family: BSD - size: 1163211 - timestamp: 1729155314354 + size: 1171762 + timestamp: 1732552839523 - kind: conda name: conda-libmamba-solver version: 24.9.0 @@ -1993,6 +1991,22 @@ packages: license_family: BSD size: 6095 timestamp: 1728985303064 +- kind: conda + name: frozendict + version: 2.4.6 + build: py311h1314207_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.6-py311h1314207_0.conda + sha256: d0f604b818287cd9dbefbe0dcb6c7deba6c49fddb3d9c4c3310f0bafd7ced109 + md5: 91586d520e07d09129b3a4434223ca08 + depends: + - __osx >=10.13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: LGPL-3.0-only + license_family: LGPL + size: 31218 + timestamp: 1728841461831 - kind: conda name: frozendict version: 2.4.6 @@ -2010,22 +2024,6 @@ packages: license_family: LGPL size: 30959 timestamp: 1728841539128 -- kind: conda - name: frozendict - version: 2.4.6 - build: py312h3d0f464_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.6-py312h3d0f464_0.conda - sha256: ea617933e456f78905682cbed90692ba698524280955f6ff21be0905d8f0cd43 - md5: 58a8d9e016adc22964bfb0b9a5272e16 - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: LGPL-3.0-only - license_family: LGPL - size: 30751 - timestamp: 1728841497755 - kind: conda name: frozendict version: 2.4.6 @@ -2153,37 +2151,37 @@ packages: - kind: conda name: gcc_linux-64 version: 13.3.0 - build: hc28eda2_5 - build_number: 5 + build: hc28eda2_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_5.conda - sha256: 6778f93159cfd967320f60473447b19e320f303378d4c9da0784caa40073fafa - md5: ffbadbbc3345d9a315ba31c8a9188d4c + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda + sha256: 1e5ac50580a68fdc7d2f5722abcf1a87898c24b1ab6eb5ecd322634742d93645 + md5: ac23afbf5805389eb771e2ad3b476f75 depends: - binutils_linux-64 - gcc_impl_linux-64 13.3.0.* - sysroot_linux-64 license: BSD-3-Clause license_family: BSD - size: 31909 - timestamp: 1729281963691 + size: 32005 + timestamp: 1731939593317 - kind: conda name: gcc_linux-aarch64 version: 13.3.0 - build: h1cd514b_5 - build_number: 5 + build: h1cd514b_7 + build_number: 7 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-13.3.0-h1cd514b_5.conda - sha256: 5bea73704a3fa24c89c3f0f259740b897125ac62fcff7e7e7668ec3562595a23 - md5: ab35bdc9218e9f00161268237547a98c + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gcc_linux-aarch64-13.3.0-h1cd514b_7.conda + sha256: 1515ce0e32aeaa35be46b8b663913c5c55ca070bafede52958b669da6d5298a0 + md5: 5db44b39edd9182d90a418c0efec5f09 depends: - binutils_linux-aarch64 - gcc_impl_linux-aarch64 13.3.0.* - sysroot_linux-aarch64 license: BSD-3-Clause license_family: BSD - size: 31972 - timestamp: 1729281808212 + size: 32164 + timestamp: 1731939505804 - kind: conda name: gfortran version: 13.3.0 @@ -2259,39 +2257,39 @@ packages: - kind: conda name: gfortran_linux-64 version: 13.3.0 - build: hb919d3a_5 - build_number: 5 + build: hb919d3a_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-13.3.0-hb919d3a_5.conda - sha256: 51d2de6aa49a07137f81ab8f36e81fe993da1025c50238f0be343085a853a805 - md5: 67dbd742855cc95233eb04c43004a29a + url: https://conda.anaconda.org/conda-forge/linux-64/gfortran_linux-64-13.3.0-hb919d3a_7.conda + sha256: 73ba4c14b6b372385b0cb8e06c45a7df5ffc0ca688bd10180c0a3459ab71390d + md5: 0b8e7413559c4c892a37c35de4559969 depends: - binutils_linux-64 - - gcc_linux-64 13.3.0 hc28eda2_5 + - gcc_linux-64 13.3.0 hc28eda2_7 - gfortran_impl_linux-64 13.3.0.* - sysroot_linux-64 license: BSD-3-Clause license_family: BSD - size: 30304 - timestamp: 1729281973319 + size: 30355 + timestamp: 1731939610282 - kind: conda name: gfortran_linux-aarch64 version: 13.3.0 - build: h2809cf8_5 - build_number: 5 + build: h2809cf8_7 + build_number: 7 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-13.3.0-h2809cf8_5.conda - sha256: 0ac078e41f3a6471f11f0c63ee3001c051cbf260868f62b4cbbd97d9c41cde87 - md5: 61c43195b8bac11f6c5e0fb40fe8faff + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gfortran_linux-aarch64-13.3.0-h2809cf8_7.conda + sha256: 18b96cec71e0ccbbe6a0f374add98ea14cce0b95e37b8c94dfeacb0fb7f609be + md5: 694da47574296b67d58fb88d79ad241a depends: - binutils_linux-aarch64 - - gcc_linux-aarch64 13.3.0 h1cd514b_5 + - gcc_linux-aarch64 13.3.0 h1cd514b_7 - gfortran_impl_linux-aarch64 13.3.0.* - sysroot_linux-aarch64 license: BSD-3-Clause license_family: BSD - size: 30320 - timestamp: 1729281817693 + size: 30553 + timestamp: 1731939522932 - kind: conda name: gxx version: 13.3.0 @@ -2363,39 +2361,39 @@ packages: - kind: conda name: gxx_linux-64 version: 13.3.0 - build: h6834431_5 - build_number: 5 + build: h6834431_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_5.conda - sha256: 4ca452f7abc607d9f0ad45a7fa8c7d8436fca05b9cc6715d1ccd239bed90833b - md5: 81ddb2db98fbe3031aa7ebbbf8bb3ffd + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda + sha256: a9b1ffea76f2cc5aedeead4793fcded7a687cce9d5e3f4fe93629f1b1d5043a6 + md5: 7c82ca9bda609b6f72f670e4219d3787 depends: - binutils_linux-64 - - gcc_linux-64 13.3.0 hc28eda2_5 + - gcc_linux-64 13.3.0 hc28eda2_7 - gxx_impl_linux-64 13.3.0.* - sysroot_linux-64 license: BSD-3-Clause license_family: BSD - size: 30284 - timestamp: 1729281975715 + size: 30356 + timestamp: 1731939612705 - kind: conda name: gxx_linux-aarch64 version: 13.3.0 - build: h2864abd_5 - build_number: 5 + build: h2864abd_7 + build_number: 7 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-13.3.0-h2864abd_5.conda - sha256: 3079eea2326411009cd8e124d00bab1bf1ca7a244d3d5d8c36d58a9f492bda4c - md5: 2d98b991b501e9f303f4feee10f4e794 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/gxx_linux-aarch64-13.3.0-h2864abd_7.conda + sha256: 62a167e54c5c21de36e4652bff096ed6789215e94ebfbbdf3a14fd3d24216479 + md5: dff7396f87892ce8c07f6fd53d9d998d depends: - binutils_linux-aarch64 - - gcc_linux-aarch64 13.3.0 h1cd514b_5 + - gcc_linux-aarch64 13.3.0 h1cd514b_7 - gxx_impl_linux-aarch64 13.3.0.* - sysroot_linux-aarch64 license: BSD-3-Clause license_family: BSD - size: 30319 - timestamp: 1729281820071 + size: 30532 + timestamp: 1731939525391 - kind: conda name: h2 version: 4.1.0 @@ -2504,20 +2502,20 @@ packages: timestamp: 1720853997952 - kind: conda name: identify - version: 2.6.1 + version: 2.6.2 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.1-pyhd8ed1ab_0.conda - sha256: dc752392f327e64e32bc3122758b2d8951aec9d6e6aa888463c73d18a10e3c56 - md5: 43f629202f9eec21be5f71171fb5daf8 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda + sha256: 4e3f1c381ad65b476a98d03c0f6c73df04ae4095b501f51129ba6f2a7660179c + md5: 636950f839e065401e2031624a414f0b depends: - python >=3.6 - ukkonen license: MIT license_family: MIT - size: 78078 - timestamp: 1726369674008 + size: 78376 + timestamp: 1731187862708 - kind: conda name: idna version: '3.10' @@ -2549,6 +2547,22 @@ packages: license_family: BSD size: 17366 timestamp: 1695536420928 +- kind: conda + name: jsonpointer + version: 3.0.0 + build: py311h6eed73b_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py311h6eed73b_1.conda + sha256: 2499e5ebb3efa4186d6922122224d16bac791a5c0adad5b48b2bcd1e1e2afc8d + md5: b6c1710105dad14d47001a339cd14da6 + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 17727 + timestamp: 1725302991176 - kind: conda name: jsonpointer version: 3.0.0 @@ -2615,22 +2629,6 @@ packages: license_family: BSD size: 17821 timestamp: 1725303138276 -- kind: conda - name: jsonpointer - version: 3.0.0 - build: py312hb401068_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_1.conda - sha256: 52fcb1db44a935bba26988cc17247a0f71a8ad2fbc2b717274a8c8940856ee0d - md5: 5dcf96bca4649d496d818a0f5cfb962e - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - size: 17560 - timestamp: 1725303027769 - kind: conda name: kernel-headers_linux-64 version: 3.10.0 @@ -3028,32 +3026,32 @@ packages: timestamp: 1726659794676 - kind: conda name: libcxx - version: 19.1.3 + version: 19.1.4 build: ha82da77_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.3-ha82da77_0.conda - sha256: 6d062760c6439e75b9a44d800d89aff60fe3441998d87506c62dc94c50412ef4 - md5: bf691071fba4734984231617783225bc + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + sha256: 342896ebc1d6acbf022ca6df006a936b9a472579e91e3c502cb1f52f218b78e9 + md5: a2d3d484d95889fccdd09498d8f6bf9a depends: - __osx >=11.0 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 520771 - timestamp: 1730314603920 + size: 520678 + timestamp: 1732060258949 - kind: conda name: libcxx - version: 19.1.3 + version: 19.1.4 build: hf95d169_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.3-hf95d169_0.conda - sha256: 466f259bb13a8058fef28843977c090d21ad337b71a842ccc0407bccf8d27011 - md5: 86801fc56d4641e3ef7a63f5d996b960 + url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.4-hf95d169_0.conda + sha256: 48c6d0ab9dd0c66693f79f4a032cd9ebb64fb88329dfa747aeac5299f9b3f33b + md5: 5f23923c08151687ff2fc3002b0a7234 depends: - __osx >=10.13 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 528991 - timestamp: 1730314340106 + size: 529010 + timestamp: 1732060320836 - kind: conda name: libedit version: 3.1.20191231 @@ -3174,87 +3172,87 @@ packages: timestamp: 1702146165126 - kind: conda name: libexpat - version: 2.6.3 - build: h5888daf_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - sha256: 4bb47bb2cd09898737a5211e2992d63c555d63715a07ba56eae0aff31fb89c22 - md5: 59f4c43bb1b5ef1c71946ff2cbf59524 + version: 2.6.4 + build: h240833e_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda + sha256: d10f43d0c5df6c8cf55259bce0fe14d2377eed625956cddce06f58827d288c59 + md5: 20307f4049a735a78a29073be1be2626 depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - __osx >=10.13 constrains: - - expat 2.6.3.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 73616 - timestamp: 1725568742634 + size: 70758 + timestamp: 1730967204736 - kind: conda name: libexpat - version: 2.6.3 - build: h5ad3122_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.3-h5ad3122_0.conda - sha256: 02341c9c35128055fd404dfe675832b80f2bf9dbb99539457652c11c06e52757 - md5: 1d2b842bb76e268625e8ee8d0a9fe8c3 + version: 2.6.4 + build: h286801f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + sha256: e42ab5ace927ee7c84e3f0f7d813671e1cf3529f5f06ee5899606630498c2745 + md5: 38d2656dd914feb0cab8c629370768bf depends: - - libgcc >=13 + - __osx >=11.0 constrains: - - expat 2.6.3.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 72342 - timestamp: 1725568840022 + size: 64693 + timestamp: 1730967175868 - kind: conda name: libexpat - version: 2.6.3 - build: hac325c4_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.3-hac325c4_0.conda - sha256: dd22dffad6731c352f4c14603868c9cce4d3b50ff5ff1e50f416a82dcb491947 - md5: c1db99b0a94a2f23bd6ce39e2d314e07 + version: 2.6.4 + build: h5888daf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26 + md5: db833e03127376d461e1e13e76f09b6c depends: - - __osx >=10.13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 constrains: - - expat 2.6.3.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 70517 - timestamp: 1725568864316 + size: 73304 + timestamp: 1730967041968 - kind: conda name: libexpat - version: 2.6.3 - build: he0c23c2_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.3-he0c23c2_0.conda - sha256: 9543965d155b8da96fc67dd81705fe5c2571c7c00becc8de5534c850393d4e3c - md5: 21415fbf4d0de6767a621160b43e5dea + version: 2.6.4 + build: h5ad3122_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + sha256: f42e758009ba9db90d1fe7992bc3e60d0c52f71fb20923375d2c44ae69a5a2b3 + md5: f1b3fab36861b3ce945a13f0dfdfc688 depends: - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - libgcc >=13 constrains: - - expat 2.6.3.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 138992 - timestamp: 1725569106114 + size: 72345 + timestamp: 1730967203789 - kind: conda name: libexpat - version: 2.6.3 - build: hf9b8971_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda - sha256: 5cbe5a199fba14ade55457a468ce663aac0b54832c39aa54470b3889b4c75c4a - md5: 5f22f07c2ab2dea8c66fe9585a062c96 + version: 2.6.4 + build: he0c23c2_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + sha256: 0c0447bf20d1013d5603499de93a16b6faa92d7ead870d96305c0f065b6a5a12 + md5: eb383771c680aa792feb529eaf9df82f depends: - - __osx >=11.0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - - expat 2.6.3.* + - expat 2.6.4.* license: MIT license_family: MIT - size: 63895 - timestamp: 1725568783033 + size: 139068 + timestamp: 1730967442102 - kind: conda name: libffi version: 3.4.2 @@ -3648,72 +3646,69 @@ packages: timestamp: 1723626968270 - kind: conda name: libmamba - version: 1.5.10 - build: h489cd8b_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.10-h489cd8b_1.conda - sha256: 4eef3f76a26b40914a1084122531e49fe56ca8e55e233e589733b39a2682458d - md5: b7d259b5187878369027e4ae9892ab08 + version: 1.5.11 + build: h4621f14_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.11-h4621f14_0.conda + sha256: 7de8e455ad8e594edc210a4a85623d98d734c3802edff7574664006806796437 + md5: 03f0dd4393d6a345cc3b269d759b3500 depends: + - __osx >=11.0 - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - libcurl >=8.10.1,<9.0a0 - - libgcc >=13 + - libcxx >=18 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - libstdcxx >=13 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1627114 - timestamp: 1727884420363 + size: 1214100 + timestamp: 1732268430446 - kind: conda name: libmamba - version: 1.5.10 - build: h66a2e1b_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libmamba-1.5.10-h66a2e1b_1.conda - sha256: e3e928725456448016877e09c0f53efade7c1a2c7f3274faa686f8ebcfd71e6e - md5: 307633b353d7f03ff143e7671a27c454 + version: 1.5.11 + build: h489cd8b_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmamba-1.5.11-h489cd8b_0.conda + sha256: 8c8be2c5032d87a60d0b01755723c692578305407b03cfa849aff7a9f39d5444 + md5: ad7fd8367491825ca622ecd3bd5b402f depends: - - __osx >=11.0 - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - libcurl >=8.10.1,<9.0a0 - - libcxx >=17 + - libgcc >=13 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - openssl >=3.3.2,<4.0a0 + - libstdcxx >=13 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1257659 - timestamp: 1727884388615 + size: 1626161 + timestamp: 1732268401691 - kind: conda name: libmamba - version: 1.5.10 - build: h81425b0_1 - build_number: 1 + version: 1.5.11 + build: h81425b0_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.10-h81425b0_1.conda - sha256: 48c8d36e9bbeef2da7ca781dbf559aa9bbae3e8c68f5b19b8354c34c0002f2e1 - md5: 321ddf9cb17e76a68e69db8ef2310e76 + url: https://conda.anaconda.org/conda-forge/win-64/libmamba-1.5.11-h81425b0_0.conda + sha256: 7367a23147c5affafafd218f2ed1b24a4686b6aeaac062bc13bb0810e600559e + md5: 6c005670c32fd0220e1ea21af33e84db depends: - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - libcurl >=8.10.1,<9.0a0 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - ucrt >=10.0.20348.0 @@ -3723,43 +3718,41 @@ packages: - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 3555216 - timestamp: 1727884454256 + size: 3536024 + timestamp: 1732268492780 - kind: conda name: libmamba - version: 1.5.10 - build: ha16e19f_1 - build_number: 1 + version: 1.5.11 + build: hd41e4cc_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.10-ha16e19f_1.conda - sha256: 5ce46168db13b3819e112779b21b5797826434f19a16e06d42b2790f7336fdf0 - md5: f213268eb48038a51ecf7e2fa475002f + url: https://conda.anaconda.org/conda-forge/osx-64/libmamba-1.5.11-hd41e4cc_0.conda + sha256: 78cba076c337be98e3a1eab84dcee72183e9065eb1ad74e4e3c0bf33a8127843 + md5: 8fc43b0dc7197b567173f3f37bb4eaf6 depends: - __osx >=10.13 - fmt >=11.0.2,<12.0a0 - libarchive >=3.7.4,<3.8.0a0 - libcurl >=8.10.1,<9.0a0 - - libcxx >=17 + - libcxx >=18 - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1351884 - timestamp: 1727884062657 + size: 1307098 + timestamp: 1732268240969 - kind: conda name: libmamba - version: 1.5.10 - build: hf72d635_1 - build_number: 1 + version: 1.5.11 + build: hf72d635_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.10-hf72d635_1.conda - sha256: 72e94b217e2bf1127092b4e9a4aa38db6ee8a50ce5d5ff63dc6736163a74e3c5 - md5: 5ebe5137cf1c13b83a711c1c707d031a + url: https://conda.anaconda.org/conda-forge/linux-64/libmamba-1.5.11-hf72d635_0.conda + sha256: 07db691a23ac69e92a516ca52ab92bb2216cb52bafc9374416d92e41033fb40b + md5: 66ddf67874b75a2252cd09ed931fc1e7 depends: - __glibc >=2.17,<3.0.a0 - fmt >=11.0.2,<12.0a0 @@ -3769,30 +3762,51 @@ packages: - libsolv >=0.7.23 - libsolv >=0.7.30,<0.8.0a0 - libstdcxx >=13 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - reproc >=14.2,<15.0a0 - reproc-cpp >=14.2,<15.0a0 - yaml-cpp >=0.8.0,<0.9.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 1685367 - timestamp: 1727884111669 + size: 1686162 + timestamp: 1732268335034 - kind: conda name: libmambapy - version: 1.5.10 - build: py312h33c3f33_1 - build_number: 1 + version: 1.5.11 + build: py311h308a38f_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.11-py311h308a38f_0.conda + sha256: f97d9f93b5d7e65dfc8a669a50cef25f4d60ba651db75c0699d47bb609b8384a + md5: 8ae30c327d8ef4fcf27a72cdb02f2166 + depends: + - __osx >=10.13 + - fmt >=11.0.2,<12.0a0 + - libcxx >=18 + - libmamba 1.5.11 hd41e4cc_0 + - openssl >=3.4.0,<4.0a0 + - pybind11-abi 4 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - yaml-cpp >=0.8.0,<0.9.0a0 + license: BSD-3-Clause + license_family: BSD + size: 270645 + timestamp: 1732268383636 +- kind: conda + name: libmambapy + version: 1.5.11 + build: py312h33c3f33_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.10-py312h33c3f33_1.conda - sha256: 8274433d4c5cfeaad5b4f779697ff680f27a8df0a03dfdc5d923b2f34f7e10ac - md5: 8fa1f2d7b47fbecb5d3e5863a849387c + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libmambapy-1.5.11-py312h33c3f33_0.conda + sha256: 3d7f01037b02b4ed6a3964780a7bcca6a1540baf294086cb1370e7ef83e9b75a + md5: a282c17c6817ac4f351c43d8a1fa70fe depends: - fmt >=11.0.2,<12.0a0 - libgcc >=13 - - libmamba 1.5.10 h489cd8b_1 + - libmamba 1.5.11 h489cd8b_0 - libstdcxx >=13 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython @@ -3800,44 +3814,45 @@ packages: - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 294077 - timestamp: 1727884794403 + size: 294281 + timestamp: 1732268545149 - kind: conda name: libmambapy - version: 1.5.10 - build: py312h643a1bd_1 - build_number: 1 + version: 1.5.11 + build: py312h643a1bd_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.10-py312h643a1bd_1.conda - sha256: 5e623b370fc37a5f14f816c2c5ac4a30f06e71c41f991410fea2ab9e7f3de9df - md5: 8ba97c71d94eb5945c09b9e2d6f0554b + url: https://conda.anaconda.org/conda-forge/win-64/libmambapy-1.5.11-py312h643a1bd_0.conda + sha256: c7e52d3e47641f820c1a335095d5805b7bc24f3b0b23e1d377736715bb293641 + md5: 125871e32ae9d4f85a0d54d58f024952 depends: - fmt >=11.0.2,<12.0a0 - - libmamba 1.5.10 h81425b0_1 - - openssl >=3.3.2,<4.0a0 + - libmamba 1.5.11 h81425b0_0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 463042 - timestamp: 1727884775045 + size: 467477 + timestamp: 1732268850008 - kind: conda name: libmambapy - version: 1.5.10 - build: py312he1e5f57_1 - build_number: 1 + version: 1.5.11 + build: py312hd07f1d4_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.10-py312he1e5f57_1.conda - sha256: ba5abdf2740f59d4598fe37ab13faaa55e99b2b8340a7a331d5a17eb7fa3a6a8 - md5: 1b35dc06f84c191f76f2f66f991f2016 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libmambapy-1.5.11-py312hd07f1d4_0.conda + sha256: fc0f7fb20fdc43f5c8487c141808a75393d951920413e6cb84f8bc3e2cf9bcff + md5: dd47ca30a3843123b3111dc2798a9a82 depends: - __osx >=11.0 - fmt >=11.0.2,<12.0a0 - - libcxx >=17 - - libmamba 1.5.10 h66a2e1b_1 - - openssl >=3.3.2,<4.0a0 + - libcxx >=18 + - libmamba 1.5.11 h4621f14_0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython @@ -3845,59 +3860,31 @@ packages: - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 266842 - timestamp: 1727884838213 + size: 255655 + timestamp: 1732268529447 - kind: conda name: libmambapy - version: 1.5.10 - build: py312hf3f0a4e_1 - build_number: 1 + version: 1.5.11 + build: py312hf3f0a4e_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.10-py312hf3f0a4e_1.conda - sha256: aab871373a32ca029472ba9105ec668aa639c1c2b10b9d5d488098a5ecbdd7b4 - md5: eefa14438339417f853d01cb49fd8efa + url: https://conda.anaconda.org/conda-forge/linux-64/libmambapy-1.5.11-py312hf3f0a4e_0.conda + sha256: 336683d154b01f4addfa2b86c49f1afaf06b394b196fc157a76844e35e84b5e7 + md5: 6012a9f871d3c2908cfd2642ea90f4c0 depends: - __glibc >=2.17,<3.0.a0 - fmt >=11.0.2,<12.0a0 - libgcc >=13 - - libmamba 1.5.10 hf72d635_1 + - libmamba 1.5.11 hf72d635_0 - libstdcxx >=13 - - openssl >=3.3.2,<4.0a0 - - pybind11-abi 4 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - - yaml-cpp >=0.8.0,<0.9.0a0 - license: BSD-3-Clause - license_family: BSD - size: 326109 - timestamp: 1727884387305 -- kind: conda - name: libmambapy - version: 1.5.10 - build: py312hf4eca44_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libmambapy-1.5.10-py312hf4eca44_1.conda - sha256: 9d10cbbb22a16f828ccbbb0483963f66978c4129b1bfbb2c7084aa9752c2d3fc - md5: cc7b2ec32255e9b5e5641179c9af3ae2 - depends: - - __osx >=10.13 - - fmt >=11.0.2,<12.0a0 - - libcxx >=17 - - libmamba 1.5.10 ha16e19f_1 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - pybind11-abi 4 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - yaml-cpp >=0.8.0,<0.9.0a0 license: BSD-3-Clause license_family: BSD - size: 288024 - timestamp: 1727884345732 + size: 326538 + timestamp: 1732268785636 - kind: conda name: libmpdec version: 4.0.0 @@ -4560,16 +4547,13 @@ packages: timestamp: 1702724383534 - kind: conda name: libxml2 - version: 2.13.4 - build: h12808cf_2 - build_number: 2 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.4-h12808cf_2.conda - sha256: ce806e0f7430b709145ac406e7aacf3833adbdb91e085ed3f4dc8e78cf07038c - md5: 0649b977d9e3d2fd579148643884535e + version: 2.13.5 + build: h442d1da_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.5-h442d1da_0.conda + sha256: 020466b17c143190bd5a6540be2ceef4c1f8d514408bd5f0adaafcd9d0057b5c + md5: 1fbabbec60a3c7c519a5973b06c3b2f4 depends: - - __osx >=10.13 - - icu >=75.1,<76.0a0 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 @@ -4577,75 +4561,71 @@ packages: - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 601997 - timestamp: 1730355958301 + size: 1511585 + timestamp: 1731489892312 - kind: conda name: libxml2 - version: 2.13.4 - build: h442d1da_2 - build_number: 2 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.4-h442d1da_2.conda - sha256: 352eb281dcac491b7ed9e01082947d734a2610f3700f1ab18524590a2862f069 - md5: 46c233e5c137a2de2d1d95ca35ad8d6a + version: 2.13.5 + build: h495214b_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.5-h495214b_0.conda + sha256: 66e1bf40699daf83b39e1281f06c64cf83499de3a9c05d59477fadded6d85b18 + md5: 8711bc6fb054192dc432741dcd233ac3 depends: + - __osx >=10.13 + - icu >=75.1,<76.0a0 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 1518137 - timestamp: 1730355951612 + size: 608931 + timestamp: 1731489767386 - kind: conda name: libxml2 - version: 2.13.4 - build: h8424949_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.4-h8424949_2.conda - sha256: 51048cd9d4d7ab3ab440bac01d1db8193ae1bd3e9502cdf6792a69c792fec2e5 - md5: 3f0764c38bc02720231d49d6035531f2 + version: 2.13.5 + build: hb346dea_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.5-hb346dea_0.conda + sha256: 8c9d6a3a421ac5bf965af495d1b0a08c6fb2245ba156550bc064a7b4f8fc7bd8 + md5: c81a9f1118541aaa418ccb22190c817e depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 - icu >=75.1,<76.0a0 + - libgcc >=13 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 572400 - timestamp: 1730356085177 + size: 689626 + timestamp: 1731489608971 - kind: conda name: libxml2 - version: 2.13.4 - build: hb346dea_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.4-hb346dea_2.conda - sha256: a111cb7f2deb6e20ebb475e8426ce5291451476f55f0dec6c220aa51e5a5784f - md5: 69b90b70c434b916abf5a1d5ee5d55fb + version: 2.13.5 + build: hbbdcc80_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.5-hbbdcc80_0.conda + sha256: 936de9c0e91cb6f178c48ea14313cf6c79bdb1f474c785c117c41492b0407a98 + md5: 967d4a9dadd710415ee008d862a07c99 depends: - __osx >=11.0 - icu >=75.1,<76.0a0 - - libgcc >=13 - libiconv >=1.17,<2.0a0 - libzlib >=1.3.1,<2.0a0 - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 690019 - timestamp: 1730355770718 + size: 583082 + timestamp: 1731489765442 - kind: conda name: libxml2 - version: 2.13.4 - build: hf4efe5d_2 - build_number: 2 + version: 2.13.5 + build: hf4efe5d_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.13.4-hf4efe5d_2.conda - sha256: 69d6197742a7cca2c9a030bf5c6f61d943d45deeaeb3b2df92ebdfd933524ae0 - md5: 0e28ab30d29c5a566d05bf73dfc5c184 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.13.5-hf4efe5d_0.conda + sha256: bb5033bd79371e82886f9e83ef86babae8e0f50b77d7f9302210345b9205d939 + md5: 5650ac8a6ed680c032bdabe40ad19ee0 depends: - icu >=75.1,<76.0a0 - libgcc >=13 @@ -4654,8 +4634,8 @@ packages: - xz >=5.2.6,<6.0a0 license: MIT license_family: MIT - size: 733127 - timestamp: 1730356005200 + size: 734453 + timestamp: 1731489860751 - kind: conda name: libzlib version: 1.3.1 @@ -4893,13 +4873,26 @@ packages: timestamp: 1713515738503 - kind: conda name: menuinst - version: 2.1.2 - build: py312h275cf98_1 - build_number: 1 + version: 2.2.0 + build: py311h6eed73b_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.2.0-py311h6eed73b_0.conda + sha256: 1673e9972f5c16ad0f6cf4ef60085122ffeb126d9cf5ef28b875066483a15553 + md5: b681c435cf6e6942dc662f87ce736d9f + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause AND MIT + size: 171276 + timestamp: 1731147159151 +- kind: conda + name: menuinst + version: 2.2.0 + build: py312h275cf98_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.1.2-py312h275cf98_1.conda - sha256: d3a7df9b2e1cb2e400f6c4fefe479545935d776e3c58bf4e9bb8bb47fa610f58 - md5: 5ef7222f10f2c0f55ed960d603b2517c + url: https://conda.anaconda.org/conda-forge/win-64/menuinst-2.2.0-py312h275cf98_0.conda + sha256: 6de0335756afcbca905e4796cc801a88c568ec0711fad3777c7ae87a81628faf + md5: c435a5681c148e369bb49f8fa15acbaf depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 @@ -4907,147 +4900,124 @@ packages: - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause AND MIT - size: 133324 - timestamp: 1725359323529 + size: 133005 + timestamp: 1731147494253 - kind: conda name: menuinst - version: 2.1.2 - build: py312h7900ff3_1 - build_number: 1 + version: 2.2.0 + build: py312h7900ff3_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.1.2-py312h7900ff3_1.conda - sha256: 8338f243a5a501b02c1443b4c0f664313f99c802ea23b7d4676c99317c96ff00 - md5: c6575ae996f2bc0369c73b632db5ca61 + url: https://conda.anaconda.org/conda-forge/linux-64/menuinst-2.2.0-py312h7900ff3_0.conda + sha256: a3d3f509e545913b6aee004b3e91c0147723b7d569ff256db9cbc8eb2d7b1772 + md5: f22f8e77b36e67297feffe03eefd5375 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause AND MIT - size: 166320 - timestamp: 1725359138771 + size: 166308 + timestamp: 1731147065526 - kind: conda name: menuinst - version: 2.1.2 - build: py312h81bd7bf_1 - build_number: 1 + version: 2.2.0 + build: py312h81bd7bf_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.1.2-py312h81bd7bf_1.conda - sha256: 507808a93543aa246d2e8def5b3a6ca674fa5b3c9289f087b71efb735c0d1157 - md5: 98d68002c338054a1f366a9758f99719 + url: https://conda.anaconda.org/conda-forge/osx-arm64/menuinst-2.2.0-py312h81bd7bf_0.conda + sha256: b1def1d581bfd96473e854712ce77fe039835ea5c80d9a5033b0d2d2d14cdf0c + md5: 4ecad32f75f4ad25268e38778cac2b7f depends: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause AND MIT - size: 166601 - timestamp: 1725359231719 + size: 166659 + timestamp: 1731147206286 - kind: conda name: menuinst - version: 2.1.2 - build: py312h996f985_1 - build_number: 1 + version: 2.2.0 + build: py312h996f985_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.1.2-py312h996f985_1.conda - sha256: d4ea2ab1f72b9b5a005acd00fc791a369a90d3838d25c4256f98199034e8293f - md5: 3c877938d16ba91d93b2e09a338a6d95 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/menuinst-2.2.0-py312h996f985_0.conda + sha256: 467e05563f58004b3d143ec7b975443b015eddd76e98f5ea71e04fdd1657b30f + md5: ef25ec436741df9dbcb2831b4ccb160d depends: - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause AND MIT - size: 166004 - timestamp: 1725359246816 -- kind: conda - name: menuinst - version: 2.1.2 - build: py312hb401068_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/menuinst-2.1.2-py312hb401068_1.conda - sha256: 8f0a371bb9d6fc22445da0ef6f2de7a9944232b7ef4d7c8f1edc8ce7eb399f19 - md5: b5e65130ede50120d04c12a7dcfc9131 - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause AND MIT - size: 166634 - timestamp: 1725359092783 + size: 166746 + timestamp: 1731147165325 - kind: conda name: micromamba - version: 2.0.2 - build: '2' - build_number: 2 + version: 2.0.4 + build: '0' subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/micromamba-2.0.2-2.tar.bz2 - sha256: 546f1c5412361af00b2df98010c0dcbd32282dcd19e5e672dc59fc2a0b6b7a26 - md5: 316c8430b309056db8673584267a3ae1 + url: https://conda.anaconda.org/conda-forge/linux-64/micromamba-2.0.4-0.tar.bz2 + sha256: 05448e498ddaa64ddf05c3357de91f38a1bb16f4a54eab7a6234a19963f4b1de + md5: 00c61463ed38c72bfe981645a8ef7390 depends: - __glibc >=2.17,<3.0.a0 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 6028813 - timestamp: 1729508319220 + size: 6020325 + timestamp: 1732522966252 - kind: conda name: micromamba - version: 2.0.2 - build: '2' - build_number: 2 + version: 2.0.4 + build: '0' subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-2.0.2-2.tar.bz2 - sha256: 19167a52137e131aa1306f0aef67c7849aa7e75cb1591a75f3ce417ef4d28f26 - md5: 2de10cb8308aa812293f7c7ced73afb3 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/micromamba-2.0.4-0.tar.bz2 + sha256: 0d33957be6d6fa85debd2e5d732e47dec2e11d5f2acc7713e95a5cdc2d4eca4d + md5: ea3d13f65a4e4f57b0f19f4045d2974d license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 7222304 - timestamp: 1729508823169 + size: 7260911 + timestamp: 1732523048489 - kind: conda name: micromamba - version: 2.0.2 - build: '2' - build_number: 2 + version: 2.0.4 + build: '0' subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/micromamba-2.0.2-2.tar.bz2 - sha256: 8f105c0022f655e94f5344a76f12f6b06ec2031f3e675089ba39a7d2b38f25ef - md5: 1cc5d0411c68b98b07a44d0e14a5f368 + url: https://conda.anaconda.org/conda-forge/osx-64/micromamba-2.0.4-0.tar.bz2 + sha256: 6166d904537d141b25bc10d3f285723121aea2d8e42b52778d7bc2a48f53b0fb + md5: c16e3df2bd373e3cc58c2ecca4669477 depends: - __osx >=10.13 - - libcxx >=17 + - libcxx >=18 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 6129559 - timestamp: 1729509261822 + size: 6090278 + timestamp: 1732523280771 - kind: conda name: micromamba - version: 2.0.2 - build: '2' - build_number: 2 + version: 2.0.4 + build: '0' subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-2.0.2-2.tar.bz2 - sha256: 7eecccd9e57f7d3a0c118b5b9e93cec514ad33903ae182878733a178e3ef5f2d - md5: 46876e6f7a2eb93170700d0fbf1dd199 + url: https://conda.anaconda.org/conda-forge/osx-arm64/micromamba-2.0.4-0.tar.bz2 + sha256: 576748d6442a72ce6d5b228770f188d874e4ea58c4f5a6ea5d9445db9fb6796b + md5: c17eba3707fd6d1235c7525cdb0f3383 depends: - __osx >=11.0 - - libcxx >=17 + - libcxx >=18 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 6119796 - timestamp: 1729508549858 + size: 6063298 + timestamp: 1732523112903 - kind: conda name: micromamba - version: 2.0.2 - build: '2' - build_number: 2 + version: 2.0.4 + build: '0' subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/micromamba-2.0.2-2.tar.bz2 - sha256: 4e7af0e090e2dd4d0b245f62f1815de332fda1b1b6988eddb222904582d3f9d4 - md5: eb9835f31d51ccfad1f25a24869139dd + url: https://conda.anaconda.org/conda-forge/win-64/micromamba-2.0.4-0.tar.bz2 + sha256: cfbfe913377dc9f3d9fa2561915ed2eae4180dcc76bd2402d9b1fc932318c439 + md5: 5536af3afee88d705e1832c4ef0df84d depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: BSD-3-Clause AND MIT AND OpenSSL license_family: BSD - size: 3925141 - timestamp: 1729511045826 + size: 3955911 + timestamp: 1732524906326 - kind: conda name: ncurses version: '6.5' @@ -5123,106 +5093,106 @@ packages: timestamp: 1717585382642 - kind: conda name: nodejs - version: 22.9.0 - build: h08fde81_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.9.0-h08fde81_0.conda - sha256: 736a4738aba32a03401aa25c8f740e4afe4aea02bc06651b59b06f0fdc024fdf - md5: 3771a3a6abe5a8db8910d5ebf144811b - depends: - - __osx >=11.0 - - icu >=75.1,<76.0a0 - - libcxx >=17 - - libuv >=1.48.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.2,<4.0a0 - - zlib - license: MIT - license_family: MIT - size: 14859715 - timestamp: 1726671037225 -- kind: conda - name: nodejs - version: 22.9.0 + version: 22.11.0 build: h57928b3_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.9.0-h57928b3_0.conda - sha256: 6d74f0dbb91eb2049199ba801a3db67965f990aef44084f9ae51a1f70c2996f6 - md5: 6aa54ed90a643a11a005491ff316b1c4 + url: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + sha256: b182be51b98ee410d9065c2e202dfb86bb7cb6f1db958790e34836bb99e9ad4b + md5: 902548b1eaf4fec280a98c13c3d8cf3e license: MIT license_family: MIT - size: 25378221 - timestamp: 1726657153171 + size: 25685624 + timestamp: 1731917625548 - kind: conda name: nodejs - version: 22.9.0 + version: 22.11.0 build: h8374285_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.9.0-h8374285_0.conda - sha256: ff2186a51d389c18423109af3abf6377d4ef5b1370a81ee5f8fb2e036d79cf4f - md5: 6a9739c1ce3f9714b705a655872b5a4d + url: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + sha256: 6368bdcbf057da1e4be5f457dde2a2fabbb389a5185c571d4175f06529340bbb + md5: 99f27727173302a7172ff76dabe8596c depends: - __glibc >=2.28,<3.0.a0 - icu >=75.1,<76.0a0 - libgcc >=13 - libstdcxx >=13 - - libuv >=1.48.0,<2.0a0 + - libuv >=1.49.2,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - zlib license: MIT license_family: MIT - size: 21653106 - timestamp: 1726665120657 + size: 21847436 + timestamp: 1731925818400 - kind: conda name: nodejs - version: 22.9.0 - build: hd71786a_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.9.0-hd71786a_0.conda - sha256: 072cc60a3bad30e5dc4a0f9773d655b1ccd73766ca56d7b0eba54f07dc65c096 - md5: 0302658eb45c23a7438415bf0ba7541d + version: 22.11.0 + build: haa7c7e9_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + sha256: 304a2bf558f262a8e29f6b6abcc5fabde3b31d903bc699381b1b57f41e7c34d0 + md5: 34da600f0addaef949d28953e23482b4 depends: - __osx >=11.0 - icu >=75.1,<76.0a0 - libcxx >=18 - libuv >=1.49.2,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 - zlib license: MIT license_family: MIT - size: 15520235 - timestamp: 1726665546324 + size: 14965601 + timestamp: 1731936621771 - kind: conda name: nodejs - version: 22.9.0 + version: 22.11.0 build: hf235a45_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.9.0-hf235a45_0.conda - sha256: 1bc6445b7ecb3bff478d5a11eb3504e45eb5a3cdde24c6ec7339f80c193d24c8 - md5: 40255c9ffb722d614b02ca7aaee6abcb + url: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + sha256: b90c26267d12d5dd97ef09b4393235be3a3cbe5eef07c5a2ada4230623f0b0b1 + md5: 64cd0bde7dffac5baa4d9fb0ac3ae713 depends: - __glibc >=2.28,<3.0.a0 - icu >=75.1,<76.0a0 - libgcc >=13 - libstdcxx >=13 - - libuv >=1.48.0,<2.0a0 + - libuv >=1.49.2,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.0,<4.0a0 + - zlib + license: MIT + license_family: MIT + size: 21336234 + timestamp: 1731921762943 +- kind: conda + name: nodejs + version: 22.11.0 + build: hf4117ec_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/nodejs-22.11.0-hf4117ec_0.conda + sha256: d86709c3c2e2a58331b1642bab314b22d030e3d8738e19429f967d3ab0314604 + md5: 076c12f64b455b71958dfdfdcd6b6d96 + depends: + - __osx >=10.15 + - icu >=75.1,<76.0a0 + - libcxx >=18 + - libuv >=1.49.2,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 - zlib license: MIT license_family: MIT - size: 21198038 - timestamp: 1726661026112 + size: 15707721 + timestamp: 1731928765541 - kind: conda name: openssl - version: 3.3.2 + version: 3.4.0 build: h2466b09_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.2-h2466b09_0.conda - sha256: a45c42f3577294e22ac39ddb6ef5a64fd5322e8a6725afefbf4f2b4109340bf9 - md5: 1dc86753693df5e3326bb8a85b74c589 + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + sha256: e03045a0837e01ff5c75e9273a572553e7522290799807f918c917a9826a6484 + md5: d0d805d9b5524a14efb51b3bff965e83 depends: - ca-certificates - ucrt >=10.0.20348.0 @@ -5230,69 +5200,69 @@ packages: - vc14_runtime >=14.29.30139 license: Apache-2.0 license_family: Apache - size: 8396053 - timestamp: 1725412961673 + size: 8491156 + timestamp: 1731379715927 - kind: conda name: openssl - version: 3.3.2 - build: h8359307_0 + version: 3.4.0 + build: h39f12f2_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda - sha256: 940fa01c4dc6152158fe8943e05e55a1544cab639df0994e3b35937839e4f4d1 - md5: 1773ebccdc13ec603356e8ff1db9e958 + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + sha256: bd1d58ced46e75efa3b842c61642fd12272c69e9fe4d7261078bc082153a1d53 + md5: df307bbc703324722df0293c9ca2e418 depends: - __osx >=11.0 - ca-certificates license: Apache-2.0 license_family: Apache - size: 2882450 - timestamp: 1725410638874 + size: 2935176 + timestamp: 1731377561525 - kind: conda name: openssl - version: 3.3.2 + version: 3.4.0 build: h86ecc28_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.3.2-h86ecc28_0.conda - sha256: 4669d26dbf81e4d72093d8260f55d19d57204d82b1d9440be83d11d313b5990c - md5: 9e1e477b3f8ee3789297883faffa708b + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + sha256: 64dbbdd6384fa56338124783197f7ad9048c989a02264bcd2e07355e3570f113 + md5: b2f202b5bddafac824eb610b65dde98f depends: - ca-certificates - libgcc >=13 license: Apache-2.0 license_family: Apache - size: 3428083 - timestamp: 1725412266679 + size: 3474825 + timestamp: 1731379200886 - kind: conda name: openssl - version: 3.3.2 + version: 3.4.0 build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda - sha256: cee91036686419f6dd6086902acf7142b4916e1c4ba042e9ca23e151da012b6d - md5: 4d638782050ab6faa27275bed57e9b4e + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + sha256: 814b9dff1847b132c676ee6cc1a8cb2d427320779b93e1b6d76552275c128705 + md5: 23cc74f77eb99315c0360ec3533147a9 depends: - __glibc >=2.17,<3.0.a0 - ca-certificates - libgcc >=13 license: Apache-2.0 license_family: Apache - size: 2891789 - timestamp: 1725410790053 + size: 2947466 + timestamp: 1731377666602 - kind: conda name: openssl - version: 3.3.2 - build: hd23fc13_0 + version: 3.4.0 + build: hd471939_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.2-hd23fc13_0.conda - sha256: 2b75d4b56e45992adf172b158143742daeb316c35274b36f385ccb6644e93268 - md5: 2ff47134c8e292868a4609519b1ea3b6 + url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hd471939_0.conda + sha256: ba7e068ed469d6625e32ae60e6ad893e655b6695280dadf7e065ed0b6f3b885c + md5: ec99d2ce0b3033a75cbad01bbc7c5b71 depends: - __osx >=10.13 - ca-certificates license: Apache-2.0 license_family: Apache - size: 2544654 - timestamp: 1725410973572 + size: 2590683 + timestamp: 1731378034404 - kind: conda name: packaging version: '24.2' @@ -5603,6 +5573,21 @@ packages: license_family: BSD size: 9906 timestamp: 1610372835205 +- kind: conda + name: pycosat + version: 0.6.6 + build: py311h2725bcf_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.6-py311h2725bcf_0.conda + sha256: 1899b863919c949d38634dbdaec7af2ddb52326a496dd68751ab4f4fe0e8f36a + md5: 47b4652f8a7e6222786663c757815dd5 + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + size: 88031 + timestamp: 1696356171531 - kind: conda name: pycosat version: 0.6.6 @@ -5619,21 +5604,6 @@ packages: license_family: MIT size: 86424 timestamp: 1696356256622 -- kind: conda - name: pycosat - version: 0.6.6 - build: py312h104f124_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.6-py312h104f124_0.conda - sha256: b37afbc13d4216dde3a613ded3a1688adae3d74ab98ea55cc6914b39d2417d55 - md5: 106c2d37708757f4c23ff1f487bf5a3f - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - size: 89221 - timestamp: 1696356180943 - kind: conda name: pycosat version: 0.6.6 @@ -5735,6 +5705,33 @@ packages: license_family: BSD size: 18981 timestamp: 1661604969727 +- kind: conda + name: python + version: 3.11.10 + build: ha513fb2_3_cpython + build_number: 3 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.10-ha513fb2_3_cpython.conda + sha256: 670ba83b2aab2204f3254ed47ac0e4b8cad82478e5821727aeab69a2912aa1a0 + md5: 1a88c32ab9e997380ba1f9306624f805 + depends: + - __osx >=10.13 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 15442415 + timestamp: 1729043110107 - kind: conda name: python version: 3.12.7 @@ -5791,32 +5788,6 @@ packages: license: Python-2.0 size: 12975439 timestamp: 1728057819519 -- kind: conda - name: python - version: 3.12.7 - build: h8f8b54e_0_cpython - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.7-h8f8b54e_0_cpython.conda - sha256: 28172d94f7193c5075c0fc3c4b1bb617c512ffc991f4e2af0dbb6a2916872b76 - md5: 7f81191b1ca1113e694e90e15c27a12f - depends: - - __osx >=10.13 - - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.3,<3.0a0 - - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.1,<4.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.3.2,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.12.* *_cp312 - license: Python-2.0 - size: 13761315 - timestamp: 1728058247482 - kind: conda name: python version: 3.12.7 @@ -6014,6 +5985,21 @@ packages: license: Python-2.0 size: 16641177 timestamp: 1728417810202 +- kind: conda + name: python_abi + version: '3.11' + build: 5_cp311 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-5_cp311.conda + sha256: 9b092850a268aca99600b724bae849f51209ecd5628e609b4699debc59ff1945 + md5: e6d62858c06df0be0e6255c753d74787 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6303 + timestamp: 1723823062672 - kind: conda name: python_abi version: '3.12' @@ -6044,21 +6030,6 @@ packages: license_family: BSD size: 6329 timestamp: 1723823366253 -- kind: conda - name: python_abi - version: '3.12' - build: 5_cp312 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda - sha256: 4da26c7508d5bc5d8621e84dc510284402239df56aab3587a7d217de9d3c806d - md5: c34dd4920e0addf7cfcc725809f25d8e - constrains: - - python 3.12.* *_cpython - license: BSD-3-Clause - license_family: BSD - size: 6312 - timestamp: 1723823137004 - kind: conda name: python_abi version: '3.12' @@ -6164,6 +6135,24 @@ packages: license_family: BSD size: 6716 timestamp: 1723823166911 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py311h3336109_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py311h3336109_1.conda + sha256: d8f4513c53a7c0be9f1cdb9d1af31ac85cf8a6f0e4194715e36e915c03104662 + md5: b0132bec7165a53403dcc393ff761a9e + depends: + - __osx >=10.13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 193941 + timestamp: 1725456465818 - kind: conda name: pyyaml version: 6.0.2 @@ -6241,24 +6230,6 @@ packages: license_family: MIT size: 199141 timestamp: 1725456356043 -- kind: conda - name: pyyaml - version: 6.0.2 - build: py312hb553811_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.2-py312hb553811_1.conda - sha256: 455ce40588b35df654cb089d29cc3f0d3c78365924ffdfc6ee93dba80cea5f33 - md5: 66514594817d51c78db7109a23ad322f - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - size: 189347 - timestamp: 1725456465705 - kind: conda name: pyyaml version: 6.0.2 @@ -6594,6 +6565,24 @@ packages: license_family: APACHE size: 58810 timestamp: 1717057174842 +- kind: conda + name: ruamel.yaml + version: 0.18.6 + build: py311h1314207_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py311h1314207_1.conda + sha256: 8ada2127c62bbaa185c3a9f21c412420a5a05b02b5b7418f18b3e6b8cddaaf0a + md5: d92a2578f6a0eb321c0f549bc514728b + depends: + - __osx >=10.13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ruamel.yaml.clib >=0.1.2 + license: MIT + license_family: MIT + size: 274075 + timestamp: 1728765172428 - kind: conda name: ruamel.yaml version: 0.18.6 @@ -6613,24 +6602,6 @@ packages: license_family: MIT size: 268321 timestamp: 1728765161983 -- kind: conda - name: ruamel.yaml - version: 0.18.6 - build: py312h3d0f464_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py312h3d0f464_1.conda - sha256: 6a7fba898720a81e2f19ec2870fc43ec2fc568dc71974390a91285d0bb75c476 - md5: 54f228329acc295c90a1961871439f58 - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ruamel.yaml.clib >=0.1.2 - license: MIT - license_family: MIT - size: 266986 - timestamp: 1728765127326 - kind: conda name: ruamel.yaml version: 0.18.6 @@ -6784,6 +6755,23 @@ packages: license_family: MIT size: 270860 timestamp: 1728765152853 +- kind: conda + name: ruamel.yaml.clib + version: 0.2.8 + build: py311h1314207_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py311h1314207_1.conda + sha256: 2224456be9be9dad8b06e6daf01d9f81baa51b690de982cf7777dd559b600530 + md5: 32492fd2af5579535b7caab695f73749 + depends: + - __osx >=10.13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + size: 120842 + timestamp: 1728724629512 - kind: conda name: ruamel.yaml.clib version: 0.2.8 @@ -6802,23 +6790,6 @@ packages: license_family: MIT size: 117121 timestamp: 1728724705098 -- kind: conda - name: ruamel.yaml.clib - version: 0.2.8 - build: py312h3d0f464_1 - build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py312h3d0f464_1.conda - sha256: b5ddb73db7ca3d4d8780af1761efb97a5f555ae489f287a91367624d4425f498 - md5: f4c0464f98dabcd65064e89991c3c9c2 - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - size: 122331 - timestamp: 1728724619287 - kind: conda name: ruamel.yaml.clib version: 0.2.8 @@ -7130,19 +7101,19 @@ packages: timestamp: 1726504171219 - kind: conda name: setuptools - version: 75.3.0 - build: pyhd8ed1ab_0 + version: 75.6.0 + build: pyhff2d567_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.3.0-pyhd8ed1ab_0.conda - sha256: a36d020b9f32fc3f1a6488a1c4a9c13988c6468faf6895bf30ca69521a61230e - md5: 2ce9825396daf72baabaade36cee16da + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + sha256: eeec4645f70ce0ed03348397dced9d218a650a42df98592419af61d2689163ed + md5: 68d7d406366926b09a6a023e3d0f71d7 depends: - python >=3.9 license: MIT license_family: MIT - size: 779561 - timestamp: 1730382173961 + size: 774304 + timestamp: 1732216189406 - kind: conda name: sysroot_linux-64 version: '2.17' @@ -7347,34 +7318,34 @@ packages: timestamp: 1699202167581 - kind: conda name: tomli - version: 2.0.2 - build: pyhd8ed1ab_0 + version: 2.1.0 + build: pyhff2d567_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.2-pyhd8ed1ab_0.conda - sha256: 5e742ba856168b606ac3c814d247657b1c33b8042371f1a08000bdc5075bc0cc - md5: e977934e00b355ff55ed154904044727 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + sha256: 354b8a64d4f3311179d85aefc529ca201a36afc1af090d0010c46be7b79f9a47 + md5: 3fa1089b4722df3a900135925f4519d9 depends: - python >=3.9 license: MIT license_family: MIT - size: 18203 - timestamp: 1727974767524 + size: 18741 + timestamp: 1731426862834 - kind: conda name: tqdm - version: 4.66.6 + version: 4.67.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.6-pyhd8ed1ab_0.conda - sha256: 32c39424090a8cafe7994891a816580b3bd253eb4d4f5473bdefcf6a81ebc061 - md5: 92718e1f892e1e4623dcc59b9f9c4e55 + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_0.conda + sha256: 5673b7104350a6998cb86cccf1d0058217d86950e8d6c927d8530606028edb1d + md5: 4085c9db273a148e149c03627350e22c depends: - colorama - python >=3.7 license: MPL-2.0 or MIT - size: 89367 - timestamp: 1730145312554 + size: 89484 + timestamp: 1732497312317 - kind: conda name: truststore version: 0.10.0 @@ -7392,44 +7363,44 @@ packages: timestamp: 1729762456098 - kind: conda name: typos - version: 1.27.0 + version: 1.27.3 build: h0716509_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.0-h0716509_0.conda - sha256: b080c2119f5852620d9abc1280ce84259570986b97f4ef6195cb00bd2feec356 - md5: d2316bad872119ddca204701f82e5a0f + url: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.27.3-h0716509_0.conda + sha256: c90def76424d9112e6f3ff0022417b6af8a0dc75c7423aff3a0b63e167a0c4de + md5: 4a9624d5f5f3af36d6e12c19d6687ead depends: - __osx >=11.0 constrains: - __osx >=11.0 license: MIT license_family: MIT - size: 2696811 - timestamp: 1730501412459 + size: 2690663 + timestamp: 1731096387328 - kind: conda name: typos - version: 1.27.0 + version: 1.27.3 build: h371c88c_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.0-h371c88c_0.conda - sha256: 1ed548778a4e5923a2f2051a6a99f724517256742504eb33f914c544fb1f89fa - md5: f4a43c777bdc20a24b5cca99a3254fbc + url: https://conda.anaconda.org/conda-forge/osx-64/typos-1.27.3-h371c88c_0.conda + sha256: 595bc4a13679a58915bde0151cb610698945ab86ad58d464d4007effd22ad912 + md5: 1865a469ac9720633b67968c366b664d depends: - __osx >=10.13 constrains: - __osx >=10.13 license: MIT license_family: MIT - size: 2718257 - timestamp: 1730501734852 + size: 2722231 + timestamp: 1731096331455 - kind: conda name: typos - version: 1.27.0 + version: 1.27.3 build: h8fae777_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.0-h8fae777_0.conda - sha256: 426387917085b23e964d93edd4ef719a2e7a544f8c9819d921a2ca14ca2af900 - md5: 709f92a46904b8453aaf24e732de7e6b + url: https://conda.anaconda.org/conda-forge/linux-64/typos-1.27.3-h8fae777_0.conda + sha256: 68120e46684994ead963131c0991e361dcd5a1b2e7e56b0691f98d3b27b90a23 + md5: aed08ccad36c904173b72f2516a1114a depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 @@ -7437,40 +7408,40 @@ packages: - __glibc >=2.17 license: MIT license_family: MIT - size: 3165364 - timestamp: 1730501459313 + size: 3167460 + timestamp: 1731096056773 - kind: conda name: typos - version: 1.27.0 + version: 1.27.3 build: ha073cba_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.0-ha073cba_0.conda - sha256: 4008dddf71f7ad273e389471d42650e95ab132ae96dcafcd68b0e05643552b1b - md5: c5015683b75d81db82affc1a7204ff77 + url: https://conda.anaconda.org/conda-forge/win-64/typos-1.27.3-ha073cba_0.conda + sha256: 6f2925efb394f6959c3ed301513a1df622b36630f7cf389c1630645e5b02599f + md5: a7a5bafcff266a5aa443b544fb22d57c depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 2302597 - timestamp: 1730501624720 + size: 2301862 + timestamp: 1731096674707 - kind: conda name: typos - version: 1.27.0 + version: 1.27.3 build: ha3529ed_0 subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.0-ha3529ed_0.conda - sha256: 223f5f9e9ed385a435e62bc6e13957a40bf5ab2333ff91818b3fab5062edb806 - md5: 3891ac2f05d1bbf503984af0ba6f44bb + url: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.27.3-ha3529ed_0.conda + sha256: 7dc17c314d257e63763c227e998225ebaaeb031fa2fd63ec7097205e348b7226 + md5: 9f35e9582ea42fedbc86a407a16d479c depends: - libgcc >=13 constrains: - __glibc >=2.17 license: MIT license_family: MIT - size: 3073162 - timestamp: 1730501170707 + size: 3075699 + timestamp: 1731095963553 - kind: conda name: tzdata version: 2024b @@ -7497,6 +7468,25 @@ packages: license: LicenseRef-MicrosoftWindowsSDK10 size: 559710 timestamp: 1728377334097 +- kind: conda + name: ukkonen + version: 1.0.1 + build: py311hf2f7c97_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py311hf2f7c97_5.conda + sha256: d1aaec2edf78eeb79407d907679a78ecc0c97f7390046a45d561e22b348de553 + md5: 1b576e5588d90b82f96e3e21490b085d + depends: + - __osx >=10.13 + - cffi + - libcxx >=17 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MIT + license_family: MIT + size: 13060 + timestamp: 1725784205661 - kind: conda name: ukkonen version: 1.0.1 @@ -7557,25 +7547,6 @@ packages: license_family: MIT size: 13904 timestamp: 1725784191021 -- kind: conda - name: ukkonen - version: 1.0.1 - build: py312hc5c4d5f_5 - build_number: 5 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hc5c4d5f_5.conda - sha256: f6433143294c1ca52410bf8bbca6029a04f2061588d32e6d2b67c7fd886bc4e0 - md5: f270aa502d8817e9cb3eb33541f78418 - depends: - - __osx >=10.13 - - cffi - - libcxx >=17 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - size: 13031 - timestamp: 1725784199719 - kind: conda name: ukkonen version: 1.0.1 @@ -7717,37 +7688,37 @@ packages: - kind: conda name: vc version: '14.3' - build: ha32ba9b_22 - build_number: 22 + build: ha32ba9b_23 + build_number: 23 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_22.conda - sha256: 2a47c5bd8bec045959afada7063feacd074ad66b170c1ea92dd139b389fcf8fd - md5: 311c9ba1dfdd2895a8cb08346ff26259 + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + sha256: 986ddaf8feec2904eac9535a7ddb7acda1a1dfb9482088fdb8129f1595181663 + md5: 7c10ec3158d1eb4ddff7007c9101adb0 depends: - vc14_runtime >=14.38.33135 track_features: - vc14 license: BSD-3-Clause license_family: BSD - size: 17447 - timestamp: 1728400826998 + size: 17479 + timestamp: 1731710827215 - kind: conda name: vc14_runtime - version: 14.40.33810 - build: hcc2c482_22 - build_number: 22 + version: 14.42.34433 + build: he29a5d6_23 + build_number: 23 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.40.33810-hcc2c482_22.conda - sha256: 4c669c65007f88a7cdd560192f7e6d5679d191ac71610db724e18b2410964d64 - md5: ce23a4b980ee0556a118ed96550ff3f3 + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + sha256: c483b090c4251a260aba6ff3e83a307bcfb5fb24ad7ced872ab5d02971bd3a49 + md5: 32b37d0cfa80da34548501cdc913a832 depends: - ucrt >=10.0.20348.0 constrains: - - vs2015_runtime 14.40.33810.* *_22 + - vs2015_runtime 14.42.34433.* *_23 license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime license_family: Proprietary - size: 750719 - timestamp: 1728401055788 + size: 754247 + timestamp: 1731710681163 - kind: conda name: vhs version: 0.7.2 @@ -7830,19 +7801,19 @@ packages: timestamp: 1730204927840 - kind: conda name: vs2015_runtime - version: 14.40.33810 - build: h3bf8584_22 - build_number: 22 + version: 14.42.34433 + build: hdffcdeb_23 + build_number: 23 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.40.33810-h3bf8584_22.conda - sha256: 80aa9932203d65a96f817b8be4fafc176fb2b3fe6cf6899ede678b8f0317fbff - md5: 8c6b061d44cafdfc8e8c6eb5f100caf0 + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + sha256: 568ce8151eaae256f1cef752fc78651ad7a86ff05153cc7a4740b52ae6536118 + md5: 5c176975ca2b8366abad3c97b3cd1e83 depends: - vc14_runtime >=14.42.34433 license: BSD-3-Clause license_family: BSD - size: 17453 - timestamp: 1728400827536 + size: 17572 + timestamp: 1731710685291 - kind: conda name: win_inet_pton version: 1.1.0 @@ -8135,44 +8106,44 @@ packages: - kind: conda name: zstandard version: 0.23.0 - build: py312h15fbf35_1 + build: py311hdf6fcd6_1 build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda - sha256: d00ca25c1e28fd31199b26a94f8c96574475704a825d244d7a6351ad3745eeeb - md5: a4cde595509a7ad9c13b1a3809bcfe51 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py311hdf6fcd6_1.conda + sha256: d9bf977b620750049eb60fffca299a701342a2df59bcc2586a79b2f7c5783fa1 + md5: 4fc42d6f85a21b09ee6477f456554df3 depends: - - __osx >=11.0 + - __osx >=10.13 - cffi >=1.11 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 330788 - timestamp: 1725305806565 + size: 411350 + timestamp: 1725305723486 - kind: conda name: zstandard version: 0.23.0 - build: py312h7122b0e_1 + build: py312h15fbf35_1 build_number: 1 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h7122b0e_1.conda - sha256: 2685dde42478fae0780fba5d1f8a06896a676ae105f215d32c9f9e76f3c6d8fd - md5: bd132ba98f3fc0a6067f355f8efe4cb6 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + sha256: d00ca25c1e28fd31199b26a94f8c96574475704a825d244d7a6351ad3745eeeb + md5: a4cde595509a7ad9c13b1a3809bcfe51 depends: - - __osx >=10.13 + - __osx >=11.0 - cffi >=1.11 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - zstd >=1.5.6,<1.5.7.0a0 - zstd >=1.5.6,<1.6.0a0 license: BSD-3-Clause license_family: BSD - size: 410873 - timestamp: 1725305688706 + size: 330788 + timestamp: 1725305806565 - kind: conda name: zstandard version: 0.23.0 diff --git a/src/header.ps1 b/src/header.ps1 index e628cc6..eb442e7 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -10,7 +10,6 @@ $PREFIX = "" $VERBOSE = $false $QUIET = $false $UNPACK_SHELL = "" - $USAGE = @" usage: $($MyInvocation.MyCommand.Name) [options] @@ -64,7 +63,7 @@ for ($i = 0; $i -lt $lines.Count; $i++) { } if (-not $headerLine -or -not $archiveLine) { - Write-Error "Markers __END_HEADER__ or __END_ARCHIVE__ not found." + Write-Error "ERROR: Markers __END_HEADER__ or __END_ARCHIVE__ not found." exit 1 } diff --git a/src/header.sh b/src/header.sh index 0874139..4147310 100644 --- a/src/header.sh +++ b/src/header.sh @@ -3,7 +3,6 @@ set -euo pipefail TEMPDIR="$(mktemp -d)" PREFIX="" -FORCE=0 VERBOSE=0 QUIET=0 UNPACK_SHELL="" @@ -13,7 +12,6 @@ usage: $0 [options] Unpacks an environment packed using pixi-pack --f, --force No error if environment already exists -h, --help Print this help message and exit -o, --output-directory Where to unpack the environment -s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] @@ -27,10 +25,6 @@ while [[ $# -gt 0 ]]; do echo "$USAGE" exit 0 ;; - -f) - FORCE=1 - shift - ;; -v) VERBOSE=1 shift @@ -71,31 +65,16 @@ while [[ $# -gt 0 ]]; do esac done -# Validate shell option if provided -if [ -n "$UNPACK_SHELL" ]; then - case "$UNPACK_SHELL" in - bash|zsh|xonsh|cmd|powershell|fish|nushell) - ;; - *) - echo "Invalid shell option: $UNPACK_SHELL" >&2 - echo "Valid options are: bash, zsh, xonsh, cmd, powershell, fish, nushell" >&2 - exit 1 - ;; - esac -fi - -if [ "$FORCE" = "0" ] && [ -n "$PREFIX" ] && [ -e "$PREFIX" ]; then - echo "ERROR: File or directory already exists: '$PREFIX'" >&2 - echo "If you want to update an existing environment, use the -f option." >&2 - exit 1 -fi +archive_begin=$(grep -anm 1 "^@@END_HEADER@@" "$0" | sed 's/:.*//') +archive_end=$(grep -anm 1 "^@@END_ARCHIVE@@" "$0" | sed 's/:.*//') -if [ "$FORCE" = "1" ] && [ -n "$PREFIX" ] && [ -e "$PREFIX" ]; then - rm -rf "$PREFIX" +if [ -z "$archive_begin" ] || [ -z "$archive_end" ]; then + echo "ERROR: Markers @@END_HEADER@@ or @@END_ARCHIVE@@ not found." >&2 + exit 1 fi -archive_begin=$(($(grep -anm 1 "^@@END_HEADER@@" "$0" | sed 's/:.*//') + 2)) -archive_end=$(($(grep -anm 1 "^@@END_ARCHIVE@@" "$0" | sed 's/:.*//') - 1)) +archive_begin=$((archive_begin + 2)) +archive_end=$((archive_end - 1)) echo "Unpacking payload ..." echo $(tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1))) > "$TEMPDIR/archive_temp" @@ -105,6 +84,7 @@ pixi_pack_start=$(($archive_end + 2)) tail -n +$pixi_pack_start "$0" | base64 -d > "$TEMPDIR/pixi-pack" chmod +x "$TEMPDIR/pixi-pack" + if [ "$VERBOSE" = "1" ] && [ "$QUIET" = "1" ]; then printf "ERROR: Verbose and quiet options cannot be used together.\n" >&2 exit 1 diff --git a/src/pack.rs b/src/pack.rs index 8784bc2..d522ce7 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -321,18 +321,10 @@ async fn archive_directory( } } -async fn create_tarball(input_dir: &Path, archive_target: &Path) -> Result<()> { - let outfile = fs::File::create(archive_target).await.map_err(|e| { - anyhow!( - "could not create archive file at {}: {}", - archive_target.display(), - e - ) - })?; - - let writer = tokio::io::BufWriter::new(outfile); - let mut archive = Builder::new(writer); - +async fn write_archive(mut archive: Builder, input_dir: &Path) -> Result +where + T: tokio::io::AsyncWrite + Unpin + Send, +{ archive .append_dir_all(".", input_dir) .await @@ -348,6 +340,23 @@ async fn create_tarball(input_dir: &Path, archive_target: &Path) -> Result<()> { .await .map_err(|e| anyhow!("could not flush output: {}", e))?; + Ok(compressor) +} + +async fn create_tarball(input_dir: &Path, archive_target: &Path) -> Result<()> { + let outfile = fs::File::create(archive_target).await.map_err(|e| { + anyhow!( + "could not create archive file at {}: {}", + archive_target.display(), + e + ) + })?; + + let writer = tokio::io::BufWriter::new(outfile); + let archive = Builder::new(writer); + + write_archive(archive, input_dir).await?; + Ok(()) } @@ -356,23 +365,9 @@ async fn create_self_extracting_executable( target: &Path, platform: Platform, ) -> Result<()> { - let tarbytes = Vec::new(); - let mut archive = Builder::new(tarbytes); - - archive - .append_dir_all(".", input_dir) - .await - .map_err(|e| anyhow!("could not append directory to archive: {}", e))?; - - let mut compressor = archive - .into_inner() - .await - .map_err(|e| anyhow!("could not finish writing archive: {}", e))?; + let archive = Builder::new(Vec::new()); - compressor - .shutdown() - .await - .map_err(|e| anyhow!("could not flush output: {}", e))?; + let compressor = write_archive(archive, input_dir).await?; let windows_header = include_str!("header.ps1"); let unix_header = include_str!("header.sh"); @@ -409,7 +404,10 @@ async fn create_self_extracting_executable( let client = reqwest::Client::new(); let response = client.get(&url).send().await?; if !response.status().is_success() { - return Err(anyhow!("Failed to download pixi-pack executable")); + return Err(anyhow!( + "Failed to download pixi-pack executable. Status: {}", + response.status() + )); } let total_size = response diff --git a/tests/integration_test.rs b/tests/integration_test.rs index f5f460b..9e723f2 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -401,7 +401,6 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& assert_eq!(pack_file.extension().unwrap(), "sh"); let output = Command::new("sh") .arg(&pack_file) - .arg("-f") .arg("-o") .arg(options.output_dir.path()) .output() @@ -418,7 +417,6 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& let output = Command::new("powershell") .arg("-File") .arg(&pack_file) - .arg("-f") .arg("-o") .arg(options.output_dir.path()) .output() From 738dafcf3ffdb58f06c06ce9521a730fef24fe42 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 17:34:07 -0500 Subject: [PATCH 35/83] add reproducible test for executable script --- tests/integration_test.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 9e723f2..3be0c57 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -311,6 +311,37 @@ async fn test_reproducible_shasum(options: Options) { let output_file1 = options.output_dir.path().join("environment1.tar"); let output_file2 = options.output_dir.path().join("environment2.tar"); + // First pack. + pack_options.output_file = output_file1.clone(); + let pack_result = pixi_pack::pack(pack_options.clone()).await; + assert!(pack_result.is_ok(), "{:?}", pack_result); + + // Second pack. + pack_options.output_file = output_file2.clone(); + let pack_result = pixi_pack::pack(pack_options.clone()).await; + assert!(pack_result.is_ok(), "{:?}", pack_result); + + assert_eq!( + sha256_digest_bytes(&output_file1), + sha256_digest_bytes(&output_file2) + ); + + // Test with create executable + pack_options.create_executable = true; + + #[cfg(target_os = "windows")] + let output_file1 = options.output_dir.path().join("environment.ps1"); + + #[cfg(any(target_os = "linux", target_os = "macos"))] + let output_file1 = options.output_dir.path().join("environment.sh"); + + #[cfg(target_os = "windows")] + let output_file2 = options.output_dir.path().join("environment.ps1"); + + #[cfg(any(target_os = "linux", target_os = "macos"))] + let output_file2 = options.output_dir.path().join("environment.sh"); + + // First pack. pack_options.output_file = output_file1.clone(); let pack_result = pixi_pack::pack(pack_options.clone()).await; From 094e2b2315619556a15a6b8072139351c98ba901 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 17:34:41 -0500 Subject: [PATCH 36/83] whitespace fix --- tests/integration_test.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 3be0c57..03dd1b9 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -337,10 +337,9 @@ async fn test_reproducible_shasum(options: Options) { #[cfg(target_os = "windows")] let output_file2 = options.output_dir.path().join("environment.ps1"); - + #[cfg(any(target_os = "linux", target_os = "macos"))] let output_file2 = options.output_dir.path().join("environment.sh"); - // First pack. pack_options.output_file = output_file1.clone(); From 11ffbdf09b41d98b43d27118c44e5ecaaa673ceb Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 18:22:22 -0500 Subject: [PATCH 37/83] Change output_file to optional and add default values --- src/main.rs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index e7f7251..1de5cb0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -51,8 +51,8 @@ enum Commands { manifest_path: PathBuf, /// Output file to write the pack to (will be an archive) - #[arg(short, long, default_value = cwd().join("environment").into_os_string())] - output_file: PathBuf, + #[arg(short, long)] + output_file: Option, /// Inject an additional conda package into the final prefix #[arg(short, long, num_args(0..))] @@ -91,6 +91,18 @@ enum Commands { }, } +fn default_output_file(create_executable: bool) -> PathBuf { + if create_executable { + if cfg!(target_os = "windows") { + cwd().join("environment.ps1") + } else { + cwd().join("environment.sh") + } + } else { + cwd().join("environment.tar") + } +} + /* -------------------------------------------- MAIN ------------------------------------------- */ /// The main entrypoint for the pixi-pack CLI. @@ -115,17 +127,15 @@ async fn main() -> Result<()> { ignore_pypi_errors, create_executable, } => { - let output_file_with_extension = if create_executable { - output_file.with_extension(if platform.is_windows() { "ps1" } else { "sh" }) - } else { - output_file.with_extension("tar") - }; + let output_file = output_file.unwrap_or_else(|| { + default_output_file(create_executable) + }); let options = PackOptions { environment, platform, auth_file, - output_file: output_file_with_extension, + output_file, manifest_path, metadata: PixiPackMetadata { version: DEFAULT_PIXI_PACK_VERSION.to_string(), From 2633cdb57b5340379bde671fad9574bfed7e99db Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 18:22:42 -0500 Subject: [PATCH 38/83] run fmt --- src/main.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 1de5cb0..965b77c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -127,9 +127,7 @@ async fn main() -> Result<()> { ignore_pypi_errors, create_executable, } => { - let output_file = output_file.unwrap_or_else(|| { - default_output_file(create_executable) - }); + let output_file = output_file.unwrap_or_else(|| default_output_file(create_executable)); let options = PackOptions { environment, From 7943ef4f10d9f26b7d5d36a998859e95599ac0bb Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 19:29:13 -0500 Subject: [PATCH 39/83] Use bash by default to test --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 03dd1b9..528eb2f 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -429,7 +429,7 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& #[cfg(any(target_os = "linux", target_os = "macos"))] { assert_eq!(pack_file.extension().unwrap(), "sh"); - let output = Command::new("sh") + let output = Command::new("bash") .arg(&pack_file) .arg("-o") .arg(options.output_dir.path()) From 25e3a81b4f5637210759da9af3cd765700861e32 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Mon, 25 Nov 2024 19:40:42 -0500 Subject: [PATCH 40/83] replace sed with awk --- src/header.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/header.sh b/src/header.sh index 4147310..fe32f01 100644 --- a/src/header.sh +++ b/src/header.sh @@ -65,8 +65,8 @@ while [[ $# -gt 0 ]]; do esac done -archive_begin=$(grep -anm 1 "^@@END_HEADER@@" "$0" | sed 's/:.*//') -archive_end=$(grep -anm 1 "^@@END_ARCHIVE@@" "$0" | sed 's/:.*//') +archive_begin=$(grep -anm 1 "^@@END_HEADER@@" "$0" | awk -F: '{print $1}') +archive_end=$(grep -anm 1 "^@@END_ARCHIVE@@" "$0" | awk -F: '{print $1}') if [ -z "$archive_begin" ] || [ -z "$archive_end" ]; then echo "ERROR: Markers @@END_HEADER@@ or @@END_ARCHIVE@@ not found." >&2 From 1fb28ef564d1d822b402757d86b8435ac3194cec Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 03:31:26 -0500 Subject: [PATCH 41/83] Support two versions of base64 --- src/header.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/header.sh b/src/header.sh index fe32f01..21ee271 100644 --- a/src/header.sh +++ b/src/header.sh @@ -75,14 +75,22 @@ fi archive_begin=$((archive_begin + 2)) archive_end=$((archive_end - 1)) +pixi_pack_start=$(($archive_end + 2)) echo "Unpacking payload ..." echo $(tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1))) > "$TEMPDIR/archive_temp" -base64 -d "$TEMPDIR/archive_temp" > "$TEMPDIR/archive.tar" - -pixi_pack_start=$(($archive_end + 2)) +echo $(tail -n +$pixi_pack_start "$0") > "$TEMPDIR/pixi-pack_temp" + +if [[ $(base64 --version | grep -q 'GNU') ]]; then + # BSD/macOS version + base64 -d -i "$TEMPDIR/archive_temp" -o "$TEMPDIR/archive.tar" + base64 -d -i "$TEMPDIR/pixi-pack_temp" -o "$TEMPDIR/pixi-pack" +else + # GNU version + base64 -d "$TEMPDIR/archive_temp" > "$TEMPDIR/archive.tar" + base64 -d "$TEMPDIR/pixi-pack_temp" > "$TEMPDIR/pixi-pack" +fi -tail -n +$pixi_pack_start "$0" | base64 -d > "$TEMPDIR/pixi-pack" chmod +x "$TEMPDIR/pixi-pack" if [ "$VERBOSE" = "1" ] && [ "$QUIET" = "1" ]; then From 96dcd2b7edb6a335c49a67a3c1ac8fac5eff2c0e Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 03:39:06 -0500 Subject: [PATCH 42/83] Minor fix with base64 --- src/header.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/header.sh b/src/header.sh index 21ee271..fb6e373 100644 --- a/src/header.sh +++ b/src/header.sh @@ -83,8 +83,8 @@ echo $(tail -n +$pixi_pack_start "$0") > "$TEMPDIR/pixi-pack_temp" if [[ $(base64 --version | grep -q 'GNU') ]]; then # BSD/macOS version - base64 -d -i "$TEMPDIR/archive_temp" -o "$TEMPDIR/archive.tar" - base64 -d -i "$TEMPDIR/pixi-pack_temp" -o "$TEMPDIR/pixi-pack" + base64 -d -i "$TEMPDIR/archive_temp" > "$TEMPDIR/archive.tar" + base64 -d -i "$TEMPDIR/pixi-pack_temp" > "$TEMPDIR/pixi-pack" else # GNU version base64 -d "$TEMPDIR/archive_temp" > "$TEMPDIR/archive.tar" From 790a846b43947bcdbc16970e22008aa0892609ec Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:22:23 -0500 Subject: [PATCH 43/83] Update tests/integration_test.rs Co-authored-by: Pavel Zwerschke --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 528eb2f..20f57c3 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -462,7 +462,7 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& #[cfg(target_os = "windows")] let activation_script = options.output_dir.path().join("activate.bat"); - #[cfg(any(target_os = "linux", target_os = "macos"))] + #[cfg(not(target_os = "windows"))] let activation_script = options.output_dir.path().join("activate.sh"); assert!( From 79c6b1def50a55af0b94432ffb759aaddfe2c509 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:22:40 -0500 Subject: [PATCH 44/83] Update tests/integration_test.rs Co-authored-by: Pavel Zwerschke --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 20f57c3..a30fbb9 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -426,7 +426,7 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& pack_file ); - #[cfg(any(target_os = "linux", target_os = "macos"))] + #[cfg(not(target_os = "windows"))] { assert_eq!(pack_file.extension().unwrap(), "sh"); let output = Command::new("bash") From 5520df4a41c22606ee6342e8afdd9702b3e6c587 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:23:05 -0500 Subject: [PATCH 45/83] Update src/header.ps1 Co-authored-by: Pavel Zwerschke --- src/header.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/header.ps1 b/src/header.ps1 index eb442e7..d34ff22 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -15,11 +15,11 @@ usage: $($MyInvocation.MyCommand.Name) [options] Unpacks an environment packed using pixi-pack --h, --help Print this help message and exit +-h, --help Print this help message and exit -o, --output-directory Where to unpack the environment --s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] --v, --verbose Increase logging verbosity --q, --quiet Decrease logging verbosity +-s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] +-v, --verbose Increase logging verbosity +-q, --quiet Decrease logging verbosity "@ # Parse command-line arguments From f0ca3fc052a3d2d12ef81af14d5298b346c87435 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:23:20 -0500 Subject: [PATCH 46/83] Update Cargo.toml Co-authored-by: Pavel Zwerschke --- Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 00fa216..8bcc0e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,6 @@ clap = { version = "4.5.20", features = ["derive", "string"] } clap-verbosity-flag = "2.2.2" futures = "0.3.31" indicatif = "0.17.8" - rattler = { version = "0.28.0", default-features = false } rattler_digest = "1.0.3" rattler_conda_types = "0.29.0" From 9055d0947c7d2cfd3936e06e863313b5a1c450ba Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:25:04 -0500 Subject: [PATCH 47/83] Update src/header.sh Co-authored-by: Pavel Zwerschke --- src/header.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/header.sh b/src/header.sh index fb6e373..772dd28 100644 --- a/src/header.sh +++ b/src/header.sh @@ -12,11 +12,11 @@ usage: $0 [options] Unpacks an environment packed using pixi-pack --h, --help Print this help message and exit +-h, --help Print this help message and exit -o, --output-directory Where to unpack the environment --s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] --v, --verbose Increase logging verbosity --q, --quiet Decrease logging verbosity +-s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] +-v, --verbose Increase logging verbosity +-q, --quiet Decrease logging verbosity " # Parse command-line arguments while [[ $# -gt 0 ]]; do From 7e5655ba9a30d8610f6bcbee8375a4751dc86429 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 12:26:23 -0500 Subject: [PATCH 48/83] removed verbosity and quiet flags check from headers --- src/header.ps1 | 10 ++-------- src/header.sh | 5 ----- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/src/header.ps1 b/src/header.ps1 index d34ff22..83ab257 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -34,17 +34,11 @@ for ($i = 0; $i -lt $args.Count; $i++) { "--verbose" { $VERBOSE = $true } "-q" { $QUIET = $true } "--quiet" { $QUIET = $true } - "-h" { Write-Output $USAGE; exit 2 } - "--help" { Write-Output $USAGE; exit 2 } + "-h" { Write-Output $USAGE; exit 0 } + "--help" { Write-Output $USAGE; exit 0 } } } -# Check if verbose and quiet are both set -if ($VERBOSE -and $QUIET) { - Write-Error "ERROR: Verbose and quiet options cannot be used together." - exit 1 -} - # Extract the archive and pixi-pack executable, and decode them $scriptContent = Get-Content -Raw -Path $MyInvocation.MyCommand.Path $lines = $scriptContent -split "`r?`n" diff --git a/src/header.sh b/src/header.sh index fb6e373..68b627c 100644 --- a/src/header.sh +++ b/src/header.sh @@ -93,11 +93,6 @@ fi chmod +x "$TEMPDIR/pixi-pack" -if [ "$VERBOSE" = "1" ] && [ "$QUIET" = "1" ]; then - printf "ERROR: Verbose and quiet options cannot be used together.\n" >&2 - exit 1 -fi - VERBOSITY_FLAG="" [ "$VERBOSE" = "1" ] && VERBOSITY_FLAG="--verbose" [ "$QUIET" = "1" ] && VERBOSITY_FLAG="--quiet" From bf7134cdcdf772e41e176c6a6ded688ebd1e0ab3 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:28:30 -0500 Subject: [PATCH 49/83] Update src/header.sh Co-authored-by: Pavel Zwerschke --- src/header.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/header.sh b/src/header.sh index 772dd28..06a5d62 100644 --- a/src/header.sh +++ b/src/header.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash set -euo pipefail TEMPDIR="$(mktemp -d)" From 921b7014c592712d78e93e1175d194de79378819 Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:32:45 -0500 Subject: [PATCH 50/83] Update tests/integration_test.rs Co-authored-by: Pavel Zwerschke --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index a30fbb9..9bc96b3 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -332,7 +332,7 @@ async fn test_reproducible_shasum(options: Options) { #[cfg(target_os = "windows")] let output_file1 = options.output_dir.path().join("environment.ps1"); - #[cfg(any(target_os = "linux", target_os = "macos"))] + #[cfg(not(target_os = "windows"))] let output_file1 = options.output_dir.path().join("environment.sh"); #[cfg(target_os = "windows")] From 54f8030e18d2c2c62db9a7867d10c9d8cefb62fa Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:35:06 -0500 Subject: [PATCH 51/83] Update tests/integration_test.rs Co-authored-by: Pavel Zwerschke --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 9bc96b3..80641c6 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -338,7 +338,7 @@ async fn test_reproducible_shasum(options: Options) { #[cfg(target_os = "windows")] let output_file2 = options.output_dir.path().join("environment.ps1"); - #[cfg(any(target_os = "linux", target_os = "macos"))] + #[cfg(not(target_os = "windows"))] let output_file2 = options.output_dir.path().join("environment.sh"); // First pack. From a305e3b730b82b2b769df2623e29593f53ab0dec Mon Sep 17 00:00:00 2001 From: Parsa Bahraminejad Date: Tue, 26 Nov 2024 12:36:18 -0500 Subject: [PATCH 52/83] Update tests/integration_test.rs Co-authored-by: Pavel Zwerschke --- tests/integration_test.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 80641c6..f1f401b 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -407,13 +407,9 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& pack_options.create_executable = true; #[cfg(target_os = "windows")] - { - pack_options.output_file = temp_dir.path().join("environment.ps1"); - } - #[cfg(any(target_os = "linux", target_os = "macos"))] - { - pack_options.output_file = temp_dir.path().join("environment.sh"); - } + pack_options.output_file = temp_dir.path().join("environment.ps1"); + #[cfg(not(target_os = "windows"))] + pack_options.output_file = temp_dir.path().join("environment.sh"); let pack_file = pack_options.output_file.clone(); From 254fa1e114c5fe9f4706ac99e8c2e85bd6cdd718 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 19:16:46 -0500 Subject: [PATCH 53/83] Fix pack_fle default for windows --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index a30fbb9..4504e74 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -34,7 +34,7 @@ fn options( ) -> Options { let output_dir = tempdir().expect("Couldn't create a temp dir for tests"); let pack_file = if create_executable { - output_dir.path().join("environment.sh") + output_dir.path().join(if platform.is_windows() { "environment.ps1"} else { "environment.sh" }) } else { output_dir.path().join("environment.tar") }; From 04d215ee500c50833ba92a9002381ce25d767b88 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 21:23:37 -0500 Subject: [PATCH 54/83] Fixed small ordering issue --- tests/integration_test.rs | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 61d0a07..b73d044 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -407,9 +407,13 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& pack_options.create_executable = true; #[cfg(target_os = "windows")] - pack_options.output_file = temp_dir.path().join("environment.ps1"); + { + pack_options.output_file = temp_dir.path().join("environment.ps1"); + } #[cfg(not(target_os = "windows"))] - pack_options.output_file = temp_dir.path().join("environment.sh"); + { + pack_options.output_file = temp_dir.path().join("environment.sh"); + } let pack_file = pack_options.output_file.clone(); @@ -422,6 +426,18 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& pack_file ); + #[cfg(target_os = "windows")] + { + assert_eq!(pack_file.extension().unwrap(), "ps1"); + let output = Command::new("powershell") + .arg("-File") + .arg(&pack_file) + .arg("-o") + .arg(options.output_dir.path()) + .output() + .expect("Failed to execute packed file for extraction"); + assert!(output.status.success(), "Packed file execution failed"); + } #[cfg(not(target_os = "windows"))] { assert_eq!(pack_file.extension().unwrap(), "sh"); @@ -437,18 +453,6 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& output ); } - #[cfg(target_os = "windows")] - { - assert_eq!(pack_file.extension().unwrap(), "ps1"); - let output = Command::new("powershell") - .arg("-File") - .arg(&pack_file) - .arg("-o") - .arg(options.output_dir.path()) - .output() - .expect("Failed to execute packed file for extraction"); - assert!(output.status.success(), "Packed file execution failed"); - } let env_dir = options.output_dir.path().join("env"); assert!( From 407c1cbac55dcf75d3cb45f7a9566ce0c84ad1c1 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 22:53:13 -0500 Subject: [PATCH 55/83] Assert executable bits exist --- tests/integration_test.rs | 48 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index b73d044..66d18ad 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -34,7 +34,11 @@ fn options( ) -> Options { let output_dir = tempdir().expect("Couldn't create a temp dir for tests"); let pack_file = if create_executable { - output_dir.path().join(if platform.is_windows() { "environment.ps1"} else { "environment.sh" }) + output_dir.path().join(if platform.is_windows() { + "environment.ps1" + } else { + "environment.sh" + }) } else { output_dir.path().join("environment.tar") }; @@ -426,6 +430,42 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& pack_file ); + let pack_file_contents = fs::read_to_string(&pack_file).unwrap(); + + #[cfg(target_os = "windows")] + { + let archive_start = pack_file_contents + .find("__END_HEADER__") + .expect("Could not find header end marker") + + "__END_HEADER__".len(); + let archive_end = pack_file_contents + .find("__END_ARCHIVE__") + .expect("Could not find archive end marker"); + let archive_bits = &pack_file_contents[archive_start..archive_end]; + assert!(!archive_bits.is_empty()); + + let pixi_pack_bits = &pack_file_contents[archive_end + "__END_ARCHIVE__".len()..]; + assert!(!pixi_pack_bits.is_empty()); + } + #[cfg(not(target_os = "windows"))] + { + assert!(pack_file_contents.contains("@@END_HEADER@@")); + assert!(pack_file_contents.contains("@@END_ARCHIVE@@")); + + let archive_start = pack_file_contents + .find("@@END_HEADER@@") + .expect("Could not find header end marker") + + "@@END_HEADER@@".len(); + let archive_end = pack_file_contents + .find("@@END_ARCHIVE@@") + .expect("Could not find archive end marker"); + let archive_bits = &pack_file_contents[archive_start..archive_end]; + assert!(!archive_bits.is_empty()); + + let pixi_pack_bits = &pack_file_contents[archive_end + "@@END_ARCHIVE@@".len()..]; + assert!(!pixi_pack_bits.is_empty()); + } + #[cfg(target_os = "windows")] { assert_eq!(pack_file.extension().unwrap(), "ps1"); @@ -436,7 +476,11 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& .arg(options.output_dir.path()) .output() .expect("Failed to execute packed file for extraction"); - assert!(output.status.success(), "Packed file execution failed"); + assert!( + output.status.success(), + "Packed file execution failed: {:?}", + output + ); } #[cfg(not(target_os = "windows"))] { From 71058b6bd2c370aa43340b00b8755d79af460dde Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 22:55:26 -0500 Subject: [PATCH 56/83] Fix issue with setting the default output file --- src/main.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 965b77c..2dcb5d4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -91,9 +91,9 @@ enum Commands { }, } -fn default_output_file(create_executable: bool) -> PathBuf { +fn default_output_file(platform: Platform, create_executable: bool) -> PathBuf { if create_executable { - if cfg!(target_os = "windows") { + if platform.is_windows() { cwd().join("environment.ps1") } else { cwd().join("environment.sh") @@ -127,7 +127,8 @@ async fn main() -> Result<()> { ignore_pypi_errors, create_executable, } => { - let output_file = output_file.unwrap_or_else(|| default_output_file(create_executable)); + let output_file = + output_file.unwrap_or_else(|| default_output_file(platform, create_executable)); let options = PackOptions { environment, From 1151f6a96d57cafcd85ed6716601382addcd5f28 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 23:10:21 -0500 Subject: [PATCH 57/83] Add permission for the executable on unix along with tests --- src/pack.rs | 8 ++++++++ tests/integration_test.rs | 31 +++++++++++++++++++------------ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/pack.rs b/src/pack.rs index d522ce7..3f8ebd0 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -1,6 +1,7 @@ use std::{ collections::{HashMap, HashSet}, fs::FileTimes, + os::unix::fs::PermissionsExt as _, path::{Path, PathBuf}, sync::Arc, }; @@ -456,6 +457,13 @@ async fn create_self_extracting_executable( .write_all(executable_base64.as_bytes()) .await?; + // Make the executable executable + if !platform.is_windows() { + let mut perms = final_executable.metadata().await?.permissions(); + perms.set_mode(0o755); + final_executable.set_permissions(perms).await?; + } + Ok(()) } diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 66d18ad..3a2033b 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -446,6 +446,20 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& let pixi_pack_bits = &pack_file_contents[archive_end + "__END_ARCHIVE__".len()..]; assert!(!pixi_pack_bits.is_empty()); + + assert_eq!(pack_file.extension().unwrap(), "ps1"); + let output = Command::new("powershell") + .arg("-File") + .arg(&pack_file) + .arg("-o") + .arg(options.output_dir.path()) + .output() + .expect("Failed to execute packed file for extraction"); + assert!( + output.status.success(), + "Packed file execution failed: {:?}", + output + ); } #[cfg(not(target_os = "windows"))] { @@ -464,13 +478,10 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& let pixi_pack_bits = &pack_file_contents[archive_end + "@@END_ARCHIVE@@".len()..]; assert!(!pixi_pack_bits.is_empty()); - } - #[cfg(target_os = "windows")] - { - assert_eq!(pack_file.extension().unwrap(), "ps1"); - let output = Command::new("powershell") - .arg("-File") + assert_eq!(pack_file.extension().unwrap(), "sh"); + + let output = Command::new("bash") .arg(&pack_file) .arg("-o") .arg(options.output_dir.path()) @@ -481,12 +492,8 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& "Packed file execution failed: {:?}", output ); - } - #[cfg(not(target_os = "windows"))] - { - assert_eq!(pack_file.extension().unwrap(), "sh"); - let output = Command::new("bash") - .arg(&pack_file) + + let output = Command::new(&pack_file) .arg("-o") .arg(options.output_dir.path()) .output() From f2dd16d5f92db2e38c8f493ee771f1509725b4c7 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Tue, 26 Nov 2024 23:35:22 -0500 Subject: [PATCH 58/83] Pass args to pixi-pack directly instead of parsing --- src/header.ps1 | 65 ++++++++++------------------------ src/header.sh | 94 +++++++++++--------------------------------------- 2 files changed, 38 insertions(+), 121 deletions(-) diff --git a/src/header.ps1 b/src/header.ps1 index 83ab257..52f27ac 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -6,36 +6,25 @@ function New-TemporaryDirectory { } $TEMPDIR = New-TemporaryDirectory -$PREFIX = "" -$VERBOSE = $false -$QUIET = $false -$UNPACK_SHELL = "" $USAGE = @" -usage: $($MyInvocation.MyCommand.Name) [options] - -Unpacks an environment packed using pixi-pack - --h, --help Print this help message and exit --o, --output-directory Where to unpack the environment --s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] --v, --verbose Increase logging verbosity --q, --quiet Decrease logging verbosity +Usage: $($MyInvocation.MyCommand.Name) [OPTIONS] + +Arguments: + Path to an environment packed using pixi-pack + +Options: + -o, --output-directory Where to unpack the environment. The environment will be unpacked into a subdirectory of this path [default: env] + -e, --env-name Name of the environment [default: env] + -s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] + -v, --verbose Increase logging verbosity + -q, --quiet Decrease logging verbosity + -h, --help Print help "@ -# Parse command-line arguments -$InputArgs = $MyInvocation.UnboundArguments -for ($i = 0; $i -lt $args.Count; $i++) { - switch ($InputArgs[$i]) { - "-o" { $PREFIX = $InputArgs[++$i] } - "--output-directory" { $PREFIX = $InputArgs[++$i] } - "-s" { $UNPACK_SHELL = $InputArgs[++$i] } - "--shell" { $UNPACK_SHELL = $InputArgs[++$i] } - "-v" { $VERBOSE = $true } - "--verbose" { $VERBOSE = $true } - "-q" { $QUIET = $true } - "--quiet" { $QUIET = $true } - "-h" { Write-Output $USAGE; exit 0 } - "--help" { Write-Output $USAGE; exit 0 } +foreach ($arg in $args) { + if ($arg -eq "-h" -or $arg -eq "--help") { + Write-Output $USAGE + exit 0 } } @@ -91,27 +80,9 @@ try { # Build the command with flags $arguments = @("unpack") +$arguments += $args | Join-String -Separator ' ' -# Use $PREFIX for output directory if it is provided -if ($PREFIX) { - $arguments += "--output-directory" - $arguments += $PREFIX -} - -# Handle verbosity/quiet flags -if ($VERBOSE) { - $arguments += "--verbose" -} elseif ($QUIET) { - $arguments += "--quiet" -} - -# Add shell flag if provided -if ($UNPACK_SHELL) { - $arguments += "--shell" - $arguments += $UNPACK_SHELL -} - -# Finally, add the path to the archive +# Add the path to the archive $arguments += $archivePath & $pixiPackPath @arguments diff --git a/src/header.sh b/src/header.sh index 6761bdc..65dbedc 100644 --- a/src/header.sh +++ b/src/header.sh @@ -2,67 +2,27 @@ set -euo pipefail TEMPDIR="$(mktemp -d)" -PREFIX="" -VERBOSE=0 -QUIET=0 -UNPACK_SHELL="" - USAGE=" -usage: $0 [options] - -Unpacks an environment packed using pixi-pack - --h, --help Print this help message and exit --o, --output-directory Where to unpack the environment --s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] --v, --verbose Increase logging verbosity --q, --quiet Decrease logging verbosity +Usage: $0 [OPTIONS] + +Arguments: + Path to an environment packed using pixi-pack + +Options: + -o, --output-directory Where to unpack the environment. The environment will be unpacked into a subdirectory of this path [default: env] + -e, --env-name Name of the environment [default: env] + -s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] + -v, --verbose Increase logging verbosity + -q, --quiet Decrease logging verbosity + -h, --help Print help " -# Parse command-line arguments -while [[ $# -gt 0 ]]; do - case "$1" in - -h) - echo "$USAGE" - exit 0 - ;; - -v) - VERBOSE=1 - shift - ;; - -o) - if [[ -n "$2" && "$2" != -* ]]; then - PREFIX="$2" - shift 2 - else - echo "Option -o requires an argument" >&2 - echo "$USAGE" >&2 - exit 1 - fi - ;; - -s) - if [[ -n "$2" && "$2" != -* ]]; then - UNPACK_SHELL="$2" - shift 2 - else - echo "Option -s requires an argument" >&2 - echo "$USAGE" >&2 - exit 1 - fi - ;; - -q) - QUIET=1 - shift - ;; - -*) - echo "Invalid option: $1" >&2 - echo "$USAGE" >&2 - exit 1 - ;; - *) - # Stop parsing options when encountering a non-option argument - break - ;; - esac + +# Check for help flag +for arg in "$@"; do + if [ "$arg" = "-h" ] || [ "$arg" = "--help" ]; then + echo "$USAGE" + exit 0 + fi done archive_begin=$(grep -anm 1 "^@@END_HEADER@@" "$0" | awk -F: '{print $1}') @@ -93,21 +53,7 @@ fi chmod +x "$TEMPDIR/pixi-pack" -VERBOSITY_FLAG="" -[ "$VERBOSE" = "1" ] && VERBOSITY_FLAG="--verbose" -[ "$QUIET" = "1" ] && VERBOSITY_FLAG="--quiet" - -OUTPUT_DIR_FLAG="" -[ -n "$PREFIX" ] && OUTPUT_DIR_FLAG="--output-directory $PREFIX" - -SHELL_FLAG="" -[ -n "$UNPACK_SHELL" ] && SHELL_FLAG="--shell $UNPACK_SHELL" - -CMD="\"$TEMPDIR/pixi-pack\" unpack $OUTPUT_DIR_FLAG $VERBOSITY_FLAG" -if [ -n "$UNPACK_SHELL" ]; then - CMD="$CMD --shell $UNPACK_SHELL" -fi -CMD="$CMD \"$TEMPDIR/archive.tar\"" +CMD="\"$TEMPDIR/pixi-pack\" unpack $@ \"$TEMPDIR/archive.tar\"" # Execute the command eval "$CMD" From 888f461db5729d77b79524bb982ad1cf92053001 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 03:00:47 -0500 Subject: [PATCH 59/83] set the executable bit only on unix systems --- src/pack.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/pack.rs b/src/pack.rs index 3f8ebd0..b7eaa45 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -1,11 +1,13 @@ use std::{ collections::{HashMap, HashSet}, fs::FileTimes, - os::unix::fs::PermissionsExt as _, path::{Path, PathBuf}, sync::Arc, }; +#[cfg(not(target_os = "windows"))] +use std::os::unix::fs::PermissionsExt as _; + use fxhash::FxHashMap; use indicatif::HumanBytes; use rattler_index::{package_record_from_conda, package_record_from_tar_bz2}; @@ -457,7 +459,8 @@ async fn create_self_extracting_executable( .write_all(executable_base64.as_bytes()) .await?; - // Make the executable executable + // Make the script executable + #[cfg(not(target_os = "windows"))] if !platform.is_windows() { let mut perms = final_executable.metadata().await?.permissions(); perms.set_mode(0o755); From 112970c9de1033c5482c6f7466f7d992a456f2f3 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 03:09:28 -0500 Subject: [PATCH 60/83] Remove extra comment in header.sh --- src/header.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/src/header.sh b/src/header.sh index 65dbedc..8e4591f 100644 --- a/src/header.sh +++ b/src/header.sh @@ -37,7 +37,6 @@ archive_begin=$((archive_begin + 2)) archive_end=$((archive_end - 1)) pixi_pack_start=$(($archive_end + 2)) -echo "Unpacking payload ..." echo $(tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1))) > "$TEMPDIR/archive_temp" echo $(tail -n +$pixi_pack_start "$0") > "$TEMPDIR/pixi-pack_temp" From 69cb2ac1f0c63ca0f53737f1cef001392d1f67a3 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 03:14:15 -0500 Subject: [PATCH 61/83] Minor fixes --- src/header.sh | 19 +++---------------- src/pack.rs | 1 + 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/header.sh b/src/header.sh index 8e4591f..def1ca3 100644 --- a/src/header.sh +++ b/src/header.sh @@ -37,25 +37,12 @@ archive_begin=$((archive_begin + 2)) archive_end=$((archive_end - 1)) pixi_pack_start=$(($archive_end + 2)) -echo $(tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1))) > "$TEMPDIR/archive_temp" -echo $(tail -n +$pixi_pack_start "$0") > "$TEMPDIR/pixi-pack_temp" - -if [[ $(base64 --version | grep -q 'GNU') ]]; then - # BSD/macOS version - base64 -d -i "$TEMPDIR/archive_temp" > "$TEMPDIR/archive.tar" - base64 -d -i "$TEMPDIR/pixi-pack_temp" > "$TEMPDIR/pixi-pack" -else - # GNU version - base64 -d "$TEMPDIR/archive_temp" > "$TEMPDIR/archive.tar" - base64 -d "$TEMPDIR/pixi-pack_temp" > "$TEMPDIR/pixi-pack" -fi +echo $(tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1))) | base64 -d > "$TEMPDIR/archive.tar" +echo $(tail -n +$pixi_pack_start "$0") | base64 -d > "$TEMPDIR/pixi-pack" chmod +x "$TEMPDIR/pixi-pack" -CMD="\"$TEMPDIR/pixi-pack\" unpack $@ \"$TEMPDIR/archive.tar\"" - -# Execute the command -eval "$CMD" +"$TEMPDIR/pixi-pack" unpack $@ "$TEMPDIR/archive.tar" exit 0 @@END_HEADER@@ diff --git a/src/pack.rs b/src/pack.rs index b7eaa45..6fa4a67 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -460,6 +460,7 @@ async fn create_self_extracting_executable( .await?; // Make the script executable + // This won't be executed when cross-packing due to Windows FS not supporting Unix permissions #[cfg(not(target_os = "windows"))] if !platform.is_windows() { let mut perms = final_executable.metadata().await?.permissions(); From 5e5387a838c6d58fde009f0aab66921e57f3e987 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 03:25:00 -0500 Subject: [PATCH 62/83] Added tempdir removal --- src/header.ps1 | 2 ++ src/header.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/header.ps1 b/src/header.ps1 index 52f27ac..c0aa4b9 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -87,6 +87,8 @@ $arguments += $archivePath & $pixiPackPath @arguments +Remove-Item -Path $TEMPDIR -Recurse -Force + exit 0 __END_HEADER__ diff --git a/src/header.sh b/src/header.sh index def1ca3..2ed01ee 100644 --- a/src/header.sh +++ b/src/header.sh @@ -44,5 +44,7 @@ chmod +x "$TEMPDIR/pixi-pack" "$TEMPDIR/pixi-pack" unpack $@ "$TEMPDIR/archive.tar" +rm -rf "$TEMPDIR" + exit 0 @@END_HEADER@@ From 40017d1cf85d75e09bf19ea48ddf072197bdddc0 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 03:43:18 -0500 Subject: [PATCH 63/83] replace "env" with options.unpack_options.env_name --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 3a2033b..683883d 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -505,7 +505,7 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& ); } - let env_dir = options.output_dir.path().join("env"); + let env_dir = options.output_dir.path().join(options.unpack_options.env_name); assert!( env_dir.exists(), "Environment directory not found after extraction" From 9e31bc0be85b29b1af8d812c243e81f81a053e44 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 03:45:44 -0500 Subject: [PATCH 64/83] Replace tail and head with sed --- src/header.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/header.sh b/src/header.sh index 2ed01ee..e94943a 100644 --- a/src/header.sh +++ b/src/header.sh @@ -37,8 +37,8 @@ archive_begin=$((archive_begin + 2)) archive_end=$((archive_end - 1)) pixi_pack_start=$(($archive_end + 2)) -echo $(tail -n +$archive_begin "$0" | head -n $(($archive_end - $archive_begin + 1))) | base64 -d > "$TEMPDIR/archive.tar" -echo $(tail -n +$pixi_pack_start "$0") | base64 -d > "$TEMPDIR/pixi-pack" +sed -n "$archive_begin,${archive_end}p" "$0" | base64 -d > "$TEMPDIR/archive.tar" +sed -n "$pixi_pack_start,\$p" "$0" | base64 -d > "$TEMPDIR/pixi-pack" chmod +x "$TEMPDIR/pixi-pack" From 833e179fa5e2a5fe2d0d258b7e18f038242936a4 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 03:51:25 -0500 Subject: [PATCH 65/83] rnu fmt --- tests/integration_test.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 683883d..0013762 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -505,7 +505,10 @@ async fn test_run_packed_executable(options: Options, required_fs_objects: Vec<& ); } - let env_dir = options.output_dir.path().join(options.unpack_options.env_name); + let env_dir = options + .output_dir + .path() + .join(options.unpack_options.env_name); assert!( env_dir.exists(), "Environment directory not found after extraction" From 35df7c0b00957ff187233b40a662629d79019e4d Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Wed, 27 Nov 2024 10:04:07 +0100 Subject: [PATCH 66/83] shellcheck and readme --- .gitignore | 3 +- .pre-commit-config.yaml | 6 +++ README.md | 32 ++++++++++++ pixi.lock | 108 ++++++++++++++++++++++++++++++++++++++++ pixi.toml | 1 + src/header.sh | 5 +- 6 files changed, 151 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e049e0a..b272dc4 100644 --- a/.gitignore +++ b/.gitignore @@ -120,8 +120,7 @@ env/ environment.yml environment environment.tar -environment.tar.zst -environment.tar.zstd +environment.sh pixi-pack.json unpack/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 75753f1..e227a6e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -52,3 +52,9 @@ repos: entry: pixi run -e lint taplo format language: system types: [toml] + # shellcheck + - id: shellcheck + name: shellcheck + entry: pixi run -e lint shellcheck + language: system + types: [shell] diff --git a/README.md b/README.md index 18b8ead..010b249 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,38 @@ pixi-pack pack --platform win-64 > [!NOTE] > You can only `unpack` a pack on a system that has the same platform as the pack was created for. +### Self-extracting binaries + +You can create a self-extracting binary that contains the packed environment and a script that unpacks the environment. +This can be useful if you want to distribute the environment to users that don't have `pixi-pack` installed. + +```bash +# unix +$ pixi-pack pack --create-executable +$ ls +environment.sh +$ ./environment.sh +$ ls +env/ +activate.sh +environment.sh +``` + +```powershell +# windows +PS > pixi-pack pack --create-executable +PS > ls +environment.ps1 +PS > .\environment.ps1 +PS > ls +env/ +activate.sh +environment.ps1 +``` + +> [!TIP] +> The produced executable is a simple shell script that contains both the `pixi-pack` binary as well as the packed environment. + ### Inject additional packages You can inject additional packages into the environment that are not specified in `pixi.lock` by using the `--inject` flag: diff --git a/pixi.lock b/pixi.lock index e6cadb2..5058992 100644 --- a/pixi.lock +++ b/pixi.lock @@ -114,6 +114,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.81.0-h1a8d7c4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.81.0-h2c6d0dc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/shellcheck-0.10.0-ha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h53e704d_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda @@ -242,6 +243,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/rust-1.81.0-h21fc29f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-unknown-linux-gnu-1.81.0-hbe8e118_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/shellcheck-0.10.0-h8af1aa0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-aarch64-2.17-h5b4a56d_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h112f5b8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda @@ -280,6 +282,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fmt-11.0.2-h3c5361c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/frozendict-2.4.6-py311h1314207_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 @@ -337,6 +340,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/rust-1.81.0-h6c54e5d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-apple-darwin-1.81.0-h38e4360_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/shellcheck-0.10.0-h7dd6a17_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hf3953a5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -374,6 +378,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-11.0.2-h420ef59_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/frozendict-2.4.6-py312h0bf5046_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 @@ -434,6 +439,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.81.0-h4ff7c5d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.81.0-hf6ec828_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shellcheck-0.10.0-hecfb573_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-hdf53557_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -522,6 +528,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/rust-1.81.0-hf8d6059_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-pc-windows-msvc-1.81.0-h17fc481_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shellcheck-0.10.0-h57928b3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-ha073cba_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -600,6 +607,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.6-py313h536fd9c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py313h536fd9c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/shellcheck-0.10.0-ha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.9.3-h53e704d_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -649,6 +657,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.18.6-py313h31d5739_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.8-py313h31d5739_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/shellcheck-0.10.0-h8af1aa0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.9.3-h112f5b8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -666,6 +675,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.4-hf95d169_0.conda @@ -691,6 +701,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.6-py313hb558fbc_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.8-py313hb558fbc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/shellcheck-0.10.0-h7dd6a17_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.9.3-hf3953a5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -708,6 +719,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda @@ -733,6 +745,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.6-py313h63a2874_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py313h63a2874_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shellcheck-0.10.0-hecfb573_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.9.3-hdf53557_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -770,6 +783,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.6-py313ha7868ed_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.8-py313ha7868ed_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/shellcheck-0.10.0-h57928b3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.9.3-ha073cba_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda @@ -2290,6 +2304,36 @@ packages: license_family: BSD size: 30553 timestamp: 1731939522932 +- kind: conda + name: gmp + version: 6.3.0 + build: h7bae524_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda + sha256: 76e222e072d61c840f64a44e0580c2503562b009090f55aa45053bf1ccb385dd + md5: eed7278dfbab727b56f2c0b64330814b + depends: + - __osx >=11.0 + - libcxx >=16 + license: GPL-2.0-or-later OR LGPL-3.0-or-later + size: 365188 + timestamp: 1718981343258 +- kind: conda + name: gmp + version: 6.3.0 + build: hf036a51_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda + sha256: 75aa5e7a875afdcf4903b7dc98577672a3dc17b528ac217b915f9528f93c85fc + md5: 427101d13f19c4974552a4e5b072eef1 + depends: + - __osx >=10.13 + - libcxx >=16 + license: GPL-2.0-or-later OR LGPL-3.0-or-later + size: 428919 + timestamp: 1718981041839 - kind: conda name: gxx version: 13.3.0 @@ -7114,6 +7158,70 @@ packages: license_family: MIT size: 774304 timestamp: 1732216189406 +- kind: conda + name: shellcheck + version: 0.10.0 + build: h57928b3_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/shellcheck-0.10.0-h57928b3_0.conda + sha256: a7a08960774abdf394791867fa5ec26752eaaf4beda70f7daefbb7076054ee9b + md5: c79f416ceb03e3add6e16381ecfdadd9 + license: GPL-3.0-only + license_family: GPL + size: 2904381 + timestamp: 1713721121438 +- kind: conda + name: shellcheck + version: 0.10.0 + build: h7dd6a17_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/shellcheck-0.10.0-h7dd6a17_0.conda + sha256: 383901632d791e01f6799a8882c202c1fcf5ec2914f869b2bdd8ae6e139c20b7 + md5: 6870813f912971e13d56360d2db55bde + depends: + - gmp >=6.3.0,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 1319826 + timestamp: 1713720882839 +- kind: conda + name: shellcheck + version: 0.10.0 + build: h8af1aa0_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/shellcheck-0.10.0-h8af1aa0_0.conda + sha256: 3fa03dfe6c0914122fe721221d563dd9c6abadeef812c3bd5ea93076dc1ceaa2 + md5: f531c5f7a762ef318595987adee6d2dd + license: GPL-3.0-only + license_family: GPL + size: 4955248 + timestamp: 1713720467997 +- kind: conda + name: shellcheck + version: 0.10.0 + build: ha770c72_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/shellcheck-0.10.0-ha770c72_0.conda + sha256: 6809031184c07280dcbaed58e15020317226a3ed234b99cb1bd98384ea5be813 + md5: 61b19e9e334ddcdf8bb2422ee576549e + license: GPL-3.0-only + license_family: GPL + size: 2606806 + timestamp: 1713719553683 +- kind: conda + name: shellcheck + version: 0.10.0 + build: hecfb573_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/shellcheck-0.10.0-hecfb573_0.conda + sha256: d175f46af454d3f2ba97f0a4be8a4fdf962aaec996db54dfcf8044d38da3769c + md5: 6b2856ca39fa39c438dcd46140cd894e + depends: + - gmp >=6.3.0,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 1320371 + timestamp: 1713720918209 - kind: conda name: sysroot_linux-64 version: '2.17' diff --git a/pixi.toml b/pixi.toml index 3aa2525..cc41da5 100644 --- a/pixi.toml +++ b/pixi.toml @@ -30,6 +30,7 @@ prettier = "*" taplo = "*" pre-commit-hooks = "*" typos = "*" +shellcheck = "*" [feature.lint.tasks] pre-commit-install = "pre-commit install" pre-commit-run = "pre-commit run -a" diff --git a/src/header.sh b/src/header.sh index e94943a..2997c00 100644 --- a/src/header.sh +++ b/src/header.sh @@ -35,16 +35,17 @@ fi archive_begin=$((archive_begin + 2)) archive_end=$((archive_end - 1)) -pixi_pack_start=$(($archive_end + 2)) +pixi_pack_start=$((archive_end + 2)) sed -n "$archive_begin,${archive_end}p" "$0" | base64 -d > "$TEMPDIR/archive.tar" sed -n "$pixi_pack_start,\$p" "$0" | base64 -d > "$TEMPDIR/pixi-pack" chmod +x "$TEMPDIR/pixi-pack" -"$TEMPDIR/pixi-pack" unpack $@ "$TEMPDIR/archive.tar" +"$TEMPDIR/pixi-pack" unpack "$@" "$TEMPDIR/archive.tar" rm -rf "$TEMPDIR" exit 0 +# shellcheck disable=SC2317 @@END_HEADER@@ From 6a72521c33054ebd53faac9b1453bdc862906e33 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Wed, 27 Nov 2024 11:58:18 +0100 Subject: [PATCH 67/83] add $ErrorActionPreference = "Stop" --- src/header.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/header.ps1 b/src/header.ps1 index c0aa4b9..7cb49c2 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -1,3 +1,5 @@ +$ErrorActionPreference = "Stop" + function New-TemporaryDirectory { $parent = [System.IO.Path]::GetTempPath() [string] $name = [System.Guid]::NewGuid() @@ -80,7 +82,7 @@ try { # Build the command with flags $arguments = @("unpack") -$arguments += $args | Join-String -Separator ' ' +$arguments += $args -join ' ' # Add the path to the archive $arguments += $archivePath From d03d8951b860afa41e3c46520660a28cafe6508c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Wed, 27 Nov 2024 13:50:20 +0100 Subject: [PATCH 68/83] exit on failure --- src/header.ps1 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/header.ps1 b/src/header.ps1 index 7cb49c2..19512d7 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -88,6 +88,9 @@ $arguments += $args -join ' ' $arguments += $archivePath & $pixiPackPath @arguments +if ($LASTEXITCODE -ne 0) { + exit $LASTEXITCODE +} Remove-Item -Path $TEMPDIR -Recurse -Force From 2caa93955cb2235ecd5273c766532382f7badb87 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 11:28:21 -0500 Subject: [PATCH 69/83] minor fix --- src/header.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/header.ps1 b/src/header.ps1 index c0aa4b9..67e6e1b 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -60,7 +60,7 @@ try { $archivePath = "$TEMPDIR\archive.tar" [System.IO.File]::WriteAllBytes($archivePath, $decodedArchive) } catch { - Write-Error "Failed to decode Base64 archive content: $_" + Write-Error "ERROR: Failed to decode Base64 archive content: $_" exit 1 } From b4ad7110a224e68c4ab79a6286e6a8656837532a Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Wed, 27 Nov 2024 18:10:00 +0100 Subject: [PATCH 70/83] fix reproducibility test --- tests/integration_test.rs | 14 ++++++++++---- ...tegration_test__sha256-linux-64-executable.snap | 7 +++++++ ...tion_test__sha256-linux-aarch64-executable.snap | 7 +++++++ ...integration_test__sha256-osx-64-executable.snap | 7 +++++++ ...egration_test__sha256-osx-arm64-executable.snap | 7 +++++++ ...integration_test__sha256-win-64-executable.snap | 7 +++++++ 6 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 tests/snapshots/integration_test__sha256-linux-64-executable.snap create mode 100644 tests/snapshots/integration_test__sha256-linux-aarch64-executable.snap create mode 100644 tests/snapshots/integration_test__sha256-osx-64-executable.snap create mode 100644 tests/snapshots/integration_test__sha256-osx-arm64-executable.snap create mode 100644 tests/snapshots/integration_test__sha256-win-64-executable.snap diff --git a/tests/integration_test.rs b/tests/integration_test.rs index d4d508a..415e896 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -336,11 +336,17 @@ async fn test_reproducible_shasum( let sha256_digest = sha256_digest_bytes(&options.pack_options.output_file); insta::assert_snapshot!(format!("sha256-{}", platform), &sha256_digest); + if platform == Platform::LinuxPpc64le { + // pixi-pack not available for ppc64le for now + return; + } + // Test with create executable - #[cfg(target_os = "windows")] - let output_file = options.output_dir.path().join("environment.ps1"); - #[cfg(not(target_os = "windows"))] - let output_file = options.output_dir.path().join("environment.sh"); + let output_file = options.output_dir.path().join(if platform.is_windows() { + "environment.ps1" + } else { + "environment.sh" + }); let mut pack_options = options.pack_options.clone(); pack_options.create_executable = true; diff --git a/tests/snapshots/integration_test__sha256-linux-64-executable.snap b/tests/snapshots/integration_test__sha256-linux-64-executable.snap new file mode 100644 index 0000000..499c9c0 --- /dev/null +++ b/tests/snapshots/integration_test__sha256-linux-64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 352 +expression: "&sha256_digest" +snapshot_kind: text +--- +5A797AC80010BCFCE103F53892CDEA582C82364264CE6C4FF8EF5643F23CD3BD diff --git a/tests/snapshots/integration_test__sha256-linux-aarch64-executable.snap b/tests/snapshots/integration_test__sha256-linux-aarch64-executable.snap new file mode 100644 index 0000000..663668e --- /dev/null +++ b/tests/snapshots/integration_test__sha256-linux-aarch64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 352 +expression: "&sha256_digest" +snapshot_kind: text +--- +2D9DACCC1641D534A8B4003F121296F37D550C07B87108DFBE135D06FDD5D8A2 diff --git a/tests/snapshots/integration_test__sha256-osx-64-executable.snap b/tests/snapshots/integration_test__sha256-osx-64-executable.snap new file mode 100644 index 0000000..08df1f0 --- /dev/null +++ b/tests/snapshots/integration_test__sha256-osx-64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 352 +expression: "&sha256_digest" +snapshot_kind: text +--- +5D75D036EA7C29A43E15755D79381827A34B3160026776AC3D5A53B2073082B8 diff --git a/tests/snapshots/integration_test__sha256-osx-arm64-executable.snap b/tests/snapshots/integration_test__sha256-osx-arm64-executable.snap new file mode 100644 index 0000000..d478955 --- /dev/null +++ b/tests/snapshots/integration_test__sha256-osx-arm64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 352 +expression: "&sha256_digest" +snapshot_kind: text +--- +906049EA301E1E033E5AF4E12630B0A0C4BDD60D7F6F05741F0A10F3638214A6 diff --git a/tests/snapshots/integration_test__sha256-win-64-executable.snap b/tests/snapshots/integration_test__sha256-win-64-executable.snap new file mode 100644 index 0000000..8e1df11 --- /dev/null +++ b/tests/snapshots/integration_test__sha256-win-64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 353 +expression: "&sha256_digest" +snapshot_kind: text +--- +90EC889A10236ACEB6DC718A7BC637FD3322F7450754FB23E16EFB128E25F6E3 From 012b33877b239483a55ba768300510da2fe954a6 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Wed, 27 Nov 2024 18:13:01 +0100 Subject: [PATCH 71/83] fmt --- tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 415e896..a303b7e 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -347,7 +347,7 @@ async fn test_reproducible_shasum( } else { "environment.sh" }); - + let mut pack_options = options.pack_options.clone(); pack_options.create_executable = true; pack_options.output_file = output_file.clone(); From c45c049dff0b733a220260820dd128fa52dd6611 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 12:38:39 -0500 Subject: [PATCH 72/83] Print args for debugging --- src/header.ps1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/header.ps1 b/src/header.ps1 index 6b96051..250bbba 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -87,8 +87,12 @@ $arguments += $args -join ' ' # Add the path to the archive $arguments += $archivePath +# DEBUG +Write-Output $arguments + & $pixiPackPath @arguments if ($LASTEXITCODE -ne 0) { + Remove-Item -Path $TEMPDIR -Recurse -Force exit $LASTEXITCODE } From e3e588e2ece5e3fa546927173e5a2d8fb9791aa7 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 12:53:39 -0500 Subject: [PATCH 73/83] Fix args issue on windows --- src/header.ps1 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/header.ps1 b/src/header.ps1 index 250bbba..657ab3a 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -87,10 +87,7 @@ $arguments += $args -join ' ' # Add the path to the archive $arguments += $archivePath -# DEBUG -Write-Output $arguments - -& $pixiPackPath @arguments +& $pixiPackPath $($arguments -join ' ') if ($LASTEXITCODE -ne 0) { Remove-Item -Path $TEMPDIR -Recurse -Force exit $LASTEXITCODE From 0b0f01b9c47099b4fcce125b83d1f435a4de4a10 Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 13:18:02 -0500 Subject: [PATCH 74/83] Windows args fix --- src/header.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/header.ps1 b/src/header.ps1 index 657ab3a..2b33d8f 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -82,12 +82,12 @@ try { # Build the command with flags $arguments = @("unpack") -$arguments += $args -join ' ' +$arguments += $args # Add the path to the archive $arguments += $archivePath -& $pixiPackPath $($arguments -join ' ') +& $pixiPackPath $arguments if ($LASTEXITCODE -ne 0) { Remove-Item -Path $TEMPDIR -Recurse -Force exit $LASTEXITCODE From c2c1eea07064f98e86967f5a9ffd4c4c32f40eba Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 13:31:30 -0500 Subject: [PATCH 75/83] Update Win64 snapshot --- .../snapshots/integration_test__sha256-win-64-executable.snap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/snapshots/integration_test__sha256-win-64-executable.snap b/tests/snapshots/integration_test__sha256-win-64-executable.snap index 8e1df11..117c239 100644 --- a/tests/snapshots/integration_test__sha256-win-64-executable.snap +++ b/tests/snapshots/integration_test__sha256-win-64-executable.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 353 +assertion_line: 358 expression: "&sha256_digest" snapshot_kind: text --- -90EC889A10236ACEB6DC718A7BC637FD3322F7450754FB23E16EFB128E25F6E3 +7D564558F9576FACF4BF9188CCE0B2F8BD98C5E52A8456DE4F06378BEF11BE27 From 79ae7fa188e4a21fb774814ad0881c6c6469da8a Mon Sep 17 00:00:00 2001 From: prsabahrami Date: Wed, 27 Nov 2024 15:39:09 -0500 Subject: [PATCH 76/83] Added built-on-win snapshots --- tests/integration_test.rs | 8 ++++++++ ...on_test__built-on-win__sha256-linux-64-executable.snap | 7 +++++++ ...st__built-on-win__sha256-linux-aarch64-executable.snap | 7 +++++++ ...tion_test__built-on-win__sha256-osx-64-executable.snap | 7 +++++++ ...n_test__built-on-win__sha256-osx-arm64-executable.snap | 7 +++++++ 5 files changed, 36 insertions(+) create mode 100644 tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap create mode 100644 tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap create mode 100644 tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap create mode 100644 tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap diff --git a/tests/integration_test.rs b/tests/integration_test.rs index a303b7e..30d0b38 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -355,6 +355,14 @@ async fn test_reproducible_shasum( assert!(pack_result.is_ok(), "{:?}", pack_result); let sha256_digest = sha256_digest_bytes(&output_file); + + #[cfg(target_os = "windows")] + insta::assert_snapshot!( + format!("built-on-win__sha256-{}-executable", platform), + &sha256_digest + ); + + #[cfg(not(target_os = "windows"))] insta::assert_snapshot!(format!("sha256-{}-executable", platform), &sha256_digest); } diff --git a/tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap new file mode 100644 index 0000000..e392e42 --- /dev/null +++ b/tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 358 +expression: "&sha256_digest" +snapshot_kind: text +--- +70E755F220504E2087A86C2E5EAFEF96DC2F0EBB57FE11E4F081E2BA6829AD7B diff --git a/tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap new file mode 100644 index 0000000..4f7afbe --- /dev/null +++ b/tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 358 +expression: "&sha256_digest" +snapshot_kind: text +--- +FF10C491ED694EAFD369BEDC4F49EBB390221B3FAD3C5CC1EDFE4B0E27D77BE3 diff --git a/tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap new file mode 100644 index 0000000..313c607 --- /dev/null +++ b/tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 358 +expression: "&sha256_digest" +snapshot_kind: text +--- +B98E3FFCAB16267FC3907628A26192D90E3984E9606F01D2988F6A5779104FF0 diff --git a/tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap new file mode 100644 index 0000000..6750066 --- /dev/null +++ b/tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap @@ -0,0 +1,7 @@ +--- +source: tests/integration_test.rs +assertion_line: 358 +expression: "&sha256_digest" +snapshot_kind: text +--- +180D5BE5C4F3756782806D7B2DCFED3A10154AC5A4205CBC91AD9DC812317820 From 31ccdbf002d69ccad7dd49454b1cae02944b550c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 28 Nov 2024 09:35:54 +0100 Subject: [PATCH 77/83] use clrf in header.ps1 --- src/header.ps1 | 200 ++++++++++++++++++++++++------------------------- 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/src/header.ps1 b/src/header.ps1 index 2b33d8f..60cde9f 100644 --- a/src/header.ps1 +++ b/src/header.ps1 @@ -1,100 +1,100 @@ -$ErrorActionPreference = "Stop" - -function New-TemporaryDirectory { - $parent = [System.IO.Path]::GetTempPath() - [string] $name = [System.Guid]::NewGuid() - $tempDir = New-Item -ItemType Directory -Path (Join-Path $parent $name) - return $tempDir.FullName -} - -$TEMPDIR = New-TemporaryDirectory -$USAGE = @" -Usage: $($MyInvocation.MyCommand.Name) [OPTIONS] - -Arguments: - Path to an environment packed using pixi-pack - -Options: - -o, --output-directory Where to unpack the environment. The environment will be unpacked into a subdirectory of this path [default: env] - -e, --env-name Name of the environment [default: env] - -s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] - -v, --verbose Increase logging verbosity - -q, --quiet Decrease logging verbosity - -h, --help Print help -"@ - -foreach ($arg in $args) { - if ($arg -eq "-h" -or $arg -eq "--help") { - Write-Output $USAGE - exit 0 - } -} - -# Extract the archive and pixi-pack executable, and decode them -$scriptContent = Get-Content -Raw -Path $MyInvocation.MyCommand.Path -$lines = $scriptContent -split "`r?`n" - -$headerLine = $null -$archiveLine = $null - -# Find the lines where __END_HEADER__ and __END_ARCHIVE__ occur -for ($i = 0; $i -lt $lines.Count; $i++) { - if ($lines[$i] -like "*__END_HEADER__*") { - $headerLine = $i + 2 - } - if ($lines[$i] -like "*__END_ARCHIVE__*") { - $archiveLine = $i + 1 - } -} - -if (-not $headerLine -or -not $archiveLine) { - Write-Error "ERROR: Markers __END_HEADER__ or __END_ARCHIVE__ not found." - exit 1 -} - -# Extract Base64 content for the tar archive -$archiveContent = $lines[($headerLine)..($archiveLine - 2)] -join "" -$archiveContent = $archiveContent.Trim() - -# Decode Base64 content into tar file -try { - $decodedArchive = [System.Convert]::FromBase64String($archiveContent) - $archivePath = "$TEMPDIR\archive.tar" - [System.IO.File]::WriteAllBytes($archivePath, $decodedArchive) -} catch { - Write-Error "ERROR: Failed to decode Base64 archive content: $_" - exit 1 -} - -# Extract Base64 content for pixi-pack executable -$pixiPackContent = $lines[($archiveLine)..($lines.Count - 1)] -join "" -$pixiPackContent = $pixiPackContent.Trim() - -# Decode Base64 content into the pixi-pack executable file -try { - $decodedPixiPack = [System.Convert]::FromBase64String($pixiPackContent) - $pixiPackPath = "$TEMPDIR\pixi-pack.exe" - [System.IO.File]::WriteAllBytes($pixiPackPath, $decodedPixiPack) -} catch { - Write-Error "Failed to decode Base64 pixi-pack content: $_" - exit 1 -} - -# Build the command with flags -$arguments = @("unpack") -$arguments += $args - -# Add the path to the archive -$arguments += $archivePath - -& $pixiPackPath $arguments -if ($LASTEXITCODE -ne 0) { - Remove-Item -Path $TEMPDIR -Recurse -Force - exit $LASTEXITCODE -} - -Remove-Item -Path $TEMPDIR -Recurse -Force - -exit 0 - -__END_HEADER__ +$ErrorActionPreference = "Stop" + +function New-TemporaryDirectory { + $parent = [System.IO.Path]::GetTempPath() + [string] $name = [System.Guid]::NewGuid() + $tempDir = New-Item -ItemType Directory -Path (Join-Path $parent $name) + return $tempDir.FullName +} + +$TEMPDIR = New-TemporaryDirectory +$USAGE = @" +Usage: $($MyInvocation.MyCommand.Name) [OPTIONS] + +Arguments: + Path to an environment packed using pixi-pack + +Options: + -o, --output-directory Where to unpack the environment. The environment will be unpacked into a subdirectory of this path [default: env] + -e, --env-name Name of the environment [default: env] + -s, --shell Sets the shell [options: bash, zsh, xonsh, cmd, powershell, fish, nushell] + -v, --verbose Increase logging verbosity + -q, --quiet Decrease logging verbosity + -h, --help Print help +"@ + +foreach ($arg in $args) { + if ($arg -eq "-h" -or $arg -eq "--help") { + Write-Output $USAGE + exit 0 + } +} + +# Extract the archive and pixi-pack executable, and decode them +$scriptContent = Get-Content -Raw -Path $MyInvocation.MyCommand.Path +$lines = $scriptContent -split "`r?`n" + +$headerLine = $null +$archiveLine = $null + +# Find the lines where __END_HEADER__ and __END_ARCHIVE__ occur +for ($i = 0; $i -lt $lines.Count; $i++) { + if ($lines[$i] -like "*__END_HEADER__*") { + $headerLine = $i + 2 + } + if ($lines[$i] -like "*__END_ARCHIVE__*") { + $archiveLine = $i + 1 + } +} + +if (-not $headerLine -or -not $archiveLine) { + Write-Error "ERROR: Markers __END_HEADER__ or __END_ARCHIVE__ not found." + exit 1 +} + +# Extract Base64 content for the tar archive +$archiveContent = $lines[($headerLine)..($archiveLine - 2)] -join "" +$archiveContent = $archiveContent.Trim() + +# Decode Base64 content into tar file +try { + $decodedArchive = [System.Convert]::FromBase64String($archiveContent) + $archivePath = "$TEMPDIR\archive.tar" + [System.IO.File]::WriteAllBytes($archivePath, $decodedArchive) +} catch { + Write-Error "ERROR: Failed to decode Base64 archive content: $_" + exit 1 +} + +# Extract Base64 content for pixi-pack executable +$pixiPackContent = $lines[($archiveLine)..($lines.Count - 1)] -join "" +$pixiPackContent = $pixiPackContent.Trim() + +# Decode Base64 content into the pixi-pack executable file +try { + $decodedPixiPack = [System.Convert]::FromBase64String($pixiPackContent) + $pixiPackPath = "$TEMPDIR\pixi-pack.exe" + [System.IO.File]::WriteAllBytes($pixiPackPath, $decodedPixiPack) +} catch { + Write-Error "Failed to decode Base64 pixi-pack content: $_" + exit 1 +} + +# Build the command with flags +$arguments = @("unpack") +$arguments += $args + +# Add the path to the archive +$arguments += $archivePath + +& $pixiPackPath $arguments +if ($LASTEXITCODE -ne 0) { + Remove-Item -Path $TEMPDIR -Recurse -Force + exit $LASTEXITCODE +} + +Remove-Item -Path $TEMPDIR -Recurse -Force + +exit 0 + +__END_HEADER__ From 06e4c73f4e967327e408ed75d51b709793b0f63c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 28 Nov 2024 10:13:34 +0100 Subject: [PATCH 78/83] use \r\n for windows executable --- src/pack.rs | 15 +++++++++++---- ...ntegration_test__sha256-win-64-executable.snap | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/pack.rs b/src/pack.rs index bf3ff44..5a79bea 100644 --- a/src/pack.rs +++ b/src/pack.rs @@ -340,6 +340,12 @@ async fn create_self_extracting_executable( target: &Path, platform: Platform, ) -> Result<()> { + let line_ending = if platform.is_windows() { + b"\r\n".to_vec() + } else { + b"\n".to_vec() + }; + let archive = Builder::new(Vec::new()); let compressor = write_archive(archive, input_dir).await?; @@ -410,7 +416,7 @@ async fn create_self_extracting_executable( .map_err(|e| anyhow!("could not create final executable file: {}", e))?; final_executable.write_all(header.as_bytes()).await?; - final_executable.write_all(b"\n").await?; // Add a newline after the header + final_executable.write_all(&line_ending).await?; // Add a newline after the header // Encode the archive to base64 let archive_base64 = STANDARD.encode(&compressor); @@ -418,12 +424,13 @@ async fn create_self_extracting_executable( .write_all(archive_base64.as_bytes()) .await?; - final_executable.write_all(b"\n").await?; + final_executable.write_all(&line_ending).await?; if platform.is_windows() { - final_executable.write_all(b"__END_ARCHIVE__\n").await?; + final_executable.write_all(b"__END_ARCHIVE__").await?; } else { - final_executable.write_all(b"@@END_ARCHIVE@@\n").await?; + final_executable.write_all(b"@@END_ARCHIVE@@").await?; } + final_executable.write_all(&line_ending).await?; // Encode the executable to base64 let executable_base64 = STANDARD.encode(&executable_bytes); diff --git a/tests/snapshots/integration_test__sha256-win-64-executable.snap b/tests/snapshots/integration_test__sha256-win-64-executable.snap index 117c239..4753e8a 100644 --- a/tests/snapshots/integration_test__sha256-win-64-executable.snap +++ b/tests/snapshots/integration_test__sha256-win-64-executable.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 358 +assertion_line: 366 expression: "&sha256_digest" snapshot_kind: text --- -7D564558F9576FACF4BF9188CCE0B2F8BD98C5E52A8456DE4F06378BEF11BE27 +D651688B08263EA415C95AF1298D337088953CD260BFFC1AB287D75E2F467D2A From 1ed05d968fce2026e450c207dd0999fb9d32190d Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 28 Nov 2024 10:33:23 +0100 Subject: [PATCH 79/83] force line endings --- .gitattributes | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitattributes b/.gitattributes index d5799bd..4563bbe 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,5 @@ # GitHub syntax highlighting pixi.lock linguist-language=YAML + +src/header.ps1 text eol=crlf +src/header.sh text eol=lf From f5a32fce56a382ff44c782c752196167f8767103 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 28 Nov 2024 10:41:44 +0100 Subject: [PATCH 80/83] reproducible on windows as well --- tests/integration_test.rs | 8 -------- ...on_test__built-on-win__sha256-linux-64-executable.snap | 7 ------- ...st__built-on-win__sha256-linux-aarch64-executable.snap | 7 ------- ...tion_test__built-on-win__sha256-osx-64-executable.snap | 7 ------- ...n_test__built-on-win__sha256-osx-arm64-executable.snap | 7 ------- 5 files changed, 36 deletions(-) delete mode 100644 tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap delete mode 100644 tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap delete mode 100644 tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap delete mode 100644 tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap diff --git a/tests/integration_test.rs b/tests/integration_test.rs index 30d0b38..a303b7e 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -355,14 +355,6 @@ async fn test_reproducible_shasum( assert!(pack_result.is_ok(), "{:?}", pack_result); let sha256_digest = sha256_digest_bytes(&output_file); - - #[cfg(target_os = "windows")] - insta::assert_snapshot!( - format!("built-on-win__sha256-{}-executable", platform), - &sha256_digest - ); - - #[cfg(not(target_os = "windows"))] insta::assert_snapshot!(format!("sha256-{}-executable", platform), &sha256_digest); } diff --git a/tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap deleted file mode 100644 index e392e42..0000000 --- a/tests/snapshots/integration_test__built-on-win__sha256-linux-64-executable.snap +++ /dev/null @@ -1,7 +0,0 @@ ---- -source: tests/integration_test.rs -assertion_line: 358 -expression: "&sha256_digest" -snapshot_kind: text ---- -70E755F220504E2087A86C2E5EAFEF96DC2F0EBB57FE11E4F081E2BA6829AD7B diff --git a/tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap deleted file mode 100644 index 4f7afbe..0000000 --- a/tests/snapshots/integration_test__built-on-win__sha256-linux-aarch64-executable.snap +++ /dev/null @@ -1,7 +0,0 @@ ---- -source: tests/integration_test.rs -assertion_line: 358 -expression: "&sha256_digest" -snapshot_kind: text ---- -FF10C491ED694EAFD369BEDC4F49EBB390221B3FAD3C5CC1EDFE4B0E27D77BE3 diff --git a/tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap deleted file mode 100644 index 313c607..0000000 --- a/tests/snapshots/integration_test__built-on-win__sha256-osx-64-executable.snap +++ /dev/null @@ -1,7 +0,0 @@ ---- -source: tests/integration_test.rs -assertion_line: 358 -expression: "&sha256_digest" -snapshot_kind: text ---- -B98E3FFCAB16267FC3907628A26192D90E3984E9606F01D2988F6A5779104FF0 diff --git a/tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap b/tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap deleted file mode 100644 index 6750066..0000000 --- a/tests/snapshots/integration_test__built-on-win__sha256-osx-arm64-executable.snap +++ /dev/null @@ -1,7 +0,0 @@ ---- -source: tests/integration_test.rs -assertion_line: 358 -expression: "&sha256_digest" -snapshot_kind: text ---- -180D5BE5C4F3756782806D7B2DCFED3A10154AC5A4205CBC91AD9DC812317820 From ec67d226fdd0c767ed2ff2d018e8944dfa42ed8c Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 28 Nov 2024 10:52:15 +0100 Subject: [PATCH 81/83] add test for line endings --- tests/integration_test.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/integration_test.rs b/tests/integration_test.rs index a303b7e..3bf28ac 100644 --- a/tests/integration_test.rs +++ b/tests/integration_test.rs @@ -358,6 +358,30 @@ async fn test_reproducible_shasum( insta::assert_snapshot!(format!("sha256-{}-executable", platform), &sha256_digest); } +#[rstest] +#[case(Platform::Linux64)] +#[case(Platform::Win64)] +#[tokio::test] +async fn test_line_endings( + #[case] platform: Platform, + #[with(PathBuf::from("examples/simple-python/pixi.toml"), "default".to_string(), platform, None, None, false, "env".to_string(), true)] + options: Options, +) { + let pack_result = pixi_pack::pack(options.pack_options.clone()).await; + assert!(pack_result.is_ok(), "{:?}", pack_result); + + let out_file = options.pack_options.output_file.clone(); + let output = fs::read_to_string(&out_file).unwrap(); + + if platform.is_windows() { + let num_crlf = output.matches("\r\n").count(); + let num_lf = output.matches("\n").count(); + assert_eq!(num_crlf, num_lf); + } else { + assert!(!output.contains("\r\n")); + } +} + #[rstest] #[tokio::test] async fn test_non_authenticated( From 3b03267f2bd12e0ffca4e2177668f76d531ec3ef Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 28 Nov 2024 10:54:10 +0100 Subject: [PATCH 82/83] Bump version --- .gitignore | 1 + Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b272dc4..d3507dd 100644 --- a/.gitignore +++ b/.gitignore @@ -121,6 +121,7 @@ environment.yml environment environment.tar environment.sh +environment.ps1 pixi-pack.json unpack/ diff --git a/Cargo.lock b/Cargo.lock index 7314bf2..099f1a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2340,7 +2340,7 @@ dependencies = [ [[package]] name = "pixi-pack" -version = "0.2.2" +version = "0.3.0" dependencies = [ "anyhow", "async-std", diff --git a/Cargo.toml b/Cargo.toml index 95c0a96..b989d06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "pixi-pack" description = "A command line tool to pack and unpack conda environments for easy sharing" -version = "0.2.2" +version = "0.3.0" edition = "2021" [features] From a9b67a3d302aa7effde654ee199caf92c7c652d9 Mon Sep 17 00:00:00 2001 From: Pavel Zwerschke Date: Thu, 28 Nov 2024 11:05:52 +0100 Subject: [PATCH 83/83] fix shas --- tests/snapshots/integration_test__sha256-linux-64.snap | 4 ++-- tests/snapshots/integration_test__sha256-linux-aarch64.snap | 4 ++-- tests/snapshots/integration_test__sha256-linux-ppc64le.snap | 4 ++-- tests/snapshots/integration_test__sha256-osx-64.snap | 4 ++-- tests/snapshots/integration_test__sha256-osx-arm64.snap | 4 ++-- tests/snapshots/integration_test__sha256-win-64.snap | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/snapshots/integration_test__sha256-linux-64.snap b/tests/snapshots/integration_test__sha256-linux-64.snap index 3edfa67..3fd4a3a 100644 --- a/tests/snapshots/integration_test__sha256-linux-64.snap +++ b/tests/snapshots/integration_test__sha256-linux-64.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 324 +assertion_line: 337 expression: "&sha256_digest" snapshot_kind: text --- -4812A8E27FD74DDB8F5D65450034F75796956231CE84D6C34034CAA8CEAE6FA1 +5E7A952F4F5E737CFED748F005D996A959BBCA597E825C6852ABEEDFC9107C7F diff --git a/tests/snapshots/integration_test__sha256-linux-aarch64.snap b/tests/snapshots/integration_test__sha256-linux-aarch64.snap index b51d7bd..322315b 100644 --- a/tests/snapshots/integration_test__sha256-linux-aarch64.snap +++ b/tests/snapshots/integration_test__sha256-linux-aarch64.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 324 +assertion_line: 337 expression: "&sha256_digest" snapshot_kind: text --- -8933D634F04605FCFB69D5FA31A357D536A6D28CADB2A0EDDEBECBB6456FB156 +0950BFDCC07BCDE25939560415A9F40AA7D3876980AF577EBDDF66F056DFF381 diff --git a/tests/snapshots/integration_test__sha256-linux-ppc64le.snap b/tests/snapshots/integration_test__sha256-linux-ppc64le.snap index 0cffcf4..2f8b4ed 100644 --- a/tests/snapshots/integration_test__sha256-linux-ppc64le.snap +++ b/tests/snapshots/integration_test__sha256-linux-ppc64le.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 324 +assertion_line: 337 expression: "&sha256_digest" snapshot_kind: text --- -3830A9B65CBE8119F0A57ABBC2C1F6F7AD43936D8A93F0E1AB2D303A7428493D +5F86C79FAF20C2E5713F9F55EA4E0A78F50A5872F020014C1EACB309292CCDEA diff --git a/tests/snapshots/integration_test__sha256-osx-64.snap b/tests/snapshots/integration_test__sha256-osx-64.snap index 2b562c1..d604f7b 100644 --- a/tests/snapshots/integration_test__sha256-osx-64.snap +++ b/tests/snapshots/integration_test__sha256-osx-64.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 324 +assertion_line: 337 expression: "&sha256_digest" snapshot_kind: text --- -70301046ECFFA1D167BAE61386A47434911E9A361E556134D613A3702D00DBE4 +66234F21652F4AABFA75ACCB840C6E438310392F65BA89C6237DE3978108D63F diff --git a/tests/snapshots/integration_test__sha256-osx-arm64.snap b/tests/snapshots/integration_test__sha256-osx-arm64.snap index f89071b..a0dbbb9 100644 --- a/tests/snapshots/integration_test__sha256-osx-arm64.snap +++ b/tests/snapshots/integration_test__sha256-osx-arm64.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 319 +assertion_line: 337 expression: "&sha256_digest" snapshot_kind: text --- -1D6CFE834AE78095A70CA97AA7845F0C2D1FCC8D332BAB0BC184704687AD8767 +060FC2BC1EECC550BFFABF2E8F52D79F321310A477C41DB01735725AE7F6D8A6 diff --git a/tests/snapshots/integration_test__sha256-win-64.snap b/tests/snapshots/integration_test__sha256-win-64.snap index 27287c7..f332c68 100644 --- a/tests/snapshots/integration_test__sha256-win-64.snap +++ b/tests/snapshots/integration_test__sha256-win-64.snap @@ -1,7 +1,7 @@ --- source: tests/integration_test.rs -assertion_line: 324 +assertion_line: 337 expression: "&sha256_digest" snapshot_kind: text --- -FECF7A431B08F2E90F7C30AAB80695C39A99388CC1482DCD4D01D6B4C153B096 +A488FCF376EF8A934DBA2CEBD9B97C9DB6132BA2827BEAE5400CECE79CF2D00B