1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-08 14:10:38 +02:00

gnu: conda: Move to pyproject-build-system.

* gnu/packages/package-management.scm (conda): Improve package style.
  [build-system]: Move to pyproject-build-system.
  [arguments]<#:test-flags>: Use field instead of check phase
  replacement.
  <#:phases>: Remove check phase replacement. Improve use of format in
  phase do-not-use-python-root-as-prefix. Use gexp. Put phase init
  after phase create-entrypoints.

Change-Id: Id1affbf8f80fae2882e4c8a88b1e817cf49a5c00
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
Nicolas Graves
2024-05-10 00:53:16 +02:00
committed by Sharlatan Hellseher
parent 426af5d4d3
commit 89cd8d59bc

View File

@@ -1166,10 +1166,49 @@ extracting, creating, and converting between formats.")
(sha256
(base32
"16vz4vx311ry9w35mi5wna8p8n3abd6wdqrpqzjfdlwv7hcr44s4"))))
(build-system python-build-system)
(build-system pyproject-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(list
#: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")
" and not ")))
#:phases
#~(modify-phases %standard-phases
;; The default version of pytest does not support these options.
(add-after 'unpack 'use-older-pytest
(lambda _
@@ -1182,10 +1221,6 @@ extracting, creating, and converting between formats.")
(add-after 'unpack 'correct-python-executable-name
(lambda* (#:key inputs #:allow-other-keys)
(let ((python (assoc-ref inputs "python-wrapper")))
#;
(substitute* "conda/common/path.py"
(("python_version or ''")
"python_version or '3'"))
(substitute* "conda/core/initialize.py"
(("python_exe = join")
(format #f "python_exe = \"~a/bin/python\" #"
@@ -1196,19 +1231,19 @@ extracting, creating, and converting between formats.")
(python (assoc-ref inputs "python-wrapper")))
(substitute* "tests/core/test_initialize.py"
(("\"\"\"\\) % conda_prefix")
(format #f "\"\"\") % \"~a\"" python))
(format #f "\"\"\") % ~s" python))
(("CONDA_PYTHON_EXE \"%s\"' % join\\(conda_prefix")
(format #f "CONDA_PYTHON_EXE \"%s\"' % join(\"~a\""
(format #f "CONDA_PYTHON_EXE \"%s\"' % join(~s"
python))
(("conda_prefix = abspath\\(sys.prefix\\)")
(format #f "conda_prefix = abspath(\"~a\")" out)))
(format #f "conda_prefix = abspath(~s)" out)))
(substitute* "conda/base/context.py"
(("os.chdir\\(sys.prefix\\)")
(format #f "os.chdir(\"~a\")" out))
(format #f "os.chdir(~s)" out))
(("sys.prefix, '.condarc'")
(format #f "\"~a\", '.condarc'" out))
(format #f "~s, '.condarc'" out))
(("return abspath\\(sys.prefix\\)")
(format #f "return abspath(\"~a\")" out))
(format #f "return abspath(~s)" out))
(("os.path.join\\(sys.prefix, bin_dir, exe\\)")
(format #f "\"~a/bin/conda\"" out))
(("'CONDA_EXE', sys.executable")
@@ -1216,47 +1251,8 @@ extracting, creating, and converting between formats.")
(add-before 'build 'create-version-file
(lambda _
(with-output-to-file "conda/.version"
(lambda () (display ,version)))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
;; These tests all require network access.
(for-each delete-file '("tests/cli/test_main_clean.py"
"tests/cli/test_main_rename.py"))
(when tests?
(setenv "HOME" "/tmp")
(invoke "py.test" "-vv"
"-k"
(string-append
"not 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.
" and not test_auto_update_conda"
;; This fails because the output directory is not a
;; Conda environment.
" and not test_list"
;; This fails because we patched the default root
;; prefix.
" and not test_default_target_is_root_prefix"
;; This fails because of missing features in python-flaky.
" and not test_no_features"
;; These fail because they require network access
" and not test_no_ssl"
" and not test_run_readonly_env"
" and not test_run_returns_int"
" and not test_run_returns_nonzero_errorlevel"
" and not test_run_returns_zero_errorlevel"
" and not test_run_uncaptured"
;; TODO: I don't understand what this failure means
" and not test_PrefixData_return_value_contract"
;; TODO: same here
" and not 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
" and not test_make_entry_point")))))
(add-after 'install 'init
(lambda () (display #$version)))))
(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".