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"

Reply via email to