Subject: [bug#77219] [PATCH] gnu: Add emacs-sage-shell-mode.

From: Liliana Marie Prikler <[email-masked]>
Date: Sun, 23 Mar 2025 23:02:04 +0100

Am Sonntag, dem 23.03.2025 um 22:07 +0100 schrieb Nicolas Goaziou:
> * gnu/packages/emacs-xyz.scm (emacs-sage-shell-mode): New variable.
> 
> Change-Id: I73189f919f0f1a36b0f4826685b8ace4563a9a81
> ---
>  gnu/packages/emacs-xyz.scm | 55
> ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index f00c5e4b29..dc36455058 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -6544,6 +6544,61 @@ (define-public emacs-org-pdftools
>        (home-page "https://github.com/fuxialexander/org-pdftools")
>        (license license:gpl3+))))
>  
> +(define-public emacs-sage-shell-mode
> +  (let ((commit "4291700e981a2105d55fa56382ba25046d3d268d")
> +        (revision "1"))
> +    (package
> +      (name "emacs-sage-shell-mode")
> +      (version (git-version "0.3" revision commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url
> "https://github.com/sagemath/sage-shell-mode")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                 
> "1dch7cwwslffgnzp1djlhz6a792ci42p4bvazxd9lqzhzal0rsbb"))))
> +      (build-system emacs-build-system)
> +      (arguments
> +       (list #:phases
> +             #~(modify-phases %standard-phases
> +                 ;; Test file contains a duplicate test, causing a
> check
> +                 ;; error.  Remove the first occurrence.
> +                 (add-before 'check 'remove-duplicate-test
> +                   (lambda _
> +                     (emacs-batch-edit-file "test/sage-shell-mode-
> test.el"
> +                       '(progn
> +                         (search-forward
> +                          "(ert-deftest sage-shell:parse-state-func-
> call-1")
> +                         (goto-char (match-beginning 0))
> +                         (kill-sexp)
> +                         (basic-save-buffer)))))
There is an ert-number-tests function in emacs-utils that you can use.
> +                 ;; The test below is meant to be called from a CI
> environment
> +                 ;; and can be ignored.
> +                 (add-before 'check 'skip-failing-test
> +                   (lambda _
> +                     (substitute* "test/sage-shell-mode-test.el"
> +                       (("\\(ert-deftest sage-shell:development-
> version-test .*"
> +                         all)
> +                        (string-append all "(skip-unless
> nil)\n"))))))
> +             #:tests? #true
You don't actually need #:tests? #true anymore with the next emacs-team
merge :)
> +             ;; The "test" command from the Makefile rebuilds
> everything.  Run
> +             ;; the tests at a lower level.
> +             #:test-command #~(list "emacs" "-Q" "-batch"
> +                                    "-L" "."
> +                                    "-l" "test/sage-shell-mode-
> test.el"
> +                                    "-f" "ert-run-tests-batch-and-
> exit")))
> +      (propagated-inputs (list emacs-deferred))
> +      (home-page "https://github.com/sagemath/sage-shell-mode")
> +      (synopsis "Emacs front-end for SageMath")
> +      (description
> +       "Sage Shell mode provides an Emacs front-end for SageMath. 
> It can run
> +the Sage terminal inside Emacs, and allows editing @file{.sage}
> source files
> +with a dedicated major mode and sending their contents directly to
> that
> +terminal.")
> +      (license license:gpl3+))))
> +
>  (define-public emacs-sakura-theme
>    (package
>      (name "emacs-sakura-theme")
Cheers