* bug#36301: Package-Requires should support multiple lines
@ 2019-06-20 1:55 Thomas Fitzsimmons
2019-06-20 11:36 ` Noam Postavsky
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Fitzsimmons @ 2019-06-20 1:55 UTC (permalink / raw)
To: 36301
Hi,
The Package-Requires line in my GNU ELPA package, Excorporate, is much
longer than 80 characters and I would like to wrap it. It would be nice
if package.el allowed Package-Requires to span multiple lines (see
patch). It's probably too late to change this but I thought I'd file a
bug report anyway.
Thomas
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 46f7c91272..5c9b12732d 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1016,7 +1016,8 @@ package-buffer-info
(narrow-to-region start (point))
(require 'lisp-mnt)
;; Use some headers we've invented to drive the process.
- (let* ((requires-str (lm-header "package-requires"))
+ (let* ((requires-str
+ (mapconcat 'identity (lm-header-multiline "package-requires") " "))
;; Prefer Package-Version; if defined, the package author
;; probably wants us to use it. Otherwise try Version.
(pkg-version
^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-06-20 1:55 bug#36301: Package-Requires should support multiple lines Thomas Fitzsimmons
@ 2019-06-20 11:36 ` Noam Postavsky
2019-08-16 4:03 ` Thomas Fitzsimmons
0 siblings, 1 reply; 9+ messages in thread
From: Noam Postavsky @ 2019-06-20 11:36 UTC (permalink / raw)
To: Thomas Fitzsimmons; +Cc: 36301
severity 36301 wishlist
quit
Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:
> The Package-Requires line in my GNU ELPA package, Excorporate, is much
> longer than 80 characters and I would like to wrap it. It would be nice
> if package.el allowed Package-Requires to span multiple lines (see
> patch). It's probably too late to change this but I thought I'd file a
> bug report anyway.
I don't see a problem with changing it now, except that you won't be
able to actually wrap the Package-Requires line in Excorporate until
that package requires Emacs 27 or later.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-06-20 11:36 ` Noam Postavsky
@ 2019-08-16 4:03 ` Thomas Fitzsimmons
2019-08-16 16:03 ` Glenn Morris
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Fitzsimmons @ 2019-08-16 4:03 UTC (permalink / raw)
To: Noam Postavsky; +Cc: 36301-done
Noam Postavsky <npostavs@gmail.com> writes:
> severity 36301 wishlist
> quit
>
> Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:
>
>> The Package-Requires line in my GNU ELPA package, Excorporate, is much
>> longer than 80 characters and I would like to wrap it. It would be nice
>> if package.el allowed Package-Requires to span multiple lines (see
>> patch). It's probably too late to change this but I thought I'd file a
>> bug report anyway.
>
> I don't see a problem with changing it now, except that you won't be
> able to actually wrap the Package-Requires line in Excorporate until
> that package requires Emacs 27 or later.
OK, I pushed the change to master.
Thanks,
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-08-16 4:03 ` Thomas Fitzsimmons
@ 2019-08-16 16:03 ` Glenn Morris
2019-08-16 16:22 ` Thomas Fitzsimmons
0 siblings, 1 reply; 9+ messages in thread
From: Glenn Morris @ 2019-08-16 16:03 UTC (permalink / raw)
To: 36301; +Cc: fitzsim
This causes test failures; ref
https://hydra.nixos.org/build/98765298
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-08-16 16:03 ` Glenn Morris
@ 2019-08-16 16:22 ` Thomas Fitzsimmons
2019-08-16 21:42 ` Thomas Fitzsimmons
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Fitzsimmons @ 2019-08-16 16:22 UTC (permalink / raw)
To: Glenn Morris; +Cc: 36301
Glenn Morris <rgm@gnu.org> writes:
> This causes test failures; ref
> https://hydra.nixos.org/build/98765298
reopen 36301
OK, thanks for reporting. I reverted the patch for now.
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-08-16 16:22 ` Thomas Fitzsimmons
@ 2019-08-16 21:42 ` Thomas Fitzsimmons
2019-08-20 13:29 ` Noam Postavsky
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Fitzsimmons @ 2019-08-16 21:42 UTC (permalink / raw)
To: Glenn Morris; +Cc: 36301
Hi,
Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:
> Glenn Morris <rgm@gnu.org> writes:
>
>> This causes test failures; ref
>> https://hydra.nixos.org/build/98765298
>
> OK, thanks for reporting. I reverted the patch for now.
Here is the updated patch that fixes the test failures the prior one
introduced. "make check" still fails with and without the patch, but
only on some unrelated Tramp and D-Bus tests. If this looks OK, I'll
push it to master; in particular I wonder if there's a better way to do
the equivalent of mapconcat but produce nil on a nil input sequence.
Thanks,
Thomas
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index a72522ad8f..b0416cb002 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1028,6 +1028,7 @@ package--prepare-dependencies
deps))))
(declare-function lm-header "lisp-mnt" (header))
+(declare-function lm-header-multiline "lisp-mnt" (header))
(declare-function lm-homepage "lisp-mnt" (&optional file))
(declare-function lm-keywords-list "lisp-mnt" (&optional file))
(declare-function lm-maintainer "lisp-mnt" (&optional file))
@@ -1054,7 +1055,9 @@ package-buffer-info
(narrow-to-region start (point))
(require 'lisp-mnt)
;; Use some headers we've invented to drive the process.
- (let* ((requires-str (lm-header "package-requires"))
+ (let* ((requires-str (lm-header-multiline "package-requires"))
+ (requires-str (when requires-str
+ (mapconcat 'identity requires-str " ")))
;; Prefer Package-Version; if defined, the package author
;; probably wants us to use it. Otherwise try Version.
(pkg-version
^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-08-16 21:42 ` Thomas Fitzsimmons
@ 2019-08-20 13:29 ` Noam Postavsky
2019-09-01 1:40 ` Thomas Fitzsimmons
0 siblings, 1 reply; 9+ messages in thread
From: Noam Postavsky @ 2019-08-20 13:29 UTC (permalink / raw)
To: Thomas Fitzsimmons; +Cc: 36301
Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:
> I wonder if there's a better way to do the equivalent of mapconcat but
> produce nil on a nil input sequence.
Not exactly, but I think this is good place for and-let*:
--- i/lisp/emacs-lisp/package.el
+++ w/lisp/emacs-lisp/package.el
@@ -1028,6 +1028,7 @@ package--prepare-dependencies
deps))))
(declare-function lm-header "lisp-mnt" (header))
+(declare-function lm-header-multiline "lisp-mnt" (header))
(declare-function lm-homepage "lisp-mnt" (&optional file))
(declare-function lm-keywords-list "lisp-mnt" (&optional file))
(declare-function lm-maintainer "lisp-mnt" (&optional file))
@@ -1054,8 +1055,7 @@ package-buffer-info
(narrow-to-region start (point))
(require 'lisp-mnt)
;; Use some headers we've invented to drive the process.
- (let* ((requires-str (lm-header "package-requires"))
- ;; Prefer Package-Version; if defined, the package author
+ (let* (;; Prefer Package-Version; if defined, the package author
;; probably wants us to use it. Otherwise try Version.
(pkg-version
(or (package-strip-rcs-id (lm-header "package-version"))
@@ -1067,9 +1067,9 @@ package-buffer-info
"Package lacks a \"Version\" or \"Package-Version\" header"))
(package-desc-from-define
file-name pkg-version desc
- (if requires-str
- (package--prepare-dependencies
- (package-read-from-string requires-str)))
+ (and-let* ((require-lines (lm-header-multiline "package-requires")))
+ (package--prepare-dependencies
+ (package-read-from-string (mapconcat #'identity require-lines " "))))
:kind 'single
:url homepage
:keywords keywords
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-08-20 13:29 ` Noam Postavsky
@ 2019-09-01 1:40 ` Thomas Fitzsimmons
2019-09-01 17:34 ` Thomas Fitzsimmons
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Fitzsimmons @ 2019-09-01 1:40 UTC (permalink / raw)
To: Noam Postavsky; +Cc: 36301
Noam Postavsky <npostavs@gmail.com> writes:
> Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:
>> I wonder if there's a better way to do the equivalent of mapconcat but
>> produce nil on a nil input sequence.
>
> Not exactly, but I think this is good place for and-let*:
Yes, looks good; "make check" passes on these tests, so I pushed this
new patch. I'll wait for other test results before closing this.
Thanks,
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#36301: Package-Requires should support multiple lines
2019-09-01 1:40 ` Thomas Fitzsimmons
@ 2019-09-01 17:34 ` Thomas Fitzsimmons
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Fitzsimmons @ 2019-09-01 17:34 UTC (permalink / raw)
To: Noam Postavsky; +Cc: 36301-done
Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:
> Noam Postavsky <npostavs@gmail.com> writes:
>
>> Thomas Fitzsimmons <fitzsim@fitzsim.org> writes:
>>> I wonder if there's a better way to do the equivalent of mapconcat but
>>> produce nil on a nil input sequence.
>>
>> Not exactly, but I think this is good place for and-let*:
>
> Yes, looks good; "make check" passes on these tests, so I pushed this
> new patch. I'll wait for other test results before closing this.
The Hydra build succeeded too:
https://hydra.nixos.org/build/99577710
so I'm closing this.
Thanks,
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-09-01 17:34 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-20 1:55 bug#36301: Package-Requires should support multiple lines Thomas Fitzsimmons
2019-06-20 11:36 ` Noam Postavsky
2019-08-16 4:03 ` Thomas Fitzsimmons
2019-08-16 16:03 ` Glenn Morris
2019-08-16 16:22 ` Thomas Fitzsimmons
2019-08-16 21:42 ` Thomas Fitzsimmons
2019-08-20 13:29 ` Noam Postavsky
2019-09-01 1:40 ` Thomas Fitzsimmons
2019-09-01 17:34 ` Thomas Fitzsimmons
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).