channels: Always provide a <channel-metadata> record.
authorLudovic Courtès <ludo@gnu.org>
Tue, 16 Jul 2019 22:41:10 +0000 (00:41 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 19 Jul 2019 09:53:47 +0000 (11:53 +0200)
commitce5d9ec875156f3de7479e861731edf48c984c16
tree0f4848ecab6f592a9775ed6690e5b36d643b8ac4
parent5d9daa85b0b8b7145d53768e673fd26ff31b0666
channels: Always provide a <channel-metadata> record.

This simplifies the code since one no longer needs to think about
whether '.guix-channel' was present.

* guix/channels.scm (read-channel-metadata): Always pass a string as the
first argument to 'channel-metadata'.
(read-channel-metadata-from-source): Always return a <channel-metadata>
record.
(channel-instance-dependencies): Remove now unneeded 'match'.
(standard-module-derivation): Assume DIRECTORY is never #f and contains
a leading slash.
* tests/channels.scm (channel-metadata-directory)
(channel-metadata-dependencies): New procedures.
("channel-instance-metadata returns #f if .guix-channel does not
exist"): Remove.
("channel-instance-metadata returns default if .guix-channel does not
exist"): New test.
(make-instance): Use 'write' instead of 'display' when creating
'.guix-channel'.
(instance--no-deps): Remove dependencies.
(instance--sub-directory): New variable.
("channel-instance-metadata and default dependencies")
("channel-instance-metadata and directory"): New tests.
("latest-channel-instances excludes duplicate channel dependencies"):
Expect 'channel-commit' to return a string and adjust accordingly.
guix/channels.scm
tests/channels.scm