[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
37/97: gnu: python-pbr: Rework bootstrapping.
From: |
Hartmut Goebel |
Subject: |
37/97: gnu: python-pbr: Rework bootstrapping. |
Date: |
Tue, 18 Oct 2016 20:13:18 +0000 (UTC) |
htgoebel pushed a commit to branch wip-python-build-system
in repository guix.
commit a60b9e2aa5c0c2f9af7cb5cb3d311066ccb75f75
Author: Hartmut Goebel <address@hidden>
Date: Thu Oct 13 14:46:35 2016 +0200
gnu: python-pbr: Rework bootstrapping.
For breaking the cyclic build, formerly a separate (older) version was used
for bootstrapping. Now we use the same version just without tests and
without
test dependencies.
* gnu/packages/python.scm (python-pbr-0.11, python2-pbr-0.11):
replace by … (python-pbr-minimal, python2-pbr-minimal).
(python-pbr) inherit from python-pbr-minimal, adding the requirements for
testing and building the documentation.
(python-fixtures) [native-inputs] Use python-pbr-minimal here.
(python-testrepository): [native-inputs] Add it here, it was a missing
dependency.
---
gnu/packages/python.scm | 106 +++++++++++++++--------------------------------
1 file changed, 34 insertions(+), 72 deletions(-)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 93396bc..edfbac1 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1868,104 +1868,65 @@ protocol.")
(define-public python2-subunit
(package-with-python2 python-subunit))
-;; Recent versions of python-fixtures need a recent version of python-pbr,
-;; which needs a recent version of python-fixtures. To fix this circular
-;; dependency, we keep old versions of python-fixtures and python-pbr to
-;; bootstrap the whole thing:
-;; - python-fixtures-0.3.16 is used to build python-pbr-0.11
-;; - python-pbr-0.11 is used to build python-fixtures
-;; - python-fixtures is used to build python-pbr
-(define-public python-fixtures-0.3.16
- (package
- (name "python-fixtures")
- (version "0.3.16")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/f/fixtures/fixtures-"
- version ".tar.gz"))
- (sha256
- (base32
- "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc"))))
- (build-system python-build-system)
- (arguments
- '(#:tests? #f)) ; no setup.py test command
- (home-page "https://launchpad.net/python-fixtures")
- (synopsis "Python test fixture library")
- (description
- "Fixtures provides a way to create reusable state, useful when writing
-Python tests.")
- (license (list license:bsd-3 license:asl2.0)))) ; at user's option
-
-(define-public python2-fixtures-0.3.16
- (package-with-python2 python-fixtures-0.3.16))
-
-(define-public python-pbr-0.11
- (package
- (name "python-pbr")
- (version "0.11.0")
+;; Recent versions of python-fixtures and python-testrepository need
+;; python-pbr for packaging, which itself needs these two packages for
+;; testing.
+;; To fix this circular dependency, we use a build of python-pbr, based on the
+;; same source, just without any test dependencies and with tests disabled.
+;; python-pbr-minmal is then used to package python-fixtures and
+;; python-testrepository.
+;; Strictly speaking we currently could remove the test-requirements from the
+;; normal python-pbr package (and save this package) since test are disabled
+;; there anyway. But this may change in future.
+(define python-pbr-minimal
+ (package
+ (name "python-pbr-minimal")
+ (version "1.8.1")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/p/pbr/pbr-"
- version ".tar.gz"))
+ (uri (pypi-uri "pbr" version))
(sha256
(base32
- "0v9gb7gyqf7q9s99l0nnjj9ww9b0jvyqlwm4d56pcyinxydddw6p"))))
+ "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2"))))
(build-system python-build-system)
(arguments
- `(#:tests? #f)) ;; Most tests seem to use the Internet.
- (propagated-inputs
- `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)))
- (home-page "https://launchpad.net/pbr")
- (synopsis "Change the default behavior of Python’s setuptools")
+ `(#:tests? #f))
+ (home-page "http://docs.openstack.org/developer/pbr/")
+ (synopsis "Minimal build of python-pbr used for bootstrapping")
(description
- "Python Build Reasonableness (PBR) is a library that injects some useful
-and sensible default behaviors into your setuptools run.")
+ "Used only for bootstrapping python2-pbr, you should not need this.")
(license license:asl2.0)))
-(define-public python2-pbr-0.11
- (package-with-python2 python-pbr-0.11))
+(define python2-pbr-minimal
+ (package-with-python2 python-pbr-minimal))
(define-public python-pbr
(package
+ (inherit python-pbr-minimal)
(name "python-pbr")
- (version "1.8.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/p/pbr/pbr-"
- version
- ".tar.gz"))
- (sha256
- (base32
- "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2"))))
- (build-system python-build-system)
(arguments
`(#:tests? #f)) ;; Most tests seem to use the Internet.
(propagated-inputs
- `(("python-testrepository" ,python-testrepository)
- ("git" ,git))) ;; pbr actually uses the "git" binary.
- (inputs
+ `(("git" ,git))) ;; pbr actually uses the "git" binary.
+ (native-inputs
`(("python-fixtures" ,python-fixtures)
- ("python-mimeparse" ,python-mimeparse)
+ ;; discover, coverage, hacking, subunit
("python-mock" ,python-mock)
- ("python-six" ,python-six)
+ ("python-six" ,python-six)
("python-sphinx" ,python-sphinx)
("python-testrepository" ,python-testrepository)
("python-testresources" ,python-testresources)
("python-testscenarios" ,python-testscenarios)
("python-testtools" ,python-testtools)
("python-virtualenv" ,python-virtualenv)))
- (home-page "https://launchpad.net/pbr")
- (synopsis "Change the default behavior of Python’s setuptools")
+ (synopsis "Enhance the default behavior of Python’s setuptools")
(description
"Python Build Reasonableness (PBR) is a library that injects some useful
-and sensible default behaviors into your setuptools run.")
- (license license:asl2.0)))
+and sensible default behaviors into your setuptools run. It will set
+versions, process requirements files and generate AUTHORS and ChangeLog file
+from git information.
+")))
(define-public python2-pbr
(package-with-python2 python-pbr))
@@ -1985,7 +1946,7 @@ and sensible default behaviors into your setuptools run.")
(propagated-inputs
`(("python-six" ,python-six)))
(native-inputs
- `(("python-pbr-0.11" ,python-pbr-0.11)
+ `(("python-pbr-minimal" ,python-pbr-minimal)
("python-testtools" ,python-testtools)))
(home-page "https://launchpad.net/python-fixtures")
(synopsis "Python test fixture library")
@@ -2015,6 +1976,7 @@ Python tests.")
`(("python-testtools" ,python-testtools)))
(native-inputs
`(("python-fixtures" ,python-fixtures)
+ ("python-pbr-minimal" ,python-pbr-minimal) ;; same as for building
fixture
("python-subunit" ,python-subunit)
("python-mimeparse" ,python-mimeparse)))
(home-page "https://launchpad.net/testrepository")
- 75/97: Add TODO comments., (continued)
- 75/97: Add TODO comments., Hartmut Goebel, 2016/10/18
- 76/97: zope.interface: Correct inputs., Hartmut Goebel, 2016/10/18
- 79/97: zope.security: Correct inputs., Hartmut Goebel, 2016/10/18
- 85/97: python-celery: Remove needless inputs., Hartmut Goebel, 2016/10/18
- 57/97: gnu: python-testscenarios: remove needless input "mimetools"., Hartmut Goebel, 2016/10/18
- 63/97: gnu: python-oauthlib, python-oauthlib2: Correct inputs., Hartmut Goebel, 2016/10/18
- 72/97: gnu: python-numpydoc: Correct inputs., Hartmut Goebel, 2016/10/18
- 55/97: gnu: python-pytest-xdist: Remove needless input python-apipkg., Hartmut Goebel, 2016/10/18
- 61/97: gnu: python-cov-core: Fix imports., Hartmut Goebel, 2016/10/18
- 51/97: gnu: openstack: Correct inputs., Hartmut Goebel, 2016/10/18
- 37/97: gnu: python-pbr: Rework bootstrapping.,
Hartmut Goebel <=
- 60/97: gnu: python-statsmodels: Fix build, Hartmut Goebel, 2016/10/18
- 62/97: gnu: python-pyjwt: Add missing inputs and enable test-suite., Hartmut Goebel, 2016/10/18
- 15/97: gnu: Remove python-setuptools and python2-setuptools from inputs (part 4a), Hartmut Goebel, 2016/10/18
- 66/97: gnu: python-feedgenerator: Remove python byte-code files from source., Hartmut Goebel, 2016/10/18
- 68/97: gnu: python-scikit-image: Correct inputs., Hartmut Goebel, 2016/10/18
- 70/97: gnu: python2-scikit-image: Remove needless native-input and inheritance., Hartmut Goebel, 2016/10/18
- 59/97: Add a series of FIXME and TODO comments., Hartmut Goebel, 2016/10/18
- 22/97: gnu: Fix inputs in python.scm, part 1: inputs -> propagated-inputs., Hartmut Goebel, 2016/10/18
- 82/97: python-urllib3: update comment, Hartmut Goebel, 2016/10/18
- 87/97: python-sphinxcontrib-programoutput: Remove needless input, already propagated., Hartmut Goebel, 2016/10/18