summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2025-11-04 10:46:50 +0000
committerSharlatan Hellseher <sharlatanus@gmail.com>2025-11-04 12:05:54 +0000
commit873fc541a17f3a41d72c6b375754e035686de3fe (patch)
treedfaf7dc8ceb33a378793bdbb3f983feffd8af097 /gnu/packages
parent8245801e613dfb7cb4620e13c7feebbb168015fa (diff)
gnu: conda: Update to 25.9.1.
* gnu/packages/package-management.scm (conda): Update to 25.9.1. Use G-Expressions, move all propagated-inputs to inputs, as it's a final command. [arguments] <test-flags>: Ignored test files are reworked to keep just bare minimal of unit tests, more attention is required to resolve the rest, rework skipped tests. Run test in parallel. <phases>: Remove 'use-older-pytest, 'fix-ruamel-yaml-dependency, and 'create-version-file'; add 'fix-pytest-config, 'set-default-solver-to-classic, 'set-version, 'pre-check, and 'wrap-executable. [inputs]: Add python-archspec, python-boltons, python-boto3, python-charset-normalizer, python-conda-package-handling, python-conda-content-trust, python-distro, python-frozendict, python-jsonpatch, python-menuinst, python-packaging, python-platformdirs, python-pluggy, python-pycosat, python-requests, python-ruamel.yaml, python-setuptools, python-tqdm, python-truststore, and python-zstandard. [propagated-inputs]: Remove python-anaconda-client, python-boto3, python-conda-package-handling, python-cytoolz, python-mock, python-pluggy, python-pycosat, python-pytest, python-pyyaml, python-requests, python-responses, python-ruamel.yaml-0.16, python-tqdm, and zstd. [native-inputs]: Remove python-coverage, python-pytest-cov, and python-wheel; add nss-certs-for-test, patchelf, python-hatch-vcs, python-anaconda-client, python-flask, python-hatchling, python-importlib-resources, python-pexpect, python-pytest, python-pytest-mock, python-pytest-rerunfailures, python-pytest-split, python-pytest-xdist, python-responses, and python-werkzeug. Fixes: guix/guix#3928 Change-Id: Ie8b463e1614d1477b169cf1cf4f94328f49fc4f2
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/package-management.scm257
1 files changed, 164 insertions, 93 deletions
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 82c33c87494..eef6690305c 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1432,83 +1432,116 @@ manage (install/update) them for you.")
(define-public conda
(package
(name "conda")
- (version "22.9.0")
+ (version "25.9.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/conda/conda")
- (commit version)))
+ (url "https://github.com/conda/conda")
+ (commit version)))
(file-name (git-file-name name version))
(sha256
- (base32
- "16vz4vx311ry9w35mi5wna8p8n3abd6wdqrpqzjfdlwv7hcr44s4"))))
+ (base32 "1s8xxc8rfayfq6p3iwgp9v3hbanp30ciw7cznppn1qk1l9fy7nxj"))))
(build-system pyproject-build-system)
(arguments
(list
+ ;; tests: 1616 passed, 169 skipped, 12 xfailed, 673 warnings
#:test-flags
- '(list
- "--ignore=tests/cli/test_main_clean.py"
- "--ignore=tests/cli/test_main_rename.py"
- "-k" (string-append
- "not "
- (string-join
- (list
- "integration"
- ;; This one reports a newer version of conda than
- ;; expected; conda-1.5.2-py27_0 instead of
- ;; conda-1.3.5-py27_0.
- "test_auto_update_conda"
- ;; This fails because the output directory is not a
- ;; Conda environment.
- "test_list"
- ;; This fails because we patched the default root
- ;; prefix.
- "test_default_target_is_root_prefix"
- ;; This fails because of missing features in python-flaky.
- "test_no_features"
- ;; These fail because they require network access
- "test_no_ssl"
- "test_run_readonly_env"
- "test_run_returns_int"
- "test_run_returns_nonzero_errorlevel"
- "test_run_returns_zero_errorlevel"
- "test_run_uncaptured"
-
- ;; TODO: I don't understand what this failure means
- "test_PrefixData_return_value_contract"
- ;; TODO: same here
- "test_install_1"
- ;; Not sure if this is really wrong. This fails because
- ;; /gnu/store/...conda-22.9.0/bin/python
- ;; is not /gnu/store/...python-wrapper-3.9.9/bin/python
- "test_make_entry_point"
- "test_get_python_info" "test__get_python_info"
- "test_install_conda_csh"
- "test_install_conda_fish")
- " and not ")))
+ #~(list "-m" "not integration"
+ "--numprocesses" (number->string (min 8 (parallel-job-count)))
+ ;; Tests try to search for system level packages and fail with
+ ;; error: The following packages are missing from the target
+ ;; environment: patch, ca-certificates, zlib ...
+ "--ignore=tests/cli/test_subcommands.py"
+ ;; ModuleNotFoundError: No module named 'conda_libmamba_solver'
+ "--ignore=tests/test_solvers.py"
+ ;; Network access is required.
+ "--ignore=tests/trust/test_signature_verification.py"
+ "-k" (string-join
+ ;; XXX: Issues salad: network access, can't detect Conda
+ ;; environemnt, assertion failed; review if they may be
+ ;; fixed.
+ (list "not test_PrefixData_return_value_contract"
+ "test__get_python_info"
+ "test_auto_update_conda"
+ "test_build_version_shows_as_changed "
+ "test_cannot_rename_base_env_by_name"
+ "test_cannot_rename_base_env_by_path"
+ "test_conda_doctor_happy_path"
+ "test_conda_doctor_happy_path_verbose"
+ "test_conda_pip_interop_dependency_satisfied_by_pip"
+ "test_create_env_json"
+ "test_denylist_channels"
+ "test_dont_update_packages_with_version_constraints"
+ "test_environment"
+ "test_exit_codes"
+ "test_explicit_missing_cache_entries"
+ "test_explicit_packages"
+ "test_export_explicit_format_validation_errors"
+ "test_export_ignore_channels_flag"
+ "test_export_no_builds_format"
+ "test_export_override_channels_and_ignore_channels_"
+ "test_export_package_alphabetical_ordering"
+ "test_export_pip_dependencies_handling"
+ "test_export_preserves_channels_from_installed_"
+ "test_export_regular_format_consistency"
+ "test_export_with_pip_dependencies_integration"
+ "test_extrapolate"
+ "test_fields_all"
+ "test_fields_invalid"
+ "test_file_locking_not_supported"
+ "test_file_locking_supported"
+ "test_frozen_env_cep22"
+ "test_get_packages_behavior_with_interoperability"
+ "test_get_python_info"
+ "test_health_check_ran"
+ "test_info_envs_frozen"
+ "test_install_1"
+ "test_install_from_extracted_package"
+ "test_installer_installs_explicit"
+ "test_is_active_prefix"
+ "test_list_all_known_prefixes_with_none_values_error"
+ "test_list_argument_variations"
+ "test_list_json"
+ "test_list_package"
+ "test_list_revisions"
+ "test_load_entrypoints_importerror"
+ "test_multiline_run_command"
+ "test_post_solve_action_raises_exception"
+ "test_post_solve_invoked"
+ "test_post_transaction_raises_exception"
+ "test_pre_solve_invoked"
+ "test_pre_transaction_raises_exception"
+ "test_print_unexpected_error_message_upload_2"
+ "test_protected_dirs_error_for_rename"
+ "test_remove_all"
+ "test_remove_all_keep_env"
+ "test_run_readonly_env"
+ "test_run_returns_int"
+ "test_run_returns_zero_errorlevel"
+ "test_solve_1"
+ "test_transaction_hooks_invoked"
+ "test_update"
+ "test_validate_subdir_config"
+ "test_validate_subdir_config_invalid_subdir")
+ " and not "))
#:phases
#~(modify-phases %standard-phases
- ;; The default version of pytest does not support these options.
- (add-after 'unpack 'use-older-pytest
- (lambda _
- (substitute* "setup.cfg"
- (("--xdoctest-.*") ""))))
- (add-after 'unpack 'fix-ruamel-yaml-dependency
+ (add-after 'unpack 'fix-pytest-config
(lambda _
- (substitute* "setup.py"
- (("ruamel_yaml_conda") "ruamel.yaml"))))
+ (substitute* "pyproject.toml"
+ (("--cov.*") ""))))
(add-after 'unpack 'correct-python-executable-name
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((python (assoc-ref inputs "python-wrapper")))
+ (lambda _
+ (let ((python #$(this-package-input "python-wrapper")))
(substitute* "conda/core/initialize.py"
(("python_exe = join")
(format #f "python_exe = \"~a/bin/python\" #"
python))))))
(add-after 'unpack 'do-not-use-python-root-as-prefix
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (python (assoc-ref inputs "python-wrapper")))
+ ;; XXX: Proper wrap CONDA_EXE, CONDA_ENVS_PATH, CONDA_PKGS_DIRS.
+ (lambda _
+ (let ((python #$(this-package-input "python-wrapper")))
(substitute* "tests/core/test_initialize.py"
(("\"\"\"\\) % conda_prefix")
(format #f "\"\"\") % ~s" python))
@@ -1516,57 +1549,95 @@ manage (install/update) them for you.")
(format #f "CONDA_PYTHON_EXE \"%s\"' % join(~s"
python))
(("conda_prefix = abspath\\(sys.prefix\\)")
- (format #f "conda_prefix = abspath(~s)" out)))
+ (format #f "conda_prefix = abspath(~s)" #$output)))
(substitute* "conda/base/context.py"
(("os.chdir\\(sys.prefix\\)")
- (format #f "os.chdir(~s)" out))
+ (format #f "os.chdir(~s)" #$output))
(("sys.prefix, '.condarc'")
- (format #f "~s, '.condarc'" out))
+ (format #f "~s, '.condarc'" #$output))
(("return abspath\\(sys.prefix\\)")
- (format #f "return abspath(~s)" out))
+ (format #f "return abspath(~s)" #$output))
(("os.path.join\\(sys.prefix, bin_dir, exe\\)")
- (format #f "\"~a/bin/conda\"" out))
+ (format #f "\"~a/bin/conda\"" #$output))
(("'CONDA_EXE', sys.executable")
- (format #f "'CONDA_EXE', \"~a/bin/conda\"" out))))))
- (add-before 'build 'create-version-file
- (lambda _
- (with-output-to-file "conda/.version"
- (lambda () (display #$version)))))
+ (format #f "'CONDA_EXE', \"~a/bin/conda\"" #$output))))))
(add-after 'create-entrypoints 'init
;; This writes a whole bunch of shell initialization files to the
- ;; prefix directory. Many features of conda can only be used after
- ;; running "conda init".
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
+ ;; prefix directory. Many features of conda can only be used
+ ;; after running "conda init".
+ (lambda _
(setenv "HOME" "/tmp")
- (invoke (string-append (assoc-ref outputs "out")
- "/bin/conda")
- "init"))))))
+ (invoke (string-append #$output "/bin/conda") "init")))
+ (add-after 'unpack 'set-default-solver-to-classic
+ ;; XXX: Remove when conda-libmamba-solver is packaged.
+ (lambda _
+ (substitute* "conda/base/constants.py"
+ (("DEFAULT_SOLVER: Final = \"libmamba\"")
+ "DEFAULT_SOLVER: Final = \"classic\""))))
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; TODO: Package libsolv, libmamba, and conda-libmamba-solver:
+ ;; <https://github.com/openSUSE/libsolv>,
+ ;; <https://github.com/conda/conda-libmamba-solver>,
+ ;; <https://github.com/mamba-org/mamba>.
+ (setenv "CONDA_CLASSIC_SOLVER" "classic")
+ (setenv "CONDA_DEFAULT_SOLVER" "classic")
+ (setenv "CONDA_TEST_SOLVERS" "classic")
+ (setenv "HOME" "/tmp")))
+ (add-after 'wrap 'wrap-executable
+ (lambda _
+ (wrap-program (string-append #$output "/bin/conda")
+ `("CONDA_EXE" prefix
+ (,(string-append #$output "/bin/conda")))
+ `("CONDA_ENVS_PATH" prefix
+ (,(string-append "$HOME/.conda/envs")))
+ `("CONDA_PKGS_DIRS" prefix
+ (,(string-append "$HOME/.conda/pkgs")))))))))
+ (native-inputs
+ (list nss-certs-for-test
+ patchelf
+ python-hatch-vcs
+ python-anaconda-client
+ python-flaky
+ python-flask
+ python-hatchling
+ python-importlib-resources
+ python-pexpect
+ python-pytest
+ python-pytest-mock
+ python-pytest-rerunfailures
+ python-pytest-split
+ python-pytest-timeout
+ python-pytest-xdist
+ python-pytest-xprocess
+ python-responses
+ python-werkzeug))
(inputs
- (list python-wrapper))
- (propagated-inputs
- (list python-anaconda-client
+ (list python-archspec
+ python-boltons
python-boto3
+ python-charset-normalizer
+ ;; python-conda-libmamba-solver ;TODO: not packaged yet
python-conda-package-handling
- python-cytoolz
- python-mock
+ python-conda-content-trust
+ python-distro
+ python-frozendict
+ python-jsonpatch
+ python-menuinst
+ python-packaging
+ python-platformdirs
python-pluggy
python-pycosat
- python-pytest
- python-pyyaml
python-requests
- python-responses
- python-ruamel.yaml-0.16
+ python-ruamel.yaml
+ python-setuptools
python-tqdm
- ;; XXX: This is dragged in by libarchive and is needed at runtime.
- zstd))
- (native-inputs
- (list python-coverage
- python-flaky
- python-pytest-cov
- python-pytest-timeout
- python-pytest-xprocess
- python-wheel))
+ python-truststore
+ python-wrapper ;XXX: Check if it's actually required
+ python-zstandard))
(home-page "https://github.com/conda/conda")
(synopsis "Cross-platform, OS-agnostic, system-level binary package manager")
(description