Subject: [bug#72963] [PATCH go-team 30/30] gnu: Add git-spice.

From: Herman Rimm <[email-masked]>
Date: Mon, 2 Sep 2024 14:18:38 +0200

* gnu/packages/version-control.scm (git-spice): Add variable.
---
 gnu/packages/version-control.scm | 89 ++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 9f67237d5d..b141e55137 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -877,6 +877,95 @@ (define-public git-tools
 @end itemize")
     (license license:gpl3+)))
 
+(define-public git-spice
+  (package
+    (name "git-spice")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/abhinav/git-spice")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0z5jjbnzyrij95fcm4qpy521fbb3mmcxhd35cl0jrlgdcs0lk2q7"))))
+    (build-system go-build-system)
+    (arguments
+      (list
+        #:go go-1.22
+        #:import-path "go.abhg.dev/gs"
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'remove-failing-tests
+              (lambda* (#:key tests? import-path #:allow-other-keys)
+                (with-directory-excursion
+                  (string-append "src/" import-path "/testdata/script")
+                  (for-each
+                    delete-file
+                    (list
+                      ;; Tests require networking.
+                      "auth_detect_forge.txt"
+                      "auth_explicit_forge.txt"
+                      "auth_prompt_forge.txt"
+                      "branch_submit_ambiguous_branch.txt"
+                      "branch_submit_by_name.txt"
+                      "branch_submit_create_update.txt"
+                      "branch_submit_detect_existing.txt"
+                      "branch_submit_long_body.txt"
+                      "branch_submit_multiple_commits.txt"
+                      "branch_submit_multiple_pr_templates.txt"
+                      "branch_submit_no_publish.txt"
+                      "branch_submit_pr_template.txt"
+                      "branch_submit_pr_template_cache_invalidation.txt"
+                      "branch_submit_pr_template_no_body.txt"
+                      "branch_submit_pr_template_prompt.txt"
+                      "branch_submit_recover_prepared.txt"
+                      "branch_submit_remote_prompt.txt"
+                      "branch_submit_rename.txt"
+                      "downstack_submit.txt"
+                      "repo_sync_detached_head.txt"
+                      "repo_sync_detect_externally_created_prs.txt"
+                      "repo_sync_external_pr_head_mismatch.txt"
+                      "repo_sync_manual_pull_merged_pr.txt"
+                      "repo_sync_merged_pr.txt"
+                      "repo_sync_trunk_dirty_tree.txt"
+                      "repo_sync_trunk_no_prs.txt"
+                      "repo_sync_unpushed_commits.txt"
+                      "stack_submit.txt"
+                      "stack_submit_update_leave_draft.txt"
+                      "upstack_submit_main.txt"))))))))
+    (propagated-inputs (list go-pgregory-net-rapid
+                             go-gopkg-in-yaml-v3
+                             go-gopkg-in-dnaeon-go-vcr-v3-recorder
+                             go-golang-org-x-oauth2
+                             go-go-uber-org-mock
+                             go-go-abhg-dev-requiredfield
+                             go-github-com-zalando-go-keyring
+                             go-github-com-vito-midterm
+                             go-github-com-stretchr-testify
+                             go-github-com-shurcool-githubv4
+                             go-github-com-rogpeppe-go-internal
+                             go-github-com-mattn-go-isatty
+                             go-github-com-dustin-go-humanize
+                             go-github-com-creack-pty-v2
+                             go-github-com-charmbracelet-log
+                             go-github-com-charmbracelet-lipgloss
+                             go-github-com-charmbracelet-bubbletea
+                             go-github-com-charmbracelet-bubbles
+                             go-github-com-buildkite-shellwords
+                             go-github-com-alecthomas-kong))
+    (inputs (list go-github-com-rogpeppe-go-internal-diff
+                  go-github-com-rogpeppe-go-internal-testscript
+                  go-github-com-rogpeppe-go-internal-internal-misspell))
+    (native-inputs (list git-minimal))
+    (home-page "https://go.abhg.dev/gs")
+    (synopsis "Manage stacks of Git branches")
+    (description
+     "git-spice (gs) is a command line tool for stacking Git branches.")
+    (license license:gpl3)))
+
 (define-public xdiff
   (let ((revision "0")
         (commit "a137bc7ee6c76618ed1737c257548eaa10ac0089"))
-- 
2.45.2