<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/tests/publish.scm, branch master</title>
<subtitle>Personal branch of https://git.savannah.gnu.org/cgit/guix.git/ for implementing 'guix deploy'.
</subtitle>
<id>https://git.jakob.space/guix.git/atom?h=master</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-06-02T20:01:57Z</updated>
<entry>
<title>publish: '--compression' can be repeated.</title>
<updated>2019-06-02T20:01:57Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-05-30T16:36:37Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=b8fa86adfc01205f1d942af8cb57515eb3726c52'/>
<id>urn:sha1:b8fa86adfc01205f1d942af8cb57515eb3726c52</id>
<content type='text'>
This allows 'guix publish' to compress and advertise multiple
compression methods from which users can choose.

* guix/scripts/publish.scm (actual-compression): Rename to...
(actual-compressions): ... this.  Expect REQUESTED to be a list, and
always return a list.
(%default-options): Remove 'compression.
(store-item-&gt;recutils): New procedure.
(narinfo-string): Change #:compression to #:compressions (plural).
Adjust accordingly.
(render-narinfo, render-narinfo/cached): Likewise.
(bake-narinfo+nar): Change #:compression to #:compressions.
[compressed-nar-size]: New procedure.
Call 'compress-nar' for each item returned by 'actual-compressions'.
Create a narinfo for each compression.
(effective-compression): New procedure.
(make-request-handler): Change #:compression to #:compressions.
Use 'effective-compression' to determine the applicable compression.
(guix-publish): Adjust handling of '--compression'.
Print a message for each compression that is enabled.
* tests/publish.scm ("/*.narinfo"): Adjust to new narinfo field
ordering.
("/*.narinfo with properly encoded '+' sign"): Likewise.
("/*.narinfo with lzip + gzip"): New test.
("with cache, lzip + gzip"): New test.
* doc/guix.texi (Invoking guix publish): Document it.
</content>
</entry>
<entry>
<title>publish: Add support for lzip.</title>
<updated>2019-05-27T20:47:24Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-05-24T06:26:38Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=66229b04ae0ee05779b93d77900a062b8e0e8770'/>
<id>urn:sha1:66229b04ae0ee05779b93d77900a062b8e0e8770</id>
<content type='text'>
* guix/scripts/publish.scm (show-help, %options): Support '-C METHOD'
and '-C METHOD:LEVEL'.
(default-compression): New procedure.
(bake-narinfo+nar): Add lzip.
(nar-response-port): Likewise.
(string-&gt;compression-type): New procedure.
(make-request-handler): Generalize /nar/gzip handler to handle /nar/lzip
as well.
* tests/publish.scm ("/nar/lzip/*"): New test.
("/*.narinfo with lzip compression"): New test.
* doc/guix.texi (Invoking guix publish): Document it.
(Requirements): Mention lzlib.
</content>
</entry>
<entry>
<title>publish: Maintain a hash-part-to-store-item mapping in cache.</title>
<updated>2019-05-25T23:34:17Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-05-25T23:18:53Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=493375cdb23fc1416348da584f17bec7171faadd'/>
<id>urn:sha1:493375cdb23fc1416348da584f17bec7171faadd</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/33897&gt;.

* guix/scripts/publish.scm (hash-part-mapping-cache-file)
(hash-part-&gt;path*): New procedures.
* guix/scripts/publish.scm (render-narinfo/cached)[delete-entry]: Delete
the 'hash-part-mapping-cache-file'.
Use 'hash-part-&gt;path*' instead of 'hash-part-&gt;path'.
* tests/publish.scm ("with cache, vanishing item"): New test.
</content>
</entry>
<entry>
<title>Remove most uses of the _IO*F constants.</title>
<updated>2019-01-09T13:47:53Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-07T09:57:18Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=76832d3420594c8b5feaf7682b84b5481a49a076'/>
<id>urn:sha1:76832d3420594c8b5feaf7682b84b5481a49a076</id>
<content type='text'>
These constants, for use with 'setvbuf', were deprecated in Guile 2.2
and disappeared in Guile 3.0.  Here we keep these constants in
build-side code where removing them is not feasible.

