<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/guix/import/stackage.scm, branch merge-deploy</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=merge-deploy</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=merge-deploy'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-07-24T22:16:41Z</updated>
<entry>
<title>maint: Switch to Guile-JSON 3.x.</title>
<updated>2019-07-24T22:16:41Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-07-21T21:05:54Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=81c3dc32244a17241d74eea9fa265edfcb326f6d'/>
<id>urn:sha1:81c3dc32244a17241d74eea9fa265edfcb326f6d</id>
<content type='text'>
Guile-JSON 3.x is incompatible with Guile-JSON 1.x, which we relied on
until now: it maps JSON dictionaries to alists (instead of hash tables),
and JSON arrays to vectors (instead of lists).  This commit is about
adjusting all the existing code to this new mapping.

* m4/guix.m4 (GUIX_CHECK_GUILE_JSON): New macro.
* configure.ac: Use it.
* doc/guix.texi (Requirements): Mention the Guile-JSON version.
* guix/git-download.scm (git-fetch)[guile-json]: Use GUILE-JSON-3.
* guix/import/cpan.scm (string-&gt;license): Expect vectors instead of
lists.
(module-&gt;dist-name): Use 'json-fetch' instead of 'json-fetch-alist'.
(cpan-fetch): Likewise.
* guix/import/crate.scm (crate-fetch): Likewise, and call 'vector-&gt;list'
for DEPS.
* guix/import/gem.scm (rubygems-fetch): Likewise.
* guix/import/json.scm (json-fetch-alist): Remove.
* guix/import/pypi.scm (pypi-fetch): Use 'json-fetch' instead of
'json-fetch-alist'.
(latest-source-release, latest-wheel-release): Call 'vector-&gt;list' on
RELEASES.
* guix/import/stackage.scm (stackage-lts-info-fetch): Use 'json-fetch'
instead of 'json-fetch-alist'.
(lts-package-version): Use 'vector-&gt;list'.
* guix/import/utils.scm (hash-table-&gt;alist): Remove.
(alist-&gt;package): Pass 'vector-&gt;list' on the inputs fields, and default
to the empty vector.
* guix/scripts/import/json.scm (guix-import-json): Remove call to
'hash-table-&gt;alist'.
* guix/swh.scm (define-json-reader): Expect pair? or null? instead of
hash-table?.
[extract-field]: Use 'assoc-ref' instead of 'hash-ref'.
(json-&gt;branches): Use 'map' instead of 'hash-map-&gt;list'.
(json-&gt;checksums): Likewise.
(json-&gt;directory-entries, origin-visits): Call 'vector-&gt;list' on the
result of 'json-&gt;scm'.
* tests/import-utils.scm ("alist-&gt;package with dependencies"): New test.
* gnu/installer.scm (build-compiled-file)[builder]: Use GUILE-JSON-3.
* gnu/installer.scm (installer-program)[installer-builder]: Likewise.
* gnu/installer/locale.scm (iso639-&gt;iso639-languages): Use 'assoc-ref'
instead of 'hash-ref', and pass vectors through 'vector-&gt;list'.
(iso3166-&gt;iso3166-territories): Likewise.
* gnu/system/vm.scm (system-docker-image)[build]: Use GUILE-JSON-3.
* guix/docker.scm (manifest, config): Adjust for Guile-JSON 3.
* guix/scripts/pack.scm (docker-image)[build]: Use GUILE-JSON-3.
* guix/import/github.scm (fetch-releases-or-tags): Update docstring.
(latest-released-version): Use 'assoc-ref' instead of 'hash-ref'.  Pass
the result of 'fetch-releases-or-tags' to 'vector-&gt;list'.
* guix/import/launchpad.scm (latest-released-version): Likewise.
</content>
</entry>
<entry>
<title>guix: import: stackage: Fix JSON accessors.</title>
<updated>2018-10-01T10:12:08Z</updated>
<author>
<name>Timothy Sample</name>
<email>samplet@ngyro.com</email>
</author>
<published>2018-08-28T13:45:36Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=127586adfb4228576d124ad5fa5cb6eacc29ea0f'/>
<id>urn:sha1:127586adfb4228576d124ad5fa5cb6eacc29ea0f</id>
<content type='text'>
* guix/import/stackage.scm (lts-info-ghc-version, lst-info-packages): Use
assoc-ref for accessing parsed JSON.
</content>
</entry>
<entry>
<title>import: stackage: Support recursive importing.</title>
<updated>2018-08-30T13:22:06Z</updated>
<author>
<name>Ricardo Wurmus</name>
<email>ricardo.wurmus@mdc-berlin.de</email>
</author>
<published>2018-08-20T15:38:56Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=a3ece51a29241c7060323cbbfc602c83200ffe4a'/>
<id>urn:sha1:a3ece51a29241c7060323cbbfc602c83200ffe4a</id>
<content type='text'>
* guix/import/hackage.scm (hackage-name-&gt;package-name): Export procedure.
* guix/import/stackage.scm (lts-info-packages-lts-info): Fix match expression.
(stackage-recursive-import): New procedure.
(stackage-&gt;guix-package): Memoize results.
* guix/scripts/import/stackage.scm (show-help, %options,
guix-import-stackage): Support recursive importing.
* doc/guix.texi (Invoking guix import): Document option.
</content>
</entry>
<entry>
<title>import: json: Consolidate duplicate json-fetch functionality.</title>
<updated>2018-06-10T20:15:12Z</updated>
<author>
<name>Jelle Licht</name>
<email>jlicht@fsfe.org</email>
</author>
<published>2018-06-10T18:35:39Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=3edf0d53a4043c30f3ff87b3b4b7b47d1bac1397'/>
<id>urn:sha1:3edf0d53a4043c30f3ff87b3b4b7b47d1bac1397</id>
<content type='text'>
* guix/import/json.scm (json-fetch): Return a list or hash table.
  (json-fetch-alist): New procedure.
