<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/tests, branch hurd-team</title>
<subtitle>Transactional package manager, declarative GNU/Linux distribution, reproducible deployment tool, and more! https://guix.gnu.org</subtitle>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/'/>
<entry>
<title>pull, time-machine: ‘--allow-untrusted-channels’ takes an argument.</title>
<updated>2026-05-10T15:01:08+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-05-04T15:54:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=c9dcd203e5356f13b736d5be121fd61874be1a93'/>
<id>c9dcd203e5356f13b736d5be121fd61874be1a93</id>
<content type='text'>
* guix/scripts/pull.scm (%default-options): Change ‘require-trusted-channels?’
to ‘require-trusted-channels’.
(show-help, %options): Support optional argument to
‘--allow-untrusted-channels’.
(channel-list): Adjust accordingly.
* guix/scripts/time-machine.scm (show-help, %options)
(%default-options): Likewise.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull)
(Invoking guix time-machine): Adjust accordingly.

Suggested-by: Reepca Russelstein &lt;reepca@russelstein.xyz&gt;
Change-Id: I342ebbcc7355953487a5c6c8ac85048943a5ac46
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/scripts/pull.scm (%default-options): Change ‘require-trusted-channels?’
to ‘require-trusted-channels’.
(show-help, %options): Support optional argument to
‘--allow-untrusted-channels’.
(channel-list): Adjust accordingly.
* guix/scripts/time-machine.scm (show-help, %options)
(%default-options): Likewise.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull)
(Invoking guix time-machine): Adjust accordingly.

Suggested-by: Reepca Russelstein &lt;reepca@russelstein.xyz&gt;
Change-Id: I342ebbcc7355953487a5c6c8ac85048943a5ac46
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pull, time-machine: Accept content SWHIDs as arguments to ‘--channels’.</title>
<updated>2026-05-10T15:01:08+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-04-23T14:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=f13901f6cbd663019090963664ace72345165461'/>
<id>f13901f6cbd663019090963664ace72345165461</id>
<content type='text'>
* guix/swh.scm (swhid-content-data): New procedure.
(call): Do not close ‘port’ when ‘result’ is the same as ‘port’.
* guix/scripts/pull.scm (swhid-content-data*): New procedure.
(channel-list): Accept ‘file’ as a SWHID.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull): Document it.
(Invoking guix time-machine): Likewise.

Change-Id: I8145cd8685fe2926b1548d4a2dcd54804d89228a
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/swh.scm (swhid-content-data): New procedure.
(call): Do not close ‘port’ when ‘result’ is the same as ‘port’.
* guix/scripts/pull.scm (swhid-content-data*): New procedure.
(channel-list): Accept ‘file’ as a SWHID.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull): Document it.
(Invoking guix time-machine): Likewise.

Change-Id: I8145cd8685fe2926b1548d4a2dcd54804d89228a
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pull, time-machine: Support transparent download of channel files.</title>
<updated>2026-05-10T15:01:08+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-02-27T16:30:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=4b81a4df19bc659915e156fed9b12fb9319b11fb'/>
<id>4b81a4df19bc659915e156fed9b12fb9319b11fb</id>
<content type='text'>
* guix/scripts/pull.scm (%default-options): Add ‘require-trusted-channels?’.
(show-help, %options): Add ‘--allow-untrusted-channels’.
(trusted-channels, equivalent-channels?, check-trusted-channels): New
procedures.
(channel-list)[require-trusted-channels?]: New variable.
[load-channels]: Honor it and call ‘check-trusted-channels’.
* guix/scripts/time-machine.scm (show-help, %options): Add
‘--allow-untrusted-channels’.
(%default-options): Add ‘require-trusted-channels?’.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull): Update ‘--channels’ documentation and
document ‘allow-untrusted-channels’.
(Invoking guix time-machine): Likewise.
(Channels with Substitutes): Add example of ‘guix pull’ with a URL.

Change-Id: If0bb6acaedf324e35a21c9c7d285f3e423ae49aa
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/scripts/pull.scm (%default-options): Add ‘require-trusted-channels?’.
(show-help, %options): Add ‘--allow-untrusted-channels’.
(trusted-channels, equivalent-channels?, check-trusted-channels): New
procedures.
(channel-list)[require-trusted-channels?]: New variable.
[load-channels]: Honor it and call ‘check-trusted-channels’.
* guix/scripts/time-machine.scm (show-help, %options): Add
‘--allow-untrusted-channels’.
(%default-options): Add ‘require-trusted-channels?’.
* tests/guix-time-machine.sh: Add test.
* doc/guix.texi (Invoking guix pull): Update ‘--channels’ documentation and
document ‘allow-untrusted-channels’.
(Invoking guix time-machine): Likewise.
(Channels with Substitutes): Add example of ‘guix pull’ with a URL.

