[PATCH 1/2] rde: predicates: Improve list-of-elisp-packages? predicate.
Export this patch
hi, this improves the list-of-elisp-packages? predicate...or so i hope ;()
Unfortunately, it won't work, because some emacs packages are built with
build-systems other than emacs-build-system :) For example emacs-howm.
src/rde/features/predicates.scm | 8 +++++++ -
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/rde/features/predicates.scm b/src/rde/features/predicates.scm
index d5fecf4..2d6c6f4 100644
@@ -8,6 +8,7 @@
#:use-module (gnu system mapped-devices)
#:use-module (srfi srfi-1)
+ #:use-module (guix build-system) #:use-module (guix packages)
#:use-module (guix inferior)
#:use-module (guix gexp)
@@ -64,8 +65,13 @@
(define-public (list-of-packages? lst)
(and (list? lst) (every any-package? lst)))
+(define (elisp-package? x)
+ (equal? 'emacs
+ (build-system-name (package-build-system x))))
+ (define-public (list-of-elisp-packages? lst)
- (list-of-packages? lst))
+ (and (list-of-packages? lst)
+ (map elisp-package? lst)))
(define-public (list-of-services? lst)
(and (list? lst) (every service? lst)))
[PATCH 2/2] tests: Add a test for list-of-elisp-packages?.
Export this patch
tests/rde/tests/predicates.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 tests/rde/tests/predicates.scm
diff --git a/tests/rde/tests/predicates.scm b/tests/rde/tests/predicates.scm
new file mode 100644
@@ -0,0 +1,33 @@
+;;; rde --- Reproducible development environment.
+;;; Copyright © 2023 jgart <firstname.lastname@example.org>
+;;; This file is part of rde.
+;;; rde is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;; rde is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;; You should have received a copy of the GNU General Public License
+;;; along with rde. If not, see <http://www.gnu.org/licenses/>.
+(define-module (rde tests predicates)
+ #:use-module (rde features predicates)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages emacs-xyz)
+ #:use-module (srfi srfi-64)
+ #:use-module (ice-9 match))
Probably it won't work, as define-test is provided by (rde tests), which
is not imported here.
Also, it's better not to use srfi-64 directly, but use symbols
re-exported by (rde tests) as we can change underlying implementation
someday (maybe never, but still).
+ (test-group "list-of-elisp-packages"
+ (test-equal "booleans"
+ '(#t #f #t #t #f)
+ `(emacs-magit nnn emacs-denote emacs-corfu tcpdump)))))
Thank you for the patch and it's really cool that you added a test, but
marking it as REJECTED due to the reason mentioned in a previous reply.