From 981601b2c15e8fce43515af80f90a7fe515b4509 Mon Sep 17 00:00:00 2001 From: Herman Rimm Date: Tue, 3 Dec 2024 14:15:07 +0100 Subject: [PATCH] gnu: Add git-spice. * gnu/packages/version-control.scm (git-spice): New variable. Change-Id: Id0936171caa586a98a3c500e6d669baa171f48da Co-authored-by: Sharlatan Hellseher Signed-off-by: Sharlatan Hellseher --- 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 fd01e191836fb04a0dce79d011d7737328f9932e..d61d2b13bdac475c05486e3692b4eb181acb4df1 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -59,6 +59,8 @@ ;;; Copyright © 2024 Javier Olaechea ;;; Copyright © 2024 Ashish SHUKLA ;;; Copyright © 2024 Wilko Meyer +;;; Copyright © 2024 Herman Rimm +;;; Copyright © 2024 Sharlatan Hellseher ;;; Copyright © 2025 Artyom V. Poptsov ;;; ;;; This file is part of GNU Guix. @@ -126,6 +128,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) @@ -980,6 +983,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")