* guix/import/github.scm (json-fetch*): Remove.
  (latest-released-version): Use json-fetch.
* guix/import/cpan.scm (module-&gt;dist-name): Use json-fetch-alist.
  (cpan-fetch): Likewise.
* guix/import/crate.scm (crate-fetch): Likewise.
* guix/import/gem.scm (rubygems-fetch): Likewise.
* guix/import/pypi.scm (pypi-fetch): Likewise.
* guix/import/stackage.scm (stackage-lts-info-fetch): Likewise.
</content>
</entry>
<entry>
<title>import: stackage: Avoid using (guix ui) in importer code.</title>
<updated>2017-02-14T07:38:45Z</updated>
<author>
<name>Federico Beffa</name>
<email>beffa@fbengineering.ch</email>
</author>
<published>2017-02-11T17:18:45Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=57075ade97e58eded5657ec74e5516d58f15eda6'/>
<id>urn:sha1:57075ade97e58eded5657ec74e5516d58f15eda6</id>
<content type='text'>
* guix/import/stackage.scm (stackage-&gt;guix-package, stackage-lts-info-fetch):
  Raise 'message' condition instead of using 'leave' from (guix ui).
* guix/scripts/import/stackage.scm (guix-import-stackage): Handle conditions.
</content>
</entry>
<entry>
<title>import: Add stackage importer and updater.</title>
<updated>2017-02-09T18:36:08Z</updated>
<author>
<name>Federico Beffa</name>
<email>beffa@fbengineering.ch</email>
</author>
<published>2017-02-06T17:19:26Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=bc5844d14955c09330d47984d930e1e9aa8c0ee0'/>
<id>urn:sha1:bc5844d14955c09330d47984d930e1e9aa8c0ee0</id>
<content type='text'>
* guix/import/stackage.scm: New file.
* guix/scripts/import/stackage.scm: New file.
* Makefile.am (MODULES): Add new files.
* guix/scripts/import.scm (importers): Add "stackage".
* guix/scripts/refresh.scm (%updaters): Add %stackage-updater.
* doc/guix.texi (Invoking 'guix import'): Document the importer.
  (Invoking 'guix refresh'): Add stackage to option --type valid values.
* guix/import/hackage.scm (guix-package-&gt;hackage-name, hackage-fetch,
  hackage-source-url, hackage-cabal-url, hackage-package?): Export them.
</content>
</entry>
</feed>
