forked from tribes/guix
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
This commit is contained in:
@@ -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
|
||||
(add-after 'unpack 'fix-pytest-config
|
||||
(lambda _
|
||||
(substitute* "setup.cfg"
|
||||
(("--xdoctest-.*") ""))))
|
||||
(add-after 'unpack 'fix-ruamel-yaml-dependency
|
||||
(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
|
||||
|
||||
Reference in New Issue
Block a user