Unverified Commit b54e7a77 authored by Marius van den Beek's avatar Marius van den Beek Committed by GitHub
Browse files

Merge pull request #16831 from nsoranzo/release_23.0_conda_23.9

[23.0] Fix create/install commands for conda 23.9.0
parents ea2be33b 7fc41423
Loading
Loading
Loading
Loading
+16 −11
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ from typing import (
)

import packaging.version
from packaging.version import Version

from galaxy.util import (
    commands,
@@ -88,7 +89,7 @@ class CondaContext(installable.InstallableContext):
    installable_description = "Conda"
    _conda_build_available: Optional[bool]
    _conda_version: Optional[Union[packaging.version.Version, packaging.version.LegacyVersion]]
    _experimental_solver_available: Optional[bool]
    _libmamba_solver_available: Optional[bool]

    def __init__(
        self,
@@ -129,7 +130,7 @@ class CondaContext(installable.InstallableContext):
    def _reset_conda_properties(self) -> None:
        self._conda_version = None
        self._conda_build_available = None
        self._experimental_solver_available = None
        self._libmamba_solver_available = None

    @property
    def conda_version(self) -> Union[packaging.version.Version, packaging.version.LegacyVersion]:
@@ -167,13 +168,17 @@ class CondaContext(installable.InstallableContext):
        return override_channels_args

    @property
    def _experimental_solver_args(self) -> List[str]:
        if self._experimental_solver_available is None:
            self._experimental_solver_available = self.conda_version >= packaging.version.parse(
                "4.12.0"
            ) and self.is_package_installed("conda-libmamba-solver")
        if self._experimental_solver_available:
            return ["--experimental-solver", "libmamba"]
    def _solver_args(self) -> List[str]:
        if self._libmamba_solver_available is None:
            self._libmamba_solver_available = self.conda_version >= Version("4.12.0") and self.is_package_installed(
                "conda-libmamba-solver"
            )
        if self._libmamba_solver_available:
            # The "--solver" option was introduced in conda 22.11.0, when the
            # "--experimental-solver" option was deprecated.
            # The "--experimental-solver" option was removed in conda 23.9.0 .
            solver_option = "--solver" if self.conda_version >= Version("22.11.0") else "--experimental-solver"
            return [solver_option, "libmamba"]
        else:
            return []

@@ -288,7 +293,7 @@ class CondaContext(installable.InstallableContext):
                    continue
            if allow_local and self.use_local:
                create_args.append("--use-local")
            create_args.extend(self._experimental_solver_args)
            create_args.extend(self._solver_args)
            create_args.extend(self._override_channels_args)
            create_args.extend(args)
            ret = self.exec_command("create", create_args, stdout_path=stdout_path)
@@ -319,7 +324,7 @@ class CondaContext(installable.InstallableContext):
                    continue
            if allow_local and self.use_local:
                install_args.append("--use-local")
            install_args.extend(self._experimental_solver_args)
            install_args.extend(self._solver_args)
            install_args.extend(self._override_channels_args)
            install_args.extend(args)
            ret = self.exec_command("install", install_args, stdout_path=stdout_path)