From c6a2fd24fcb956dfaf4d155b0fca0e4e9c5def6b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 16:24:15 +0100 Subject: gnu: python-cython: Update to 0.29.6. * gnu/packages/python-xyz.scm (python-cython): Update to 0.29.6. [arguments]: Remove obsolete deletion. --- gnu/packages/python-xyz.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 09c7e2db38..6a20ba4b49 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2802,14 +2802,14 @@ and is very extensible.") (define-public python-cython (package (name "python-cython") - (version "0.29.5") + (version "0.29.6") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "1wfb68g115gmf3mv23w0hh972b0ll85gpb92ci28x6h997br0llx")))) + "1bp7cn0pp5qy63k9hbp4ka34fm01kvysh478phpkhr68npqk6pbc")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so @@ -2841,9 +2841,6 @@ and is very extensible.") (replace 'check (lambda _ - ;; The "with_outer_raising" test fails with Python 3.7. See - ;; https://github.com/cython/cython/issues/2454 - (delete-file "tests/run/generators_py.py") (invoke "python" "runtests.py" "-vv")))))) (home-page "http://cython.org/") (synopsis "C extensions for Python") -- cgit v1.3 From 6d3cff5acacecc240b1d86048e41df3ce26483a5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 4 Mar 2019 20:18:54 +0100 Subject: gnu: python-pyparsing: Update to 2.3.1. * gnu/packages/python-xyz.scm (python-pyparsing): Update to 2.3.1. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6a20ba4b49..020152b159 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3259,13 +3259,13 @@ library, libgit2 implements Git plumbing.") (define-public python-pyparsing (package (name "python-pyparsing") - (version "2.2.1") + (version "2.3.1") (source (origin (method url-fetch) (uri (pypi-uri "pyparsing" version)) (sha256 - (base32 "06dgd0iilvf8m0ssmfpcbh8l6jf0zkp8adbb84llksg17crfx4zl")))) + (base32 "0yk6xl885b91dmlhlsap7x78hk2rdr879fln9anbq6k4ca42djb6")))) (build-system python-build-system) (outputs '("out" "doc")) (arguments -- cgit v1.3 From 0f0a5ef9e83242c57349223524124af077101a33 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 1 Apr 2019 22:39:41 -0400 Subject: gnu: Add python-bumpversion. * gnu/packages/python-xyz.scm (python-bumpversion): New variable. --- gnu/packages/python-xyz.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5484c325ec..57b13c8263 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2631,6 +2631,24 @@ and several other projects.") (define-public python2-guzzle-sphinx-theme (package-with-python2 python-guzzle-sphinx-theme)) +(define-public python-bumpversion + (package + (name "python-bumpversion") + (version "0.5.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bumpversion" version)) + (sha256 + (base32 + "0zn7694yfipxg35ikkfh7kvgl2fissha3dnqad2c5bvsvmrwhi37")))) + (build-system python-build-system) + (home-page "https://github.com/peritus/bumpversion") + (synopsis "Tool to bump software version") + (description "This tool provides a command-line interface (CLI) to bump a +software version simply.") + (license license:expat))) + (define-public python-rst.linker (package (name "python-rst.linker") -- cgit v1.3 From 13d825fcb60ada8579f8ec9663a121ab88c5fb68 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 1 Apr 2019 22:39:42 -0400 Subject: gnu: Add python-scp. * gnu/packages/python-xyz.scm (python-scp): New variable. --- gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 57b13c8263..9ac01e76c8 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2649,6 +2649,29 @@ and several other projects.") software version simply.") (license license:expat))) +(define-public python-scp + (package + (name "python-scp") + (version "0.13.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "scp" version)) + (sha256 + (base32 + "1crlpw9lnn58fs1c1rmh7s7s9y5gkgpgjsqlvg9qa51kq1knx7gg")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ;tests require an SSH server + (propagated-inputs + `(("python-paramiko" ,python-paramiko))) + (home-page "https://github.com/jbardin/scp.py") + (synopsis "SCP protocol module for Python and Paramiko") + (description "The scp module extends the Paramiko library to send and +receive files via the SCP1 protocol, as implemented by the OpenSSH +@command{scp} program.") + (license license:gpl2+))) + (define-public python-rst.linker (package (name "python-rst.linker") -- cgit v1.3 From b24fd2c268ee5c89c10b1195a791502c84d5d329 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 1 Apr 2019 22:39:43 -0400 Subject: gnu: Add python-deprecated. * gnu/packages/python-xyz.scm (python-deprecated): New variable. --- gnu/packages/python-xyz.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 9ac01e76c8..c1014a9a6e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2649,6 +2649,40 @@ and several other projects.") software version simply.") (license license:expat))) +(define-public python-deprecated + (package + (name "python-deprecated") + (version "1.2.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tantale/deprecated.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14909glxxwwc4b9qpz2b9jdriwzi5n65ichw85xqppap5f79wcwz")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest")))))) + (propagated-inputs + `(("python-wrapt" ,python-wrapt))) + (native-inputs + `(("python-bumpversion" ,python-bumpversion) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-sphinx" ,python-sphinx) + ("python-tox" ,python-tox))) + (home-page "https://github.com/tantale/deprecated") + (synopsis "Python decorator to deprecate classes, functions or methods") + (description "The @code{deprecated} decorator provides a convenient way to deprecate +to deprecate classes, functions or methods.") + (license license:expat))) + (define-public python-scp (package (name "python-scp") -- cgit v1.3 From d5a998fa4c9023115563b3a4b7bb24e95a6e9bdc Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 1 Apr 2019 22:39:43 -0400 Subject: gnu: Add python-pygithub. * gnu/packages/python-xyz.scm (python-pygithub): New variable. --- gnu/packages/python-xyz.scm | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index c1014a9a6e..36edd7e0e2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2683,6 +2683,52 @@ software version simply.") to deprecate classes, functions or methods.") (license license:expat))) +(define-public python-pygithub + (package + (name "python-pygithub") + (version "1.43.7") + (source + ;; We fetch from the Git repo because there are no tests in the PyPI + ;; archive. + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PyGithub/PyGithub.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ww92zz0ja9w6rw83vphmn8rwmcn6abg16j4q7zxjc0rrg2cfj9i")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + ;; Some tests rely on the network. + (add-after 'unpack 'disable-failing-tests + (lambda _ + (substitute* "tests/Issue142.py" + (("testDecodeJson") "disabled_testDecodeJson")) + #t)) + (add-before 'check 'prepare-for-tests + (lambda _ + (for-each (lambda (f) + (chmod f #o666)) + (find-files "./tests")) + (system* "python" "-m" "lib2to3" "-w" "-n" "tests") + (setenv "PYTHONPATH" + (string-append "./tests:" (getenv "PYTHONPATH"))) + #t))))) + (propagated-inputs + `(("python-deprecated" ,python-deprecated) + ("python-pyjwt" ,python-pyjwt) + ("python-requests" ,python-requests))) + (native-inputs `(("python-httpretty" ,python-httpretty))) + (home-page "https://pygithub.readthedocs.io/en/latest/") + (synopsis "Python library for the GitHub API") + (description "This library allows managing GitHub resources such as +repositories, user profiles, and organizations in your Python applications, +using version 3 of the GitHub application programming interface (API).") + (license license:lgpl3+))) + (define-public python-scp (package (name "python-scp") -- cgit v1.3 From c0c0bb3823418812c999472bc6334bfa454f148a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 1 Apr 2019 22:39:44 -0400 Subject: gnu: Add python-rellu. * gnu/packages/python-xyz.scm (python-rellu): New variable. --- gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 36edd7e0e2..bebb7c5cb2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2729,6 +2729,29 @@ repositories, user profiles, and organizations in your Python applications, using version 3 of the GitHub application programming interface (API).") (license license:lgpl3+))) +(define-public python-rellu + (package + (name "python-rellu") + (version "0.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rellu" version)) + (sha256 + (base32 + "1w0arpj1sm7vh29nrbnca4pnp8sx42l07r17inwqcjjf9bhng66x")))) + (build-system python-build-system) + (propagated-inputs + `(("python-invoke" ,python-invoke) + ("python-pygithub" ,python-pygithub))) + (home-page "https://github.com/robotframework/rellu") + (synopsis "Utilities to create PyPI releases") + (description "This collection of utilities contains tooling and templates +to assist in creating releases on GitHub and publishing them on PyPI. It is +designed to be used by Robot Framework and tools and libraries in its +ecosystem, but can naturally be used also by other projects.") + (license license:asl2.0))) + (define-public python-scp (package (name "python-scp") -- cgit v1.3 From b979028527add840175336b8f7b165caf60ec793 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 1 Apr 2019 22:39:45 -0400 Subject: gnu: Add python-robotframework. * gnu/packages/python-xyz.scm (python-robotframework): New variable. * gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch: Add patch. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + ...on-robotframework-honor-source-date-epoch.patch | 62 ++++++++++++++++++++++ gnu/packages/python-xyz.scm | 45 ++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/local.mk b/gnu/local.mk index a3cfee9649..5c03066853 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1206,6 +1206,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ + %D%/packages/patches/python-robotframework-honor-source-date-epoch.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ %D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-remove-argparse.patch \ diff --git a/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch b/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch new file mode 100644 index 0000000000..ccd87911d8 --- /dev/null +++ b/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch @@ -0,0 +1,62 @@ +From 3cc41c05fad5601c0dd1832f64a6e9efca017727 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer +Date: Mon, 1 Apr 2019 11:36:04 -0400 +Subject: [PATCH] robottime: Honor the SOURCE_DATE_EPOCH environment variable. + +Honoring the SOURCE_DATE_EPOCH environment variable allows building +the documentation using libdoc reproducibly, by setting the generated +timestamp to a fixed value. + +For more background on reproducible builds and the SOURCE_DATE_EPOCH +environment variable, see: +https://reproducible-builds.org/specs/source-date-epoch/. + +* src/robot/utils/robottime.py: import `os'. +(TimestampCache._get_epoch): Retrieve date from SOURCE_DATE_EPOCH if +it is defined, otherwise from time.time(). +* utest/output/test_logger.py (TestLogger.test_write_to_one_logger): +Check for the existance of a timestamp attribute instead of checking +for its content as the later is easy to break when using the +SOURCE_DATE_EPOCH environment variable. +--- + src/robot/utils/robottime.py | 3 +++ + utest/output/test_logger.py | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/robot/utils/robottime.py b/src/robot/utils/robottime.py +index 06432a4a6..91526f826 100644 +--- a/src/robot/utils/robottime.py ++++ b/src/robot/utils/robottime.py +@@ -14,6 +14,7 @@ + # limitations under the License. + + import datetime ++import os + import time + import re + +@@ -395,6 +396,8 @@ class TimestampCache(object): + + # Seam for mocking + def _get_epoch(self): ++ if os.getenv('SOURCE_DATE_EPOCH'): ++ return float(os.getenv('SOURCE_DATE_EPOCH')) + return time.time() + + def _use_cache(self, secs, *separators): +diff --git a/utest/output/test_logger.py b/utest/output/test_logger.py +index 92fe6d77d..e980227aa 100644 +--- a/utest/output/test_logger.py ++++ b/utest/output/test_logger.py +@@ -46,7 +46,7 @@ class TestLogger(unittest.TestCase): + logger = LoggerMock(('Hello, world!', 'INFO')) + self.logger.register_logger(logger) + self.logger.write('Hello, world!', 'INFO') +- assert_true(logger.msg.timestamp.startswith('20')) ++ assert_true(hasattr(logger.msg, 'timestamp')) + + def test_write_to_one_logger_with_trace_level(self): + logger = LoggerMock(('expected message', 'TRACE')) +-- +2.20.1 + diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index bebb7c5cb2..efc36662e0 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2752,6 +2752,51 @@ designed to be used by Robot Framework and tools and libraries in its ecosystem, but can naturally be used also by other projects.") (license license:asl2.0))) +(define-public python-robotframework + (package + (name "python-robotframework") + (version "3.1.1") + ;; There are no tests in the PyPI archive. + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robotframework/robotframework.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1aaiamc9l35m5sf7xl2qc5q9308v7sz3p1qgzcslsjxzddphyn4v")) + (patches (search-patches + "python-robotframework-honor-source-date-epoch.patch")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'build 'build-and-install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((doc-output (assoc-ref outputs "doc")) + (doc (string-append doc-output "/share/" + ,name "-" ,version "/"))) + (invoke "invoke" "library-docs" "all") + (mkdir-p doc) + (copy-recursively "doc/libraries" + (string-append doc "/libraries")) + #t))) + (replace 'check + (lambda _ + (invoke "python" "utest/run.py")))))) + (native-inputs + `(("python-invoke" ,python-invoke) + ("python-rellu" ,python-rellu) + ("python:tk" ,python "tk"))) ;used when building the HTML doc + (outputs '("out" "doc")) + (home-page "https://robotframework.org") + (synopsis "Generic automation framework") + (description "Robot Framework is a generic automation framework for +acceptance testing, acceptance test driven development (ATDD), and robotic +process automation (RPA).") + (license license:asl2.0))) + (define-public python-scp (package (name "python-scp") -- cgit v1.3 From c0c64f175c5c4f4e78d100d49c02f21c432b5077 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 1 Apr 2019 22:39:45 -0400 Subject: gnu: Add python-robotframework-sshlibrary. * gnu/packages/python-xyz.scm (python-robotframework-sshlibrary): New variable. --- gnu/packages/python-xyz.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index efc36662e0..2afa9ae605 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2797,6 +2797,67 @@ acceptance testing, acceptance test driven development (ATDD), and robotic process automation (RPA).") (license license:asl2.0))) +(define-public python-robotframework-sshlibrary + (package + (name "python-robotframework-sshlibrary") + (version "3.3.0") + ;; There are no tests in the PyPI archive. + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robotframework/SSHLibrary.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mk6dz2jqqndbx4yji09012q6rmadnqdywi7czvj62b0s07dr3r2")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'build-and-install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((doc-output (assoc-ref outputs "doc")) + (doc (string-append doc-output "/share/" + ,name "-" ,version "/"))) + (invoke "chmod" "-R" "+w" "docs") + (invoke "invoke" "kw-docs" "project-docs") + (mkdir-p doc) + (for-each delete-file (find-files "docs" "\\.rst")) + (copy-recursively "docs" doc) + #t))) + (replace 'check + (lambda _ + ;; Some tests require an SSH server; we remove them. + (delete-file "utest/test_client_api.py") + (delete-file "utest/test_scp.py") + (invoke "python" "utest/run.py")))))) + (propagated-inputs + `(("python-robotframework" ,python-robotframework) + ("python-paramiko" ,python-paramiko) + ("python-scp" ,python-scp))) + (native-inputs + `(("openssh" ,openssh) + ("which" ,which) + ;; To generate the documentation + ("python-docutils" ,python-docutils) + ("python-invoke" ,python-invoke) + ("python-pygments" ,python-pygments) + ("python-rellu" ,python-rellu))) + (outputs '("out" "doc")) + (home-page "https://github.com/robotframework/SSHLibrary") + (synopsis "Robot Framework library for SSH and SFTP") + (description "SSHLibrary is a Robot Framework library providing support +for SSH and SFTP. It has the following main usages: +@itemize @bullet +@item Executing commands on the remote machine, either blocking or non-blocking. +@item Writing and reading in an interactive shell. +@item Transferring files and directories over SFTP. +@item Ensuring that files and directories exist on the remote machine. +@end itemize") + (license license:asl2.0))) + (define-public python-scp (package (name "python-scp") -- cgit v1.3 From 5b84c120225ac83855796a6a94168e58c078157b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 6 Apr 2019 20:06:50 -0400 Subject: gnu: Add python-robotframework-lint. * gnu/packages/python-xyz.scm (python-robotframework-lint): New variable. --- gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu/packages/python-xyz.scm') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2afa9ae605..1b75ed70e3 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2797,6 +2797,42 @@ acceptance testing, acceptance test driven development (ATDD), and robotic process automation (RPA).") (license license:asl2.0))) +(define-public python-robotframework-lint + ;; There is no properly tagged release; the commit below seems to correspond + ;; to the 0.9 stable release available from PyPI. The tests are not + ;; included in the PyPI archive, so we fetch the sources from the upstream + ;; Git repo. + (let ((commit "e851879bab1f63e4e53b34a4dc8a67ed95102830") + (revision "1")) + (package + (name "python-robotframework-lint") + (version (git-version "0.9.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/boakley/robotframework-lint.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p6fknqg5sb9qz5857ji4a877657vgfjm5v3zn45994parx6ml1m")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "-m" "robot" "-A" + "tests/conf/default.args" "tests")))))) + (propagated-inputs + `(("python-robotframework" ,python-robotframework))) + (home-page "https://github.com/boakley/robotframework-lint/") + (synopsis "Static analysis tool (linter) for Robot Framework") + (description "This package provides the @code{rflint} command-line +utility, a static analysis tool (linter) for Robot Framework source files.") + (license license:asl2.0)))) + (define-public python-robotframework-sshlibrary (package (name "python-robotframework-sshlibrary") -- cgit v1.3