Change-Id: If0bb6acaedf324e35a21c9c7d285f3e423ae49aa
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ui: ‘load*’ accepts a file name or a port.</title>
<updated>2026-05-10T15:01:08+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-02-27T16:28:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=2d4f290e17c5dbe4b97ece9320eef0a4ad3d821e'/>
<id>2d4f290e17c5dbe4b97ece9320eef0a4ad3d821e</id>
<content type='text'>
* guix/ui.scm (load/isolated): Change ‘file’ parameter to ‘port’ and adjust
accordingly.
(load*): Change ‘file’ to ‘file-or-port’ and adjust accordingly.
* tests/ui.scm ("load/isolated, reading exceeds limits")
("load/isolated, attempt to import module")
("load/isolated, attempt to allocate with 'cons'")
("load/isolated, attempt to allocate with 'make-vector'")
("load/isolated, use of allowed bindings"): New tests.

Change-Id: I0ec8fa2717c02041d409f6dc59b753d4501107f9
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/ui.scm (load/isolated): Change ‘file’ parameter to ‘port’ and adjust
accordingly.
(load*): Change ‘file’ to ‘file-or-port’ and adjust accordingly.
* tests/ui.scm ("load/isolated, reading exceeds limits")
("load/isolated, attempt to import module")
("load/isolated, attempt to allocate with 'cons'")
("load/isolated, attempt to allocate with 'make-vector'")
("load/isolated, use of allowed bindings"): New tests.

Change-Id: I0ec8fa2717c02041d409f6dc59b753d4501107f9
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pull, time-machine: Evaluate channels in a sandbox by default.</title>
<updated>2026-05-10T15:01:07+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-02-26T19:55:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=36d431c05153ac0c82c443ac5d17466958544ada'/>
<id>36d431c05153ac0c82c443ac5d17466958544ada</id>
<content type='text'>
* guix/scripts/pull.scm (%default-options): Add
‘isolated-channel-evaluation?’.
(show-help, %options): Add ‘--unsafe-channel-evaluation’.
(%safe-channel-bindings): New variable.
(channel-list): Honor ‘isolated-channel-evaluation?’.
* guix/scripts/time-machine.scm (show-help, %options): Add
‘--unsafe-channel-evaluation’.
(%default-options): Add ‘isolated-channel-evaluation?’.
* tests/guix-time-machine.sh: Test use of unauthorized bindings in channel
files.
* doc/guix.texi (Invoking guix time-machine): Document
‘--unsafe-channel-evaluation’.
(Invoking guix pull): Likewise.
(Channels with Substitutes): Add index entry for
‘channel-with-substitutes-available’.  Mention that it requires
‘--unsafe-channel-evaluation’.

Change-Id: I75f60dba516f42ef62a9d779cde8e2f0a9d0c140
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/scripts/pull.scm (%default-options): Add
‘isolated-channel-evaluation?’.
(show-help, %options): Add ‘--unsafe-channel-evaluation’.
(%safe-channel-bindings): New variable.
(channel-list): Honor ‘isolated-channel-evaluation?’.
* guix/scripts/time-machine.scm (show-help, %options): Add
‘--unsafe-channel-evaluation’.
(%default-options): Add ‘isolated-channel-evaluation?’.
* tests/guix-time-machine.sh: Test use of unauthorized bindings in channel
files.
* doc/guix.texi (Invoking guix time-machine): Document
‘--unsafe-channel-evaluation’.
(Invoking guix pull): Likewise.
(Channels with Substitutes): Add index entry for
‘channel-with-substitutes-available’.  Mention that it requires
‘--unsafe-channel-evaluation’.

