~ruther/guix-local

f21c70bc9a41d000acf7d39a0813a3c7415517ca — Xinglu Chen 4 years ago 08b0f5c
import: elpa: Support ‘upstream-name’ property.

* guix/import/elpa.scm: (guix-package->elpa-name): New procedure.
  (latest-release): Use it.
* tests/elpa.scm ("guix-package->elpa-name: without 'upstream-name' property")
  ("guix-package->elpa-name: with 'upstream-name' property"): Test it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2 files changed, 22 insertions(+), 5 deletions(-)

M guix/import/elpa.scm
M tests/elpa.scm
M guix/import/elpa.scm => guix/import/elpa.scm +10 -5
@@ 46,6 46,7 @@
  #:use-module (guix packages)
  #:use-module ((guix utils) #:select (call-with-temporary-output-file))
  #:export (elpa->guix-package
            guix-package->elpa-name
            %elpa-updater
            elpa-recursive-import))



@@ 412,13 413,17 @@ type '<elpa-package>'."
;;; Updates.
;;;

(define (guix-package->elpa-name package)
  "Given a Guix package, PACKAGE, return the upstream name on ELPA."
  (or (and=> (package-properties package)
             (cut assq-ref <> 'upstream-name))
      (if (string-prefix? "emacs-" (package-name package))
          (string-drop (package-name package) 6)
          (package-name package))))

(define (latest-release package)
  "Return an <upstream-release> for the latest release of PACKAGE."
  (define name
    (if (string-prefix? "emacs-" (package-name package))
        (string-drop (package-name package) 6)
        (package-name package)))

  (define name (guix-package->elpa-name package))
  (define repo 'gnu)

  (match (elpa-package-info name repo)

M tests/elpa.scm => tests/elpa.scm +12 -0
@@ 2,6 2,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 20,6 21,7 @@

(define-module (test-elpa)
  #:use-module (guix import elpa)
  #:use-module (guix tests)
  #:use-module (guix tests http)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-64)


@@ 71,6 73,16 @@
(test-assert "elpa->guix-package test 1"
  (eval-test-with-elpa "auctex"))

(test-equal "guix-package->elpa-name: without 'upstream-name' property"
  "auctex"
  (guix-package->elpa-name (dummy-package "emacs-auctex")))

(test-equal "guix-package->elpa-name: with 'upstream-name' property"
  "project"
  (guix-package->elpa-name
   (dummy-package "emacs-fake-name"
     (properties '((upstream-name . "project"))))))

(test-end "elpa")

;; Local Variables: