From edf0ec3fa1605381b3ee09096b2f075fb7b3bc63 Mon Sep 17 00:00:00 2001 From: randersson Date: Thu, 16 Oct 2025 15:33:59 -0400 Subject: [PATCH 01/13] Fix issue with hardcoded conda exe --- constructor/header.sh | 8 +++++++- constructor/osx/prepare_installation.sh | 7 ++++++- constructor/osx/run_installation.sh | 2 +- constructor/osx/run_user_script.sh | 2 +- constructor/osxpkg.py | 1 + constructor/shar.py | 2 ++ 6 files changed, 18 insertions(+), 4 deletions(-) diff --git a/constructor/header.sh b/constructor/header.sh index 81cf0bf2e..0f440d171 100644 --- a/constructor/header.sh +++ b/constructor/header.sh @@ -492,9 +492,15 @@ unset PYTHON_SYSCONFIGDATA_NAME _CONDA_PYTHON_SYSCONFIGDATA_NAME # the first binary payload: the standalone conda executable printf "Unpacking bootstrapper...\n" -CONDA_EXEC="$PREFIX/_conda" +CONDA_EXEC="$PREFIX/{{ conda_exe_name }}" extract_range "${boundary0}" "${boundary1}" > "$CONDA_EXEC" chmod +x "$CONDA_EXEC" + +{%- if conda_exe_name != "_conda" %} +# In case there are packages that depend on _conda +ln -s $CONDA_EXEC $PREFIX/_conda +{%- endif %} + {%- for filename, (start, end, executable) in conda_exe_payloads|items %} mkdir -p "$(dirname "$PREFIX/{{ filename }}")" {%- if start == end %} diff --git a/constructor/osx/prepare_installation.sh b/constructor/osx/prepare_installation.sh index cf14cbf65..0bb8a9dc1 100644 --- a/constructor/osx/prepare_installation.sh +++ b/constructor/osx/prepare_installation.sh @@ -22,7 +22,7 @@ PREFIX="$2/{{ pkg_name_lower }}" PREFIX=$(cd "$PREFIX"; pwd) export PREFIX echo "PREFIX=$PREFIX" -CONDA_EXEC="$PREFIX/_conda" +CONDA_EXEC="$PREFIX/{{ conda_exe_name }}" # Installers should ignore pre-existing configuration files. unset CONDARC unset MAMBARC @@ -30,6 +30,11 @@ unset MAMBARC chmod +x "$CONDA_EXEC" +{%- if conda_exe_name != "_conda" %} +# In case there are packages that depend on _conda +ln -s $CONDA_EXEC $PREFIX/_conda +{%- endif %} + # Create a blank history file so conda thinks this is an existing env mkdir -p "$PREFIX/conda-meta" touch "$PREFIX/conda-meta/history" diff --git a/constructor/osx/run_installation.sh b/constructor/osx/run_installation.sh index 00afff654..ff684697e 100644 --- a/constructor/osx/run_installation.sh +++ b/constructor/osx/run_installation.sh @@ -26,7 +26,7 @@ PREFIX="$2/{{ pkg_name_lower }}" PREFIX=$(cd "$PREFIX"; pwd) export PREFIX echo "PREFIX=$PREFIX" -CONDA_EXEC="$PREFIX/_conda" +CONDA_EXEC="$PREFIX/{{ conda_exe_name }}" # Installers should ignore pre-existing configuration files. unset CONDARC unset MAMBARC diff --git a/constructor/osx/run_user_script.sh b/constructor/osx/run_user_script.sh index 2d00b1c75..6209a5b0f 100644 --- a/constructor/osx/run_user_script.sh +++ b/constructor/osx/run_user_script.sh @@ -22,7 +22,7 @@ PREFIX="$2/{{ pkg_name_lower }}" PREFIX=$(cd "$PREFIX"; pwd) export PREFIX echo "PREFIX=$PREFIX" -CONDA_EXEC="$PREFIX/_conda" +CONDA_EXEC="$PREFIX/{{ conda_exe_name }}" # /COMMON UTILS # Expose these to user scripts as well diff --git a/constructor/osxpkg.py b/constructor/osxpkg.py index 3785ac617..28974bea9 100644 --- a/constructor/osxpkg.py +++ b/constructor/osxpkg.py @@ -364,6 +364,7 @@ def move_script(src, dst, info, ensure_shebang=False, user_script_type=None): variables["no_rcs_arg"] = info.get("_ignore_condarcs_arg", "") variables["script_env_variables"] = info.get("script_env_variables", {}) variables["initialize_conda"] = info.get("initialize_conda", "classic") + variables["conda_exe_name"] = Path(info["_conda_exe"]).name data = render_template(data, **variables) diff --git a/constructor/shar.py b/constructor/shar.py index f6361a0f9..a5ea62a54 100644 --- a/constructor/shar.py +++ b/constructor/shar.py @@ -16,6 +16,7 @@ import stat import tarfile import tempfile +from pathlib import Path from contextlib import nullcontext from io import BytesIO from os.path import basename, dirname, getsize, isdir, join, relpath @@ -110,6 +111,7 @@ def get_header(conda_exec, tarball, info): virtual_specs = parse_virtual_specs(info) min_osx_version = virtual_specs.get("__osx", {}).get("min") or "" variables["min_osx_version"] = min_osx_version + variables["conda_exe_name"] = Path(info["_conda_exe"]).name min_glibc_version = virtual_specs.get("__glibc", {}).get("min") or "" variables["min_glibc_version"] = min_glibc_version From ba83a4fefbf92596dd9dd5ac290bc94719aa8800 Mon Sep 17 00:00:00 2001 From: randersson Date: Thu, 16 Oct 2025 15:39:05 -0400 Subject: [PATCH 02/13] Fix formatting --- constructor/shar.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/constructor/shar.py b/constructor/shar.py index a5ea62a54..2debe7770 100644 --- a/constructor/shar.py +++ b/constructor/shar.py @@ -16,10 +16,10 @@ import stat import tarfile import tempfile -from pathlib import Path from contextlib import nullcontext from io import BytesIO from os.path import basename, dirname, getsize, isdir, join, relpath +from pathlib import Path from .construct import ns_platform from .jinja import render_template From 1e636e7b0506dee891325b7480400343a2cf1e14 Mon Sep 17 00:00:00 2001 From: randersson Date: Mon, 20 Oct 2025 10:33:00 -0400 Subject: [PATCH 03/13] Add quotes and test adjustments --- constructor/header.sh | 4 ++-- constructor/osx/prepare_installation.sh | 4 ++-- tests/test_header.py | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/constructor/header.sh b/constructor/header.sh index 0f440d171..3712bdf67 100644 --- a/constructor/header.sh +++ b/constructor/header.sh @@ -496,9 +496,9 @@ CONDA_EXEC="$PREFIX/{{ conda_exe_name }}" extract_range "${boundary0}" "${boundary1}" > "$CONDA_EXEC" chmod +x "$CONDA_EXEC" -{%- if conda_exe_name != "_conda" %} +{%- if conda_exe_name != "_conda" or conda_exe_name != conda.exe %} # In case there are packages that depend on _conda -ln -s $CONDA_EXEC $PREFIX/_conda +ln -s "$CONDA_EXEC" "$PREFIX"/_conda {%- endif %} {%- for filename, (start, end, executable) in conda_exe_payloads|items %} diff --git a/constructor/osx/prepare_installation.sh b/constructor/osx/prepare_installation.sh index 0bb8a9dc1..821b71277 100644 --- a/constructor/osx/prepare_installation.sh +++ b/constructor/osx/prepare_installation.sh @@ -30,9 +30,9 @@ unset MAMBARC chmod +x "$CONDA_EXEC" -{%- if conda_exe_name != "_conda" %} +{%- if conda_exe_name != "_conda" or conda_exe_name != conda.exe %} # In case there are packages that depend on _conda -ln -s $CONDA_EXEC $PREFIX/_conda +ln -s "$CONDA_EXEC" "$PREFIX"/_conda {%- endif %} # Create a blank history file so conda thinks this is an existing env diff --git a/tests/test_header.py b/tests/test_header.py index 94e5c906e..03c5b8a2f 100644 --- a/tests/test_header.py +++ b/tests/test_header.py @@ -70,6 +70,7 @@ def test_osxpkg_scripts_shellcheck(arch, check_path_spaces, script): no_rcs_arg="", script_env_variables={}, initialize_conda="condabin", + conda_exe_name="_conda", ) findings, returncode = run_shellcheck(processed) @@ -162,6 +163,7 @@ def test_template_shellcheck( "write_condarc": "", "conda_exe_payloads": conda_exe_payloads_and_size[0], "conda_exe_payloads_size": conda_exe_payloads_and_size[1], + "conda_exe_name": "_conda", }, ) From 0d23221f1a612832a89d46cb46881d0e7f69124c Mon Sep 17 00:00:00 2001 From: randersson Date: Mon, 20 Oct 2025 10:57:33 -0400 Subject: [PATCH 04/13] Add missing quotes --- constructor/header.sh | 2 +- constructor/osx/prepare_installation.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/constructor/header.sh b/constructor/header.sh index 3712bdf67..17f51bb92 100644 --- a/constructor/header.sh +++ b/constructor/header.sh @@ -496,7 +496,7 @@ CONDA_EXEC="$PREFIX/{{ conda_exe_name }}" extract_range "${boundary0}" "${boundary1}" > "$CONDA_EXEC" chmod +x "$CONDA_EXEC" -{%- if conda_exe_name != "_conda" or conda_exe_name != conda.exe %} +{%- if conda_exe_name != "_conda" or conda_exe_name != "conda.exe" %} # In case there are packages that depend on _conda ln -s "$CONDA_EXEC" "$PREFIX"/_conda {%- endif %} diff --git a/constructor/osx/prepare_installation.sh b/constructor/osx/prepare_installation.sh index 821b71277..28a39f65d 100644 --- a/constructor/osx/prepare_installation.sh +++ b/constructor/osx/prepare_installation.sh @@ -30,7 +30,7 @@ unset MAMBARC chmod +x "$CONDA_EXEC" -{%- if conda_exe_name != "_conda" or conda_exe_name != conda.exe %} +{%- if conda_exe_name != "_conda" or conda_exe_name != "conda.exe" %} # In case there are packages that depend on _conda ln -s "$CONDA_EXEC" "$PREFIX"/_conda {%- endif %} From e5c89f83cee6529cd7e53847d4f5417eea04997b Mon Sep 17 00:00:00 2001 From: randersson Date: Mon, 20 Oct 2025 14:33:57 -0400 Subject: [PATCH 05/13] Adjust osxpkg handling of _conda --- constructor/osxpkg.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/constructor/osxpkg.py b/constructor/osxpkg.py index 28974bea9..311548bc5 100644 --- a/constructor/osxpkg.py +++ b/constructor/osxpkg.py @@ -557,7 +557,7 @@ def create(info, verbose=False): # 1. Prepare installation # The 'prepare_installation' package contains the prepopulated package cache, the modified - # conda-meta metadata staged into pkgs/conda-meta, _conda (conda-standalone), + # conda-meta metadata staged into pkgs/conda-meta, _conda (conda-standalone, [--conda-exe]), # Optionally, extra files and the user-provided scripts. # We first populate PACKAGE_ROOT with everything needed, and then run pkg build on that dir fresh_dir(PACKAGE_ROOT) @@ -590,7 +590,11 @@ def create(info, verbose=False): for dist in all_dists: os.link(join(CACHE_DIR, dist), join(pkgs_dir, dist)) - copy_conda_exe(prefix, "_conda", info["_conda_exe"]) + # Note also that this is handled differently between .sh-installers (via header.sh) + # and .pkg-installers (via prepare_installation.sh) + # since because of differences in unpacking the bootstrapper + exe_name = Path(info["_conda_exe"]).name + copy_conda_exe(prefix, exe_name, info["_conda_exe"]) # Sign conda-standalone so it can pass notarization codesigner = None @@ -605,7 +609,7 @@ def create(info, verbose=False): "com.apple.security.cs.disable-library-validation": True, "com.apple.security.cs.allow-dyld-environment-variables": True, } - codesigner.sign_bundle(join(prefix, "_conda"), entitlements=entitlements) + codesigner.sign_bundle(join(prefix, exe_name), entitlements=entitlements) # This script checks to see if the install location already exists and/or contains spaces # Not to be confused with the user-provided pre_install! From 8af67b64f945d4093cd3599b0bbe599e2d05f21a Mon Sep 17 00:00:00 2001 From: randersson Date: Mon, 20 Oct 2025 15:15:46 -0400 Subject: [PATCH 06/13] Update macOS test, conda.exe instead of _conda --- tests/test_examples.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_examples.py b/tests/test_examples.py index 7d8913e2f..4fde674c4 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -664,7 +664,7 @@ def test_macos_signing(tmp_path, self_signed_application_certificate_macos): cmd = ["pkgutil", "--expand-full", installer, expanded_path] _execute(cmd) components = [ - Path(expanded_path, "prepare_installation.pkg", "Payload", "osx-pkg-test", "_conda"), + Path(expanded_path, "prepare_installation.pkg", "Payload", "osx-pkg-test", "conda.exe"), Path(expanded_path, "Plugins", "ExtraPage.bundle"), ] validated_signatures = [] From a1e1f2d2b67f97a99564a6e1ee380e4d3ff7560f Mon Sep 17 00:00:00 2001 From: randersson Date: Mon, 20 Oct 2025 15:57:11 -0400 Subject: [PATCH 07/13] add news --- news/1090-preserve-conda-exe-filename | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 news/1090-preserve-conda-exe-filename diff --git a/news/1090-preserve-conda-exe-filename b/news/1090-preserve-conda-exe-filename new file mode 100644 index 000000000..285e92946 --- /dev/null +++ b/news/1090-preserve-conda-exe-filename @@ -0,0 +1,19 @@ +### Enhancements + +* + +### Bug fixes + +* Resolved an issue when specifying `--conda-exe` with `micromamba` or `mamba`. The conda executable now maintain its original filename. + +### Deprecations + +* + +### Docs + +* + +### Other + +* From 56e7e42537166a6c0e696591852e81c1779bd24b Mon Sep 17 00:00:00 2001 From: randersson Date: Tue, 21 Oct 2025 08:52:19 -0400 Subject: [PATCH 08/13] Update test to account for CONSTRUCTOR_CONDA_EXE --- tests/test_examples.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_examples.py b/tests/test_examples.py index 4fde674c4..41a9c91c0 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -663,8 +663,9 @@ def test_macos_signing(tmp_path, self_signed_application_certificate_macos): # including binary archives like the PlugIns file cmd = ["pkgutil", "--expand-full", installer, expanded_path] _execute(cmd) + conda_exe_name = 'micromamba' if _is_micromamba(CONSTRUCTOR_CONDA_EXE) else 'conda.exe' components = [ - Path(expanded_path, "prepare_installation.pkg", "Payload", "osx-pkg-test", "conda.exe"), + Path(expanded_path, "prepare_installation.pkg", "Payload", "osx-pkg-test", conda_exe_name), Path(expanded_path, "Plugins", "ExtraPage.bundle"), ] validated_signatures = [] From 14bb8d1b6d3c7af3cfde3c92f38ae2bc0b672b29 Mon Sep 17 00:00:00 2001 From: randersson Date: Tue, 21 Oct 2025 09:19:15 -0400 Subject: [PATCH 09/13] Fix formatting and update the news --- news/1090-preserve-conda-exe-filename | 2 +- tests/test_examples.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/news/1090-preserve-conda-exe-filename b/news/1090-preserve-conda-exe-filename index 285e92946..44cc2360c 100644 --- a/news/1090-preserve-conda-exe-filename +++ b/news/1090-preserve-conda-exe-filename @@ -4,7 +4,7 @@ ### Bug fixes -* Resolved an issue when specifying `--conda-exe` with `micromamba` or `mamba`. The conda executable now maintain its original filename. +* Resolve an issue when specifying `--conda-exe` with `micromamba` or `mamba`, ensuring that the conda executable maintains its original filename. (#1033 via #1090) ### Deprecations diff --git a/tests/test_examples.py b/tests/test_examples.py index 41a9c91c0..97498f769 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -663,7 +663,7 @@ def test_macos_signing(tmp_path, self_signed_application_certificate_macos): # including binary archives like the PlugIns file cmd = ["pkgutil", "--expand-full", installer, expanded_path] _execute(cmd) - conda_exe_name = 'micromamba' if _is_micromamba(CONSTRUCTOR_CONDA_EXE) else 'conda.exe' + conda_exe_name = "micromamba" if _is_micromamba(CONSTRUCTOR_CONDA_EXE) else "conda.exe" components = [ Path(expanded_path, "prepare_installation.pkg", "Payload", "osx-pkg-test", conda_exe_name), Path(expanded_path, "Plugins", "ExtraPage.bundle"), From 7082e356d53f2769f2ac1babe6e522913b4c8295 Mon Sep 17 00:00:00 2001 From: randersson Date: Wed, 22 Oct 2025 10:15:12 -0400 Subject: [PATCH 10/13] adjust setting of conda_exe_name and unify sh and pkg installers --- constructor/header.sh | 2 +- constructor/osx/prepare_installation.sh | 2 +- constructor/osxpkg.py | 8 +++----- constructor/shar.py | 4 ++-- constructor/utils.py | 25 +++++++++++++++++++++++++ tests/test_examples.py | 9 +++++++-- 6 files changed, 39 insertions(+), 11 deletions(-) diff --git a/constructor/header.sh b/constructor/header.sh index 17f51bb92..c72bc6b67 100644 --- a/constructor/header.sh +++ b/constructor/header.sh @@ -496,7 +496,7 @@ CONDA_EXEC="$PREFIX/{{ conda_exe_name }}" extract_range "${boundary0}" "${boundary1}" > "$CONDA_EXEC" chmod +x "$CONDA_EXEC" -{%- if conda_exe_name != "_conda" or conda_exe_name != "conda.exe" %} +{%- if conda_exe_name != "_conda" %} # In case there are packages that depend on _conda ln -s "$CONDA_EXEC" "$PREFIX"/_conda {%- endif %} diff --git a/constructor/osx/prepare_installation.sh b/constructor/osx/prepare_installation.sh index 28a39f65d..eb83f37e5 100644 --- a/constructor/osx/prepare_installation.sh +++ b/constructor/osx/prepare_installation.sh @@ -30,7 +30,7 @@ unset MAMBARC chmod +x "$CONDA_EXEC" -{%- if conda_exe_name != "_conda" or conda_exe_name != "conda.exe" %} +{%- if conda_exe_name != "_conda" %} # In case there are packages that depend on _conda ln -s "$CONDA_EXEC" "$PREFIX"/_conda {%- endif %} diff --git a/constructor/osxpkg.py b/constructor/osxpkg.py index 311548bc5..86dfe84aa 100644 --- a/constructor/osxpkg.py +++ b/constructor/osxpkg.py @@ -25,6 +25,7 @@ approx_size_kb, copy_conda_exe, explained_check_call, + format_conda_exe_name, get_final_channels, parse_virtual_specs, rm_rf, @@ -364,7 +365,7 @@ def move_script(src, dst, info, ensure_shebang=False, user_script_type=None): variables["no_rcs_arg"] = info.get("_ignore_condarcs_arg", "") variables["script_env_variables"] = info.get("script_env_variables", {}) variables["initialize_conda"] = info.get("initialize_conda", "classic") - variables["conda_exe_name"] = Path(info["_conda_exe"]).name + variables["conda_exe_name"] = format_conda_exe_name(info["_conda_exe"]) data = render_template(data, **variables) @@ -590,10 +591,7 @@ def create(info, verbose=False): for dist in all_dists: os.link(join(CACHE_DIR, dist), join(pkgs_dir, dist)) - # Note also that this is handled differently between .sh-installers (via header.sh) - # and .pkg-installers (via prepare_installation.sh) - # since because of differences in unpacking the bootstrapper - exe_name = Path(info["_conda_exe"]).name + exe_name = format_conda_exe_name(info["_conda_exe"]) copy_conda_exe(prefix, exe_name, info["_conda_exe"]) # Sign conda-standalone so it can pass notarization diff --git a/constructor/shar.py b/constructor/shar.py index 2debe7770..8475fca38 100644 --- a/constructor/shar.py +++ b/constructor/shar.py @@ -19,7 +19,6 @@ from contextlib import nullcontext from io import BytesIO from os.path import basename, dirname, getsize, isdir, join, relpath -from pathlib import Path from .construct import ns_platform from .jinja import render_template @@ -31,6 +30,7 @@ approx_size_kb, copy_conda_exe, filename_dist, + format_conda_exe_name, get_final_channels, hash_files, parse_virtual_specs, @@ -111,7 +111,7 @@ def get_header(conda_exec, tarball, info): virtual_specs = parse_virtual_specs(info) min_osx_version = virtual_specs.get("__osx", {}).get("min") or "" variables["min_osx_version"] = min_osx_version - variables["conda_exe_name"] = Path(info["_conda_exe"]).name + variables["conda_exe_name"] = format_conda_exe_name(info["_conda_exe"]) min_glibc_version = virtual_specs.get("__glibc", {}).get("min") or "" variables["min_glibc_version"] = min_glibc_version diff --git a/constructor/utils.py b/constructor/utils.py index 705a42bd7..c63329c16 100644 --- a/constructor/utils.py +++ b/constructor/utils.py @@ -344,6 +344,31 @@ def identify_conda_exe(conda_exe: str | Path | None = None) -> tuple[StandaloneE return None, None +def format_conda_exe_name(conda_exe: str | Path) -> str: + """Return a formatted alias for given stand-alone executable. + + - If given executable cannot be identified, returns the basename of given executable. + - If stand-alone conda is identified, returns '_conda'. + - If stand-alone mamba/micromamba is identified, returns 'micromamba'. + + Parameters:: + - conda_exe: str | Path + Path to the conda executable to be accounted for. + """ + conda_exe_name, _ = identify_conda_exe(conda_exe) + if conda_exe_name is None: + # This implies that identify_conda_exe failed + return Path(conda_exe).name + if conda_exe_name == StandaloneExe.CONDA: + return "_conda" + elif conda_exe_name == StandaloneExe.MAMBA: + return "micromamba" + else: + # This should never happen, but as a safe-guard in case `identify_conda_exe` is changed without + # accounting for this function. + raise RuntimeError("Unable to format conda exe name") + + def check_version( exe_version: str | VersionOrder | None = None, min_version: str | None = None, diff --git a/tests/test_examples.py b/tests/test_examples.py index 97498f769..04241cffb 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -21,7 +21,12 @@ from conda.models.version import VersionOrder as Version from ruamel.yaml import YAML -from constructor.utils import StandaloneExe, check_version, identify_conda_exe +from constructor.utils import ( + StandaloneExe, + check_version, + format_conda_exe_name, + identify_conda_exe, +) if TYPE_CHECKING: from collections.abc import Generator, Iterable @@ -663,7 +668,7 @@ def test_macos_signing(tmp_path, self_signed_application_certificate_macos): # including binary archives like the PlugIns file cmd = ["pkgutil", "--expand-full", installer, expanded_path] _execute(cmd) - conda_exe_name = "micromamba" if _is_micromamba(CONSTRUCTOR_CONDA_EXE) else "conda.exe" + conda_exe_name = format_conda_exe_name(CONSTRUCTOR_CONDA_EXE) components = [ Path(expanded_path, "prepare_installation.pkg", "Payload", "osx-pkg-test", conda_exe_name), Path(expanded_path, "Plugins", "ExtraPage.bundle"), From afda8b561fd7da659b80a92cdcfbf14b58ce5afd Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 27 Oct 2025 15:21:10 -0400 Subject: [PATCH 11/13] Rename news file --- ...1090-preserve-conda-exe-filename => 1090-mamba-standalone-fix} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename news/{1090-preserve-conda-exe-filename => 1090-mamba-standalone-fix} (100%) diff --git a/news/1090-preserve-conda-exe-filename b/news/1090-mamba-standalone-fix similarity index 100% rename from news/1090-preserve-conda-exe-filename rename to news/1090-mamba-standalone-fix From 2675deb4a1436dc92314a369df06e5ca291d2bac Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 27 Oct 2025 15:24:38 -0400 Subject: [PATCH 12/13] Update news --- news/1090-mamba-standalone-fix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/news/1090-mamba-standalone-fix b/news/1090-mamba-standalone-fix index 44cc2360c..150b02711 100644 --- a/news/1090-mamba-standalone-fix +++ b/news/1090-mamba-standalone-fix @@ -4,7 +4,7 @@ ### Bug fixes -* Resolve an issue when specifying `--conda-exe` with `micromamba` or `mamba`, ensuring that the conda executable maintains its original filename. (#1033 via #1090) +* Resolve an issue when specifying `--conda-exe` with `micromamba` or `mamba`, mamba-based standalone binaries are now renamed to `micromamba` and a symbolic link to `_conda` is added for backwards compatibility. (#1033 via #1090) ### Deprecations From 71d748506b227ee7325626b353b233f5172f5b61 Mon Sep 17 00:00:00 2001 From: Marco Esters Date: Mon, 27 Oct 2025 16:16:06 -0700 Subject: [PATCH 13/13] Apply suggestion from @marcoesters --- news/1090-mamba-standalone-fix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/news/1090-mamba-standalone-fix b/news/1090-mamba-standalone-fix index 150b02711..0074a9f69 100644 --- a/news/1090-mamba-standalone-fix +++ b/news/1090-mamba-standalone-fix @@ -4,7 +4,7 @@ ### Bug fixes -* Resolve an issue when specifying `--conda-exe` with `micromamba` or `mamba`, mamba-based standalone binaries are now renamed to `micromamba` and a symbolic link to `_conda` is added for backwards compatibility. (#1033 via #1090) +* Rename mamba-based standalone binaries to `micromamba` and create a symbolic link to `_conda` for backwards compatibility. (#1033 via #1090) ### Deprecations