Change-Id: I75f60dba516f42ef62a9d779cde8e2f0a9d0c140
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ui: ‘load*’ takes a list of modules to import.</title>
<updated>2026-05-10T15:01:07+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-02-24T14:15:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=94ae360ab4039afc8c942e77ba495705850c1e65'/>
<id>94ae360ab4039afc8c942e77ba495705850c1e65</id>
<content type='text'>
* guix/ui.scm (load*): Change ‘module’ to ‘imports’.  Define ‘user-module’.
* guix/scripts/build.scm (options-&gt;things-to-build): Update to new ‘load*’
calling convention.
* guix/scripts/deploy.scm (load-source-file): Likewise.
* guix/scripts/environment.scm (load-manifest)
(options/resolve-packages): Likewise.
* guix/scripts/home.scm (process-action): Likewise.
(%user-module): Rename to…
(%user-modules): … this, and change to a list of module names.
* guix/scripts/pack.scm (guix-pack): Update ‘load*’ calls.
* guix/scripts/package.scm (load-manifest, %options): Likewise.
* guix/scripts/pull.scm (channel-list): Likewise.
* guix/scripts/refresh.scm (packages-from-manifest): Likewise.
* guix/scripts/system.scm (%user-module): Rename to…
(%user-modules): … this, and change to a list of module names.
(read-operating-system): Adjust accordingly.
(process-action): Likewise.
* guix/scripts/weather.scm (load-manifest): Likewise.
* tests/gexp.scm ("local-file, relative file name, within gexp, compiled"):
Likewise.

Change-Id: Ic838e66719d89de556ac0872c3ce0c8ff6de8790
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/ui.scm (load*): Change ‘module’ to ‘imports’.  Define ‘user-module’.
* guix/scripts/build.scm (options-&gt;things-to-build): Update to new ‘load*’
calling convention.
* guix/scripts/deploy.scm (load-source-file): Likewise.
* guix/scripts/environment.scm (load-manifest)
(options/resolve-packages): Likewise.
* guix/scripts/home.scm (process-action): Likewise.
(%user-module): Rename to…
(%user-modules): … this, and change to a list of module names.
* guix/scripts/pack.scm (guix-pack): Update ‘load*’ calls.
* guix/scripts/package.scm (load-manifest, %options): Likewise.
* guix/scripts/pull.scm (channel-list): Likewise.
* guix/scripts/refresh.scm (packages-from-manifest): Likewise.
* guix/scripts/system.scm (%user-module): Rename to…
(%user-modules): … this, and change to a list of module names.
(read-operating-system): Adjust accordingly.
(process-action): Likewise.
* guix/scripts/weather.scm (load-manifest): Likewise.
* tests/gexp.scm ("local-file, relative file name, within gexp, compiled"):
Likewise.

Change-Id: Ic838e66719d89de556ac0872c3ce0c8ff6de8790
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>style: Add ‘remove-input’ and related styling rules.</title>
<updated>2026-05-07T15:35:32+00:00</updated>
<author>
<name>Nicolas Graves</name>
<email>ngraves@ngraves.fr</email>
</author>
<published>2026-01-24T00:14:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=8a505cfd48264973f1208ffe04894af12074b8c7'/>
<id>8a505cfd48264973f1208ffe04894af12074b8c7</id>
<content type='text'>
* guix/scripts/style.scm (input-matches?, package-list-&gt;string,
%field-accessors, remove-from-package-field, transform-package-field):
Add variables.
(%options): Add options --remove-input, --remove-native-input,
--remove-propagated-input, and --parameter.
(guix-style): Implement those options.  To keep ony one autoload, use
specification-&gt;package+output rather than specification-&gt;package.

* tests/style.scm ("remove-input, single input removed",
"remove-input, one of multiple inputs removed",
"remove-input, middle input removed from list",
"remove-input, non-existent input unchanged",
"remove-input, input with output specifier",
"remove-native-input, single input removed",
"remove-native-input, one of multiple inputs removed",
"remove-native-input, does not affect inputs field",
"remove-propagated-input, single input removed",
"remove-propagated-input, one of multiple inputs removed",
"remove-propagated-input, does not affect other fields",
"remove-input from all three fields independently",
"remove-input, dry-run does not modify file"): New tests.
("url-fetch-&gt;git-fetch, preserved field"): Drop the use of %patch-path
and %package-module-path, which are not necessary because of -L.
Change the mocked procedure from specification-&gt;package to
specification-&gt;package+output, as in the implementation.

* doc/guix.texi (Invoking guix style): Add description for guix style
-S remove-*input rules.

Change-Id: I449c87930310a73ad316b4cb5db72d0906ea495d
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #5862
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/scripts/style.scm (input-matches?, package-list-&gt;string,
%field-accessors, remove-from-package-field, transform-package-field):
Add variables.
(%options): Add options --remove-input, --remove-native-input,
--remove-propagated-input, and --parameter.
(guix-style): Implement those options.  To keep ony one autoload, use
specification-&gt;package+output rather than specification-&gt;package.

