From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53773) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d2HSo-0003z1-Hp for guix-patches@gnu.org; Sun, 23 Apr 2017 09:22:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d2HSk-0000vL-6E for guix-patches@gnu.org; Sun, 23 Apr 2017 09:22:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:36978) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d2HSk-0000vF-1b for guix-patches@gnu.org; Sun, 23 Apr 2017 09:22:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1d2HSj-0007Tb-Qq for guix-patches@gnu.org; Sun, 23 Apr 2017 09:22:01 -0400 Subject: bug#26524: Add conda and dependencies Resent-Message-ID: References: From: Ricardo Wurmus In-reply-to: Date: Sun, 23 Apr 2017 15:21:25 +0200 Message-ID: <87tw5fs1ii.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Frederick Muriithi Cc: 26524@debbugs.gnu.org Hi Frederick, > This is bug is to track adding conda and its dependencies. I will be > sending patches adding the dependencies for conda here, until we get > conda in mainline. Thanks a lot for your patches! I have a couple of comments for the first batch of patches. I’m not sure that the strict version requirements are actually reasonable. Instead of packaging older versions it may make more sense to patch away the version range from the setup.py files. > * gnu/packages/python.scm (python-radon): New variable. > --- > gnu/packages/python.scm | 40 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 39 insertions(+), 1 deletion(-) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 231c629..23b6d86 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -13950,7 +13950,7 @@ recognize TestCases.") > (package-with-python2 python-mando)) > > (define-public python-mando-0.3.1 > - ;; python-radon (version 1.5.0) has a requirement > + ;; python-radon has a requirement > ;; for mando<0.4,>=0.3 > (package > (inherit python-mando) > @@ -13965,3 +13965,41 @@ recognize TestCases.") > (sha256 > (base32 > "17jlkdpqw22z1nyml5ybslilqkzmnk0dxxjml8bfghav1l5hbwd2")))))) > + > +(define-public python-radon > + ;; xenon has a hard requirement for radon>=1.4.0,<1.5 > + (package > + (name "python-radon") > + (version "1.4.2") It would be good to add “python-radon” at the latest version and then create a variant called “python-radon-1.4” with the comment that it is required by “python-xenon”. > +(define-public python2-radon > + (package-with-python2 python-radon)) You only mentioned “python-radon” in the commit summary. Unless you really need the Python 2 variant I’m thinking that maybe we shouldn’t add it. What do you think? If it’s needed for conda then please keep it but mention it in the commit summary, e.g.: --8<---------------cut here---------------start------------->8--- gnu: Add python-radon. * gnu/packages/python.scm (python-radon, python2-radon): New variables. --8<---------------cut here---------------end--------------->8--- > * gnu/packages/python.scm (python-httpbin): New variable. > --- > gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) The same comment as above applies. Please mention or drop the python2 variant. I think this package should go to “(gnu packages web)” where we keep similar packages; the “(gnu packages python)” module is a little too crowded. > + > +(define-public python-httpbin > + (package > + (name "python-httpbin") > + (version "0.5.0") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "httpbin" version)) > + (sha256 > + (base32 > + "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr")))) > + (build-system python-build-system) > + (propagated-inputs > + `(("python-decorator" ,python-decorator) > + ("python-flask" ,python-flask) > + ("python-itsdangerous" ,python-itsdangerous) > + ("python-markupsafe" ,python-markupsafe) > + ("python-six" ,python-six))) > + (home-page "https://github.com/Runscope/httpbin") > + (synopsis "HTTP Request and Response Service") Please change this to “HTTP request and response service”. > + (description "HTTP Request and Response Service which covers all kinds of HTTP > +scenarios") Please use full sentences and punctuation in the description. > + (license license:expat))) Actually, this is under the ISC license: https://github.com/kennethreitz/httpbin/blob/master/LICENSE > + > +(define-public python2-httpbin > + (package-with-python2 python-httpbin)) See above. > From e9764356e3601c2927021eb5b687bc432b1eff20 Mon Sep 17 00:00:00 2001 > From: Muriithi Frederick Muriuki > Date: Fri, 14 Apr 2017 10:55:59 +0300 > Subject: [PATCH 03/20] gnu: Add python-pytest-httpbin > > * gnu/packages/python.scm (python-pytest-httpbin): New variable. > --- > gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 618b965..73d217b 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -14030,3 +14030,31 @@ scenarios") > > (define-public python2-httpbin > (package-with-python2 python-httpbin)) > + > +(define-public python-pytest-httpbin > + ;; httpretty requires pytest-httpbin==0.0.7 > + (package > + (name "python-pytest-httpbin") > + (version "0.0.7") Please do the same as I suggested above: package the latest version and then create a variant using this version, and add a comment on top. Before creating the variant, however, it would be good to check if this exact version requirement is actually reasonable. > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "pytest-httpbin" version)) > + (sha256 > + (base32 > + "08ghq923dn33rllip3vap2p9fb680g0i96jdn5lcpfy8amq8mbq3")))) > + (build-system python-build-system) > + (propagated-inputs > + `(("python-six" ,python-six) > + ("python-httpbin" ,python-httpbin) > + ("python-pytest" ,python-pytest))) > + (home-page > + "https://github.com/kevin1024/pytest-httpbin") > + (synopsis > + "Easily test your HTTP library against a local copy of httpbin") I would change this to “Test > + (description > + "Easily test your HTTP library against a local copy of httpbin") Here’s a better description: “Pytest-httpbin creates a @code{pytest} fixture that is dependency-injected into your tests. It automatically starts up a HTTP server in a separate thread running @code{httpbin} and provides your test with the URL in the fixture.” > + (license license:expat))) > + > +(define-public python2-pytest-httpbin > + (package-with-python2 python-pytest-httpbin)) See above. > From 1f4c44b1d47c2cc75cef75704ccd1cc386d5a862 Mon Sep 17 00:00:00 2001 > From: Muriithi Frederick Muriuki > Date: Fri, 14 Apr 2017 11:02:10 +0300 > Subject: [PATCH 04/20] gnu: Add python-sphinx-rtd-theme-0.1.9 > > * gnu/packages/python.scm (python-sphinx-rtd-theme-0.1.9) New variable ^ ^ : . > --- > gnu/packages/python.scm | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 73d217b..631b6fd 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -14058,3 +14058,24 @@ scenarios") > > (define-public python2-pytest-httpbin > (package-with-python2 python-pytest-httpbin)) > + > +(define-public python-sphinx-rtd-theme-0.1.9 > + ;; python-httpretty has a hard requirement for > + ;; python-sphinx-rtd-theme version 0.1.9 Are these themes so different? Does it really make sense to use this older variant instead of the latest version? > + (package > + (inherit python-sphinx-rtd-theme) > + (name "python-sphinx-rtd-theme") > + (version "0.1.9") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "sphinx_rtd_theme" version)) > + (sha256 > + (base32 > + "18d0r63w7jpdrk4q5qy26n08vdlmnj9sar93akwjphyambw4cf17")))) > + (propagated-inputs > + `(("python-sphinx" ,python-sphinx-1.5.3) > + ("python-snowballstemmer" ,python-snowballstemmer))))) Does it really make sense to override the Sphinx version here? Can the latest version be used? > + > +(define-public python2-sphinx-rtd-theme-0.1.9 > + (package-with-python2 python-sphinx-rtd-theme-0.1.9)) See above. > From 77e2a627333baa82d4f83882e5bda629e5f2a381 Mon Sep 17 00:00:00 2001 > From: Muriithi Frederick Muriuki > Date: Fri, 14 Apr 2017 11:06:00 +0300 > Subject: [PATCH 05/20] gnu: Add python-sphinx-1.3.3 > > * gnu/packages/python.scm (python-sphinx-1.3.3): New variable. > --- > gnu/packages/python.scm | 37 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 37 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 631b6fd..a849e70 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -14079,3 +14079,40 @@ scenarios") > > (define-public python2-sphinx-rtd-theme-0.1.9 > (package-with-python2 python-sphinx-rtd-theme-0.1.9)) > + > +(define-public python-sphinx-1.3.3 > + ;; python-httpretty has a hard requirement for > + ;; sphinx == 1.3.3 Hmm, yet another variant of Sphinx? We already have the latest version and version 1.5.3. Can we really not do without this variant? Also, please put this where the two other Sphinx packages are defined; it’s best to keep them all together. > + (package > + (inherit python-sphinx) > + (name "python-sphinx") > + (version "1.3.3") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "Sphinx" version)) > + (sha256 > + (base32 > + "1n3h08qxfx9bywv7nhjz0p5bpp1xgy4nzalxr3mx6syra7rvyxs0")))) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (replace 'check > + (lambda _ > + ;; Requires Internet access. > + (delete-file "tests/test_build.py") > + (delete-file "tests/test_build_applehelp.py") > + (delete-file "tests/test_i18n.py") > + (delete-file "tests/test_build_html.py") > + (delete-file "tests/test_build_texinfo.py") > + (delete-file "tests/test_build_latex.py") > + (zero? (system* "make" "test"))))))) > + (native-inputs > + `(("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) You defined another theme above. Are you sure that this latest version of the theme package should be used here? > + ("python-nose" ,python-nose) > + ("graphviz" ,graphviz) > + ("python-html5lib" ,python-html5lib) > + ("python-mock" ,python-mock))))) > + > +(define-public python2-sphinx-1.3.3 > + (package-with-python2 python-sphinx-1.3.3)) Please only provide this variant if it is really needed. See above for comment on commit summary. > From 075fec8683fec552e030c4c5f4de92dd3d4942eb Mon Sep 17 00:00:00 2001 > From: Muriithi Frederick Muriuki > Date: Fri, 14 Apr 2017 11:08:32 +0300 > Subject: [PATCH 06/20] gnu: Add python-coverage-4.0.3 > > * gnu/packages/python.scm (python-coverage-4.0.3): New variable. > --- > gnu/packages/python.scm | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index a849e70..1ec1744 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -14116,3 +14116,20 @@ scenarios") > > (define-public python2-sphinx-1.3.3 > (package-with-python2 python-sphinx-1.3.3)) > + > +(define-public python-coverage-4.0.3 > + ;; httpretty has a hard requirement for coverage==4.0.3 > + (package > + (inherit python-coverage) > + (name "python-coverage") > + (version "4.0.3") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "coverage" version)) > + (sha256 > + (base32 > + "0qjlja8ny4gcfp8abqfwdrvr8qw9kr69lkja0b4cqqbsdmdjgcc5")))))) Please double-check that we httpretty must use this exact version. Otherwise you could patch the version check in “setup.py”. > +(define-public python2-coverage-4.0.3 > + (package-with-python2 python-coverage-4.0.3)) See above :) > From 851864f62e82a10720cfe24642d22790f662f6bc Mon Sep 17 00:00:00 2001 > From: Muriithi Frederick Muriuki > Date: Fri, 14 Apr 2017 11:12:38 +0300 > Subject: [PATCH 07/20] gnu: Add python-urllib3-1.12 > > * gnu/packages/python.scm (python-urllib3-1.12): New variable. > --- > gnu/packages/python.scm | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 1ec1744..9cb27d8 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -14133,3 +14133,19 @@ scenarios") > > (define-public python2-coverage-4.0.3 > (package-with-python2 python-coverage-4.0.3)) > + > +(define-public python-urllib3-1.12 > + (package > + (inherit python-urllib3) > + (name "python-urllib3") > + (version "1.12") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "urllib3" version)) > + (sha256 > + (base32 > + "1ikj72kd4cdcq7pmmcd5p6s9dvp7wi0zw01635v4xzkid5vi598f")))))) Why is this needed? If it is really necessary, please add a comment above. > +(define-public python2-urllib3-1.12 > + (package-with-python2 python-urllib3-1.12)) See above :) > From 45f52eee27ac62a7f2b5bc2acbd289d0151a7581 Mon Sep 17 00:00:00 2001 > From: Muriithi Frederick Muriuki > Date: Fri, 14 Apr 2017 11:23:33 +0300 > Subject: [PATCH 08/20] gnu: Add python-sure > > * gnu/package/python.scm (python-sure): New variable. > --- > gnu/packages/python.scm | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 9cb27d8..951b7c7 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -14149,3 +14149,33 @@ scenarios") > > (define-public python2-urllib3-1.12 > (package-with-python2 python-urllib3-1.12)) > + > +(define-public python-sure > + (package > + ;; httpretty has a hard requirement for sure==1.2.24 Please see my comments above for how to handle this. Create a package for the latest version, then inherit from it for “python-sure-1.2”. But also check that httpretty really won’t work with the latest version. It would be much better to patch httpretty than to add dozens of package variants for one package. > + (name "python-sure") > + (version "1.2.24") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "sure" version)) > + (sha256 > + (base32 > + "1lyjq0rvkbv585dppjdq90lbkm6gyvag3wgrggjzyh7cpyh5c12w")))) > + (build-system python-build-system) > + (propagated-inputs > + `(("python-mock" ,python-mock) > + ("python-six" ,python-six))) > + (native-inputs > + `(("python-nose" ,python-nose))) > + (home-page > + "http://github.com/gabrielfalcao/sure") > + (synopsis > + "Sure is an automated testing library in python for python") > + (description > + "Sure is a python library for python that leverages a DSL for writing assertions. > +Sure is heavily inspired by @code{RSpec Expectations} and > @code{should.js}") Please change this to: "Sure is a Python library that leverages a DSL for writing assertions. Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}." > + (license license:gpl3))) This is actually GPLv3 or later. Please use “license:gpl3+”. > + > +(define-public python2-sure > + (package-with-python2 python-sure)) See above. > From fc1780bf7930de8c6b96966e19e7ba4aecf52589 Mon Sep 17 00:00:00 2001 > From: Muriithi Frederick Muriuki > Date: Fri, 14 Apr 2017 11:35:40 +0300 > Subject: [PATCH 09/20] gnu: Add python-couleur > > * gnu/packages/python.scm (python-couleur): New variable. > --- > gnu/packages/python.scm | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 951b7c7..148ed74 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -14179,3 +14179,32 @@ Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}") > > (define-public python2-sure > (package-with-python2 python-sure)) > + > +(define-public python-couleur > + (package > + (name "python-couleur") > + (version "0.6.2") > + (source > + (origin > + (method url-fetch) > + (uri (pypi-uri "couleur" version)) > + (sha256 > + (base32 > + "1qqaxyqz74wvid0cr119dhcwz0h0if5b5by44zl49pd5z65v58k1")))) > + (build-system python-build-system) > + (arguments > + `(;; The package builds successfully with python3, but the > + ;; tests are python-2 dependent, (strings of the form > + ;; ur'val-of-str' and imports of python-2 specific > + ;; modules) > + #:tests? #f)) As far as I can tell, this is not a problem of testing. The package may simply not work with Python 3 at all. I tried to import the package: --8<---------------cut here---------------start------------->8--- rekado in guix: ./pre-inst-env guix environment --ad-hoc python-wrapper python-couleur rekado in guix [env]: python Python 3.5.3 (default, Jan 1 1970, 00:00:01) [GCC 5.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import couleur Traceback (most recent call last): File "", line 1, in File "/gnu/store/yc75aildgdxz7zcm0m2ffdn8hgysb777-profile/lib/python3.5/site-packages/couleur/__init__.py", line 104 up_count_regex = re.compile(wrap_escaped(ur'up')) ^ SyntaxError: invalid syntax >>> rekado in guix [env]: --8<---------------cut here---------------end--------------->8--- I don’t think it’s right to disable the tests here. The Python 3 variant seems to be genuinely broken. > + (home-page > + "http://github.com/gabrielfalcao/couleur") > + (synopsis > + "ANSI terminal tool for python, colored shell and other handy > fancy features") Please capitalize “python”. If possible, please shorten it. > + (description > + "Couleur is a handy tool to play around with ANSI features in a > unix terminal.") I would remove “unix”. > + (license license:asl2.0))) The license seems to be GPLv3+. The license headers in “couleur/__init.py__” and “setup.py” both state GPLv3+. Only the classifiers section in “setup.py” says “License :: OSI Approved :: Apache Software License”. > + > +(define-public python2-couleur > + (package-with-python2 python-couleur)) See above. Could you please review the comments so far and send updated patches? -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net