guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 200114643af0fe51b7bf64e6dcaa2658d4d08063
Author: Sharlatan Hellseher <[email protected]>
AuthorDate: Fri Jul 24 21:34:44 2026 +0100
gnu: Add python-vcsgraph.
* gnu/packages/version-control.scm (python-vcsgraph): New variable.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs): Register
python-vcsgraph.
---
gnu/packages/rust-crates.scm | 18 +++++++++++++
gnu/packages/version-control.scm | 56 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+)
diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm
index 2d89f02e25..86acab3ece 100644
--- a/gnu/packages/rust-crates.scm
+++ b/gnu/packages/rust-crates.scm
@@ -78028,6 +78028,24 @@ fn main() {
rust-wit-bindgen-rt-0.39.0
rust-zerocopy-0.8.24
rust-zerocopy-derive-0.8.24))
+ (python-vcsgraph =>
+ (list rust-heck-0.5.0
+ rust-lazy-static-1.5.0
+ rust-libc-0.2.186
+ rust-maplit-1.0.2
+ rust-once-cell-1.21.4
+ rust-portable-atomic-1.13.1
+ rust-proc-macro2-1.0.106
+ rust-pyo3-0.28.3
+ rust-pyo3-build-config-0.28.3
+ rust-pyo3-ffi-0.28.3
+ rust-pyo3-macros-0.28.3
+ rust-pyo3-macros-backend-0.28.3
+ rust-quote-1.0.45
+ rust-rustc-hash-2.1.2
+ rust-syn-2.0.117
+ rust-target-lexicon-0.13.5
+ rust-unicode-ident-1.0.24))
(python-watchfiles =>
(list rust-autocfg-1.3.0
rust-bitflags-1.3.2
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3d4b910f08..f406971c89 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -323,6 +323,62 @@ Python 3.3 and later, rather than on Python 2.")
(define-deprecated-package bazaar
breezy)
+(define-public python-vcsgraph
+ (package
+ (name "python-vcsgraph")
+ (version "0.3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/breezy-team/vcsgraph")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15hxlvvz2s21rpgk6nvlhzv9lb8glicjfsgx5vvcaqrh2y0qdr05"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:imported-modules (append %cargo-build-system-modules
+ %pyproject-build-system-modules)
+ #:modules '(((guix build cargo-build-system) #:prefix cargo:)
+ (guix build pyproject-build-system)
+ (guix build utils))
+ #:test-flags #~(list "--pyargs" "vcsgraph")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'prepare-cargo-build-system
+ (lambda args
+ (for-each (lambda (phase)
+ (format #t "Running cargo phase: ~a~%" phase)
+ (apply (assoc-ref cargo:%standard-phases phase)
+ #:cargo-target #$(cargo-triplet)
+ args))
+ '(prepare-rust-crates
+ unpack-rust-crates
+ configure
+ check-for-pregenerated-files
+ patch-cargo-checksums))))
+ (add-before 'check 'remove-local-source
+ (lambda _
+ (delete-file-recursively "vcsgraph"))))))
+ (native-inputs
+ (append (list python-pytest
+ python-setuptools
+ python-setuptools-rust
+ rust
+ (list rust "cargo"))
+ (or (and=> (%current-target-system)
+ (compose list make-rust-sysroot))
+ '())))
+ (inputs (cargo-inputs 'python-vcsgraph))
+ (home-page "https://github.com/breezy-team/vcsgraph")
+ (synopsis "Graph algorithms for version control systems")
+ (description
+ "This package provides a Python library providing graph algorithms
+optimized for version control systems.")
+ (license license:gpl2+)))
+
(define git-cross-configure-flags
#~(list "ac_cv_fread_reads_directories=yes"
"ac_cv_snprintf_returns_bogus=no"