* tests/style.scm ("remove-input, single input removed",
"remove-input, one of multiple inputs removed",
"remove-input, middle input removed from list",
"remove-input, non-existent input unchanged",
"remove-input, input with output specifier",
"remove-native-input, single input removed",
"remove-native-input, one of multiple inputs removed",
"remove-native-input, does not affect inputs field",
"remove-propagated-input, single input removed",
"remove-propagated-input, one of multiple inputs removed",
"remove-propagated-input, does not affect other fields",
"remove-input from all three fields independently",
"remove-input, dry-run does not modify file"): New tests.
("url-fetch-&gt;git-fetch, preserved field"): Drop the use of %patch-path
and %package-module-path, which are not necessary because of -L.
Change the mocked procedure from specification-&gt;package to
specification-&gt;package+output, as in the implementation.

* doc/guix.texi (Invoking guix style): Add description for guix style
-S remove-*input rules.

Change-Id: I449c87930310a73ad316b4cb5db72d0906ea495d
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #5862
</pre>
</div>
</content>
</entry>
<entry>
<title>shell: Add --cwd.</title>
<updated>2026-04-30T00:07:20+00:00</updated>
<author>
<name>Danny Milosavljevic</name>
<email>dannym@friendly-machines.com</email>
</author>
<published>2026-04-13T15:59:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=62992295d67958683e97c4dbafeb3f5396bb6742'/>
<id>62992295d67958683e97c4dbafeb3f5396bb6742</id>
<content type='text'>
* guix/scripts/environment.scm (show-environment-options-help): Document
--cwd.
(%options): Add cwd.
(launch-environment/container): Add cwd parameter.  Implement passing it to
the container.
(guix-environment*): Reject --cwd without --container.
* doc/guix.texi (Invoking guix shell): Document it.
* tests/guix-environment-container.sh: Add tests.
* tests/guix-shell.sh: Add tests.

Fixes: guix/guix# 7825
Change-Id: Iba4ff3d2058e92f504fbcbf688346357ce913213
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/scripts/environment.scm (show-environment-options-help): Document
--cwd.
(%options): Add cwd.
(launch-environment/container): Add cwd parameter.  Implement passing it to
the container.
(guix-environment*): Reject --cwd without --container.
* doc/guix.texi (Invoking guix shell): Document it.
* tests/guix-environment-container.sh: Add tests.
* tests/guix-shell.sh: Add tests.

Fixes: guix/guix# 7825
Change-Id: Iba4ff3d2058e92f504fbcbf688346357ce913213
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: toml: Fix nested array-of-tables test.</title>
<updated>2026-04-29T02:17:05+00:00</updated>
<author>
<name>Dariqq</name>
<email>dariqq@posteo.net</email>
</author>
<published>2025-10-03T10:23:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=fceb3915d845a4e64fcae57e12232d0436b78758'/>
<id>fceb3915d845a4e64fcae57e12232d0436b78758</id>
<content type='text'>
* tests/toml.scm (parse-toml: Array of tables):
  Adjust the expected value for nested arrays.

Change-Id: I4dbe27c0120f147226f82cda5ae3c27cb2ed6f49
Merges: https://codeberg.org/guix/guix/pulls/3245
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* tests/toml.scm (parse-toml: Array of tables):
  Adjust the expected value for nested arrays.

Change-Id: I4dbe27c0120f147226f82cda5ae3c27cb2ed6f49
Merges: https://codeberg.org/guix/guix/pulls/3245
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: style: Fix tests for guile &gt; 3.0.9.</title>
<updated>2026-04-24T20:57:49+00:00</updated>
<author>
<name>Nicolas Graves</name>
<email>ngraves@ngraves.fr</email>
</author>
<published>2026-04-02T16:23:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=fbd8568c22df88321cf7ab4ce8e233fcb311737e'/>
<id>fbd8568c22df88321cf7ab4ce8e233fcb311737e</id>
<content type='text'>
* tests/style.scm : Drop the snippet that skipped all tests.
(read-package-field): Return S-expressions with comments rather than a
string.
Rewrite all tests accordingly.

Change-Id: I478611e7c58747a1b80598366c2b5510d9625498
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #7632
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* tests/style.scm : Drop the snippet that skipped all tests.
(read-package-field): Return S-expressions with comments rather than a
string.
Rewrite all tests accordingly.

Change-Id: I478611e7c58747a1b80598366c2b5510d9625498
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #7632
</pre>
</div>
</content>
</entry>
</feed>
