diff options
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r-- | gnu/packages/version-control.scm | 70 |
1 files changed, 66 insertions, 4 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 9060bdc06a..1842528ff6 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -93,6 +93,7 @@ #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) @@ -390,6 +391,16 @@ as well as the classic centralized workflow.") (install-file "contrib/subtree/git-subtree.1" (string-append subtree "/share/man/man1")) #t))) + (add-after 'install 'restore-sample-hooks-shebang + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share/git-core/templates/hooks"))) + (for-each (lambda (file) + (format #t "restoring shebang on `~a'~%" file) + (substitute* file + (("^#!.*/bin/sh") "#!/bin/sh"))) + (find-files dir ".*")) + #t))) (add-after 'install 'split (lambda* (#:key inputs outputs #:allow-other-keys) ;; Split the binaries to the various outputs. @@ -1441,7 +1452,7 @@ control to Git repositories.") (define-public pre-commit (package (name "pre-commit") - (version "2.7.1") + (version "2.8.1") (source (origin ;; No tests in the PyPI tarball. @@ -1451,7 +1462,7 @@ control to Git repositories.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0n7qby5a4yz3s02nqcp5js6jg9wrd0x7msblxwb1883ds4b2b71a")))) + (base32 "0b3ks6viccq3n4p8i8zgfd40vp1k5nkhmmlz7p4nxcdizw8zxgn8")))) (build-system python-build-system) (arguments `(#:phases @@ -1492,6 +1503,12 @@ control to Git repositories.") " and not test_additional_rust_lib_dependencies_installed" " and not test_local_rust_additional_dependencies" " and not test_rust_hook" + ;; Disable dotnet tests. + " and not test_dotnet_hook" + ;; Disable nodejs tests. + " and not test_unhealthy_if_system_node_goes_missing" + " and not test_installs_without_links_outside_env" + " and not test_healthy_system_node" ;; Disable python2 test. " and not test_switch_language_versions_doesnt_clobber" ;; These tests try to open a network socket. @@ -1534,8 +1551,10 @@ control to Git repositories.") #t)))))) (native-inputs `(("git" ,git-minimal) - ("python-pytest" ,python-pytest))) - (inputs + ("python-pytest" ,python-pytest) + ("python-re-assert" ,python-re-assert))) + ;; Propagate because pre-commit is also used as a module. + (propagated-inputs `(("python-cfgv" ,python-cfgv) ("python-identify" ,python-identify) ("python-nodeenv" ,python-nodeenv) @@ -2292,6 +2311,49 @@ collections efficiently. Mirrors decide to clone and update repositories based on a manifest file published by servers.") (license license:gpl3+))) +(define-public b4 + (package + (name "b4") + (version "0.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.kernel.org/pub/scm/utils/b4/b4.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "1w11fiyspyncz2m7njrjfylgzch4azi7560ngd8i733wvjjhg3mj")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-manpages + (lambda* (#:key outputs #:allow-other-keys) + (let ((man (string-append (assoc-ref outputs "out") + "/man/man5/"))) + (mkdir-p man) + (for-each (lambda (file) (install-file file man)) + (find-files "man" "\\.[1-8]$"))) + #t))))) + (inputs + `(("python-requests" ,python-requests))) + (home-page "https://git.kernel.org/pub/scm/utils/b4/b4.git") + (synopsis "Tool for working with patches in public-inbox archives") + (description + "The @code{b4} command is designed to make it easier to participate in +patch-based workflows for projects that have public-inbox archives. + +Features include: +@itemize +@item downloading a thread's mbox given a message ID +@item processing an mbox so that is ready to be fed to @code{git-am} +@item creating templated replies for processed patches and pull requests +@item submitting cryptographic attestation for patches. +@end itemize") + (license license:gpl2+))) + (define-public git-annex-remote-rclone (package (name "git-annex-remote-rclone") |