* guix/build/download-nar.scm (download-nar): Adjust 'setvbuf' calls to
the Guile 2.2+ API.
* guix/build/download.scm (open-socket-for-uri): Likewise.
(open-connection-for-uri, url-fetch): Likewise.
* guix/build/make-bootstrap.scm (make-stripped-libc): Likewise.
* guix/build/union.scm (setvbuf) [guile-2.0]: New conditional wrapper.
(union-build): Adjust to new API.
* guix/ftp-client.scm (ftp-open, ftp-list, ftp-retr): Likewise.
* guix/http-client.scm (http-fetch): Likewise.
* guix/inferior.scm (proxy): Likewise.
* guix/scripts/substitute.scm (fetch, http-multiple-get): Likewise.
* guix/self.scm (compiled-modules): Likewise.
* guix/ssh.scm (remote-daemon-channel, store-import-channel)
(store-export-channel): Likewise.
* guix/ui.scm (initialize-guix): Likewise.
* tests/publish.scm (http-get-port): Likewise.
* guix/store.scm (%newlines): Adjust comment.
</content>
</entry>
<entry>
<title>publish: Add a 'Cache-Control' header on /nar responses.</title>
<updated>2018-12-17T22:33:42Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-17T22:01:51Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=9b9de08477afe0ea519f916ad3d33c9720c3278d'/>
<id>urn:sha1:9b9de08477afe0ea519f916ad3d33c9720c3278d</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/33721&gt;.
Reported by Chris Marusich &lt;cmmarusich@gmail.com&gt;.

* guix/scripts/publish.scm (render-nar/cached): Add #:ttl and honor it.
(make-request-handler): Pass #:ttl to 'render-nar/cached'.
* tests/publish.scm ("with cache, uncompressed"): Pass "--ttl=42h" to
'guix publish'.  Check 'Cache-Control' on narinfo response and on nar
response.
</content>
</entry>
<entry>
<title>Switch to Guile-Gcrypt.</title>
<updated>2018-09-04T15:25:11Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-08-31T15:07:07Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=ca719424455465fca4b872c371daf2a46de88b33'/>
<id>urn:sha1:ca719424455465fca4b872c371daf2a46de88b33</id>
<content type='text'>
This removes (guix hash) and (guix pk-crypto), which now live as part of
Guile-Gcrypt (version 0.1.0.)

* guix/gcrypt.scm, guix/hash.scm, guix/pk-crypto.scm,
tests/hash.scm, tests/pk-crypto.scm: Remove.
* configure.ac: Test for Guile-Gcrypt.  Remove LIBGCRYPT and
LIBGCRYPT_LIBDIR assignments.
* m4/guix.m4 (GUIX_ASSERT_LIBGCRYPT_USABLE): Remove.
* README: Add Guile-Gcrypt to the dependencies; move libgcrypt as
"required unless --disable-daemon".
* doc/guix.texi (Requirements): Likewise.
* gnu/packages/bash.scm, guix/derivations.scm, guix/docker.scm,
guix/git.scm, guix/http-client.scm, guix/import/cpan.scm,
guix/import/cran.scm, guix/import/crate.scm, guix/import/elpa.scm,
guix/import/gnu.scm, guix/import/hackage.scm,
guix/import/texlive.scm, guix/import/utils.scm, guix/nar.scm,
guix/pki.scm, guix/scripts/archive.scm,
guix/scripts/authenticate.scm, guix/scripts/download.scm,
guix/scripts/hash.scm, guix/scripts/pack.scm,
guix/scripts/publish.scm, guix/scripts/refresh.scm,
guix/scripts/substitute.scm, guix/store.scm,
guix/store/deduplication.scm, guix/tests.scm, tests/base32.scm,
tests/builders.scm, tests/challenge.scm, tests/cpan.scm,
tests/crate.scm, tests/derivations.scm, tests/gem.scm,
tests/nar.scm, tests/opam.scm, tests/pki.scm,
tests/publish.scm, tests/pypi.scm, tests/store-deduplication.scm,
tests/store.scm, tests/substitute.scm: Adjust imports.
* gnu/system/vm.scm: Likewise.
(guile-sqlite3&amp;co): Rename to...
(gcrypt-sqlite3&amp;co): ... this.  Add GUILE-GCRYPT.
(expression-&gt;derivation-in-linux-vm)[config]: Remove.
(iso9660-image)[config]: Remove.
(qemu-image)[config]: Remove.
(system-docker-image)[config]: Remove.
* guix/scripts/pack.scm: Adjust imports.
(guile-sqlite3&amp;co): Rename to...
(gcrypt-sqlite3&amp;co): ... this.  Add GUILE-GCRYPT.
(self-contained-tarball)[build]: Call 'make-config.scm' without
 #:libgcrypt argument.
