channels: Strictly check the version of '.guix-channel'.
authorLudovic Courtès <ludo@gnu.org>
Tue, 16 Jul 2019 22:04:41 +0000 (00:04 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 19 Jul 2019 09:53:47 +0000 (11:53 +0200)
commit45b903323e0fecb7947926d2c14103d47fea624a
treeb53dd88f3584004144ecd247b32eed0242509830
parentbacfec8611530dc3e849fb804b51f50b299796f0
channels: Strictly check the version of '.guix-channel'.

Until now the 'version' field in '.guix-channel' could be omitted, or it
could be any value.

* guix/channels.scm (read-channel-metadata): Rename to...
(channel-instance-metadata): ... this.
(channel-instance-dependencies): Adjust accordingly.
(read-channel-metadata): New procedure.  Use 'match'
to require a 'version' field.  Provide proper error handling when the
channel sexp is malformed or when given an unsupported version number.
(read-channel-metadata-from-source): Use 'catch' and
'system-error-errno' instead of 'file-exists?'.
* tests/channels.scm (instance--unsupported-version): New variable.
(read-channel-metadata): Rename to...
(channel-instance-metadata): ... this.  Rename tests accordingly.
("channel-instance-metadata rejects unsupported version"): New test.
guix/channels.scm
tests/channels.scm