sharlatan pushed a commit to branch go-team
in repository guix.

commit f486bf162372c06d31161997242c2356dd9f8a55
Author: Herman Rimm <[email protected]>
AuthorDate: Tue Dec 3 14:15:07 2024 +0100

    gnu: Add git-spice.
    
    * gnu/packages/version-control.scm (git-spice): New variable.
    
    Change-Id: Id0936171caa586a98a3c500e6d669baa171f48da
    Co-authored-by: Sharlatan Hellseher <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/version-control.scm | 122 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 122 insertions(+)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index bc3bf6331a..c6d24f5ef9 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -59,6 +59,8 @@
 ;;; Copyright © 2024 Javier Olaechea <[email protected]>
 ;;; Copyright © 2024 Ashish SHUKLA <[email protected]>
 ;;; Copyright © 2024 Wilko Meyer <[email protected]>
+;;; Copyright © 2024 Herman Rimm <[email protected]>
+;;; Copyright © 2024 Sharlatan Hellseher <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -122,6 +124,7 @@
   #:use-module (gnu packages golang-build)
   #:use-module (gnu packages golang-check)
   #:use-module (gnu packages golang-crypto)
+  #:use-module (gnu packages golang-vcs)
   #:use-module (gnu packages golang-web)
   #:use-module (gnu packages golang-xyz)
   #:use-module (gnu packages groff)
@@ -976,6 +979,125 @@ the date of the most recent commit that modified them
 @end itemize")
     (license license:gpl3+)))
 
+(define-public git-spice
+  (package
+    (name "git-spice")
+    (version "0.9.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 "1yvnd5a3ql905jrxh0sq9sdcfmyq38fsbqx0zbhxbd4rgs8hv5s3"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.23
+      #:import-path "go.abhg.dev/gs"
+      #:install-source? #f
+      #:test-flags
+      #~(list "-skip"
+              (string-join
+               ;; XXX: Tests failing with various reasons; requiring
+               ;; networking config or write access, or outbound access, check
+               ;; if some of them may be fixed.
+               (list "TestDeviceFlowAuthenticator"
+                     "TestScript/auth_detect_forge"
+                     "TestScript/auth_explicit_forge"
+                     "TestScript/auth_insecure_storage"
+                     "TestScript/auth_prompt_forge"
+                     "TestScript/branch_split_reassign_submitted"
+                     "TestScript/branch_submit_ambiguous_branch"
+                     "TestScript/branch_submit_by_name"
+                     "TestScript/branch_submit_config_no_publish"
+                     "TestScript/branch_submit_create_update"
+                     "TestScript/branch_submit_detect_existing"
+                     "TestScript/branch_submit_detect_existing_conflict"
+                     "TestScript/branch_submit_detect_existing_upstream_name"
+                     "TestScript/branch_submit_force_push"
+                     "TestScript/branch_submit_long_body"
+                     "TestScript/branch_submit_many_upstream_names_taken"
+                     "TestScript/branch_submit_multiple_commits"
+                     "TestScript/branch_submit_multiple_pr_templates"
+                     "TestScript/branch_submit_navigation_.*_out_multiple"
+                     "TestScript/branch_submit_needs_restack"
+                     "TestScript/branch_submit_no_editor"
+                     "TestScript/branch_submit_no_publish"
+                     "TestScript/branch_submit_pr_template"
+                     "TestScript/branch_submit_pr_template_cache_invalidation"
+                     "TestScript/branch_submit_pr_template_no_body"
+                     "TestScript/branch_submit_pr_template_prompt"
+                     "TestScript/branch_submit_recover_prepared"
+                     "TestScript/branch_submit_remote_prompt"
+                     "TestScript/branch_submit_rename"
+                     "TestScript/branch_submit_rename_base"
+                     "TestScript/branch_submit_update_pr_is_closed"
+                     "TestScript/branch_submit_update_pr_is_merged"
+                     "TestScript/branch_submit_upstream_name"
+                     "TestScript/branch_submit_upstream_name_wrong_remote"
+                     "TestScript/branch_submit_use_git_editor"
+                     "TestScript/branch_submit_web"
+                     "TestScript/branch_submit_web_opt_out"
+                     "TestScript/downstack_submit"
+                     "TestScript/issue369_branch_.*_case_insensitive"
+                     "TestScript/issue369_branch_.*_remote_update"
+                     "TestScript/issue398_repo_sync_many_merged"
+                     "TestScript/repo_sync_after_merging_renamed_branch"
+                     "TestScript/repo_sync_detached_head"
+                     "TestScript/repo_sync_detect_externally_created_prs"
+                     "TestScript/repo_sync_external_pr_head_mismatch"
+                     "TestScript/repo_sync_manual_pull_merged_pr"
+                     "TestScript/repo_sync_merged_pr"
+                     "TestScript/repo_sync_remote_already_deleted"
+                     "TestScript/repo_sync_restack"
+                     "TestScript/repo_sync_trunk_dirty_tree"
+                     "TestScript/repo_sync_trunk_no_prs"
+                     "TestScript/repo_sync_unpushed_commits"
+                     "TestScript/stack_submit"
+                     "TestScript/stack_submit_update_leave_draft"
+                     "TestScript/stack_submit_web"
+                     "TestScript/upstack_submit_main")
+               "|"))))
+    (native-inputs
+     (list git-minimal ; for tests in testdata/scripts
+           go-github-com-alecthomas-kong
+           go-github-com-buildkite-shellwords
+           go-github-com-charmbracelet-bubbles
+           go-github-com-charmbracelet-bubbletea
+           go-github-com-charmbracelet-lipgloss
+           go-github-com-charmbracelet-log
+           go-github-com-cli-browser
+           go-github-com-creack-pty
+           go-github-com-dustin-go-humanize
+           go-github-com-mattn-go-isatty
+           go-github-com-rogpeppe-go-internal
+           go-github-com-sahilm-fuzzy
+           go-github-com-shurcool-githubv4
+           go-github-com-stretchr-testify
+           go-github-com-tidwall-gjson
+           go-github-com-vito-midterm
+           go-github-com-xanzy-go-gitlab
+           go-github-com-zalando-go-keyring
+           go-go-abhg-dev-komplete
+           go-go-abhg-dev-requiredfield
+           go-go-abhg-dev-testing-stub
+           go-go-uber-org-mock
+           go-golang-org-x-oauth2
+           go-gopkg-in-dnaeon-go-vcr-v4
+           go-gopkg-in-yaml-v3
+           go-pgregory-net-rapid))
+    (home-page "https://go.abhg.dev/gs";)
+    (synopsis "Manage stacks of Git branches")
+    (description
+     "git-spice (@code{gs}) is a command line tool for stacking Git branches,
+a collection of branches expecting the trunk has a base branch.  It manages
+and navigates stacks of branches, conveniently modifies and rebases them also
+provides an integration with GitHub and GitLab.")
+    (license license:gpl3)))
+
 (define-public got
   (package
     (name "got")

Reply via email to