(squashfs-image)[libgcrypt]: Remove.
[build]: Call 'make-config.scm' without #:libgcrypt.
(docker-image)[config, json]: Remove.
[build]: Add GUILE-GCRYPT to the extensions  Remove (guix config) from
the imported modules.
* guix/self.scm (specification-&gt;package): Remove "libgcrypt", add
"guile-gcrypt".
(compiled-guix): Remove #:libgcrypt.
[guile-gcrypt]: New variable.
[dependencies]: Add it.
[*core-modules*]: Remove #:libgcrypt from 'make-config.scm' call.
Add #:extensions.
[*config*]: Remove #:libgcrypt from 'make-config.scm' call.
(%dependency-variables): Remove %libgcrypt.
(make-config.scm): Remove #:libgcrypt.
* build-aux/build-self.scm (guile-gcrypt): New variable.
(make-config.scm): Remove #:libgcrypt.
(build-program)[fake-gcrypt-hash]: New variable.
Add (gcrypt hash) to the imported modules.  Adjust load path
assignments.
* gnu/packages/package-management.scm (guix)[propagated-inputs]: Add
GUILE-GCRYPT.
[arguments]: In 'wrap-program' phase, add GUILE-GCRYPT to the search
path.
</content>
</entry>
<entry>
<title>publish: Always build a new derivation for the "/log/NAME" test.</title>
<updated>2018-03-22T11:54:31Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-03-22T11:54:31Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=04d2a16c4ffd2f3ddfbaf3848093424228e7d918'/>
<id>urn:sha1:04d2a16c4ffd2f3ddfbaf3848093424228e7d918</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/30868&gt;.
Reported by Martin Castillo &lt;castilma@uni-bremen.de&gt;.

* tests/publish.scm ("/log/NAME"): Use #$(random-text) in the builder.
</content>
</entry>
<entry>
<title>publish: Add test for non-GET queries.</title>
<updated>2018-03-22T11:51:23Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-03-22T11:51:23Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=c1cd155aa8afa17e60491c85e8f226f99257d395'/>
<id>urn:sha1:c1cd155aa8afa17e60491c85e8f226f99257d395</id>
<content type='text'>
* tests/publish.scm ("non-GET query"): New test.
</content>
</entry>
<entry>
<title>publish: Restore gzip compression in cache-less mode.</title>
<updated>2018-01-22T10:15:50Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-01-22T09:46:34Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=33988f9b5876e4b44cabe1997a91eb604931c1ca'/>
<id>urn:sha1:33988f9b5876e4b44cabe1997a91eb604931c1ca</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/30184&gt;.
Regression introduced in 297e04d66010ada31a40f40143d81bf6b62affcc.
Reported by Christopher Baines &lt;mail@cbaines.net&gt;.

* guix/scripts/publish.scm (nar-response-port): Add 'compression'
parameter and honor it.
(http-write): Get 'x-nar-compression' from the initial RESPONSE.
</content>
</entry>
<entry>
<title>publish: Publish build logs.</title>
<updated>2018-01-07T22:51:46Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-01-04T23:19:35Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=c04ffadbed7412545555b8be6b78f23eed150d26'/>
<id>urn:sha1:c04ffadbed7412545555b8be6b78f23eed150d26</id>
<content type='text'>
* guix/scripts/publish.scm (render-log-file): New procedure.
(make-request-handler): Add "log" case.
* tests/publish.scm ("/log/NAME")
("/log/NAME not found"): New tests.
* doc/guix.texi (Invoking guix publish): Document /log URLs.
</content>
</entry>
</feed>
