guix-devel/guix
Ludovic Courtès 81c3dc3224
maint: Switch to Guile-JSON 3.x.
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->license): Expect vectors instead of
lists.
(module->dist-name): Use 'json-fetch' instead of 'json-fetch-alist'.
(cpan-fetch): Likewise.
* guix/import/crate.scm (crate-fetch): Likewise, and call 'vector->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->list' on
RELEASES.
* guix/import/stackage.scm (stackage-lts-info-fetch): Use 'json-fetch'
instead of 'json-fetch-alist'.
(lts-package-version): Use 'vector->list'.
* guix/import/utils.scm (hash-table->alist): Remove.
(alist->package): Pass 'vector->list' on the inputs fields, and default
to the empty vector.
* guix/scripts/import/json.scm (guix-import-json): Remove call to
'hash-table->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->branches): Use 'map' instead of 'hash-map->list'.
(json->checksums): Likewise.
(json->directory-entries, origin-visits): Call 'vector->list' on the
result of 'json->scm'.
* tests/import-utils.scm ("alist->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->iso639-languages): Use 'assoc-ref'
instead of 'hash-ref', and pass vectors through 'vector->list'.
(iso3166->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->list'.
* guix/import/launchpad.scm (latest-released-version): Likewise.
2019-07-25 00:16:41 +02:00
..
build build/cargo-build-system: Use bundled json instead of guile-json. 2019-07-16 09:54:12 +02:00
build-system build/cargo-build-system: Use bundled json instead of guile-json. 2019-07-16 09:54:12 +02:00
import maint: Switch to Guile-JSON 3.x. 2019-07-25 00:16:41 +02:00
scripts maint: Switch to Guile-JSON 3.x. 2019-07-25 00:16:41 +02:00
store gnu, guix: Yearly ritual purging of the filesystems. 2019-04-25 04:42:16 +02:00
tests tests: Support multiple HTTP server instances. 2017-10-12 23:47:48 +02:00
base16.scm utils: Move base16 procedures to (guix base16). 2017-03-16 22:50:14 +01:00
base32.scm base32: Export the base32 charsets. 2017-07-21 17:03:24 +02:00
base64.scm base64: Turn into a regular Guile module. 2017-05-25 14:25:17 +02:00
build-system.scm build-system: Bags record their system and target. 2014-10-05 21:58:42 +02:00
bzr-download.scm Add (guix bzr-download). 2019-05-09 00:22:37 -04:00
cache.scm cache: Work around 'time-monotonic' bug in Guile 2.2.2. 2017-04-22 14:42:15 +02:00
channels.scm channels: Always provide a <channel-metadata> record. 2019-07-19 11:53:47 +02:00
ci.scm ci: Add procedures to access evaluations. 2018-11-10 23:33:46 +01:00
colors.scm colors: Add 'highlight'. 2019-04-14 23:40:52 +02:00
combinators.scm Add (guix memoization). 2017-01-28 18:55:20 +01:00
config.scm.in Add (guix lzlib). 2019-05-06 23:21:33 +02:00
cpio.scm linux-initrd: Produce cpio archives with zeroed timestamps, etc. 2015-06-24 18:05:03 +02:00
cve.scm cve: Update feed URL. 2018-08-26 01:47:40 +02:00
cvs-download.scm download: Download a nar when a VCS checkout fails. 2017-10-19 23:21:49 +02:00
deprecation.scm deprecation: Use the 'warning' procedure for diagnostics. 2019-06-03 23:18:47 +02:00
derivations.scm gexp: 'lowered-gexp-guile' now returns a <derivation-input>. 2019-07-15 10:01:05 +02:00
describe.scm describe: Add 'current-profile-date'. 2019-03-17 22:55:01 +01:00
diagnostics.scm Add (guix diagnostics). 2019-06-03 23:18:47 +02:00
discovery.scm ui: 'warn-about-load-error' warns about file/module name mismatches. 2019-07-20 01:32:17 +02:00
docker.scm maint: Switch to Guile-JSON 3.x. 2019-07-25 00:16:41 +02:00
download.scm download: Use the new 'derivation' calling convention. 2019-07-15 10:01:05 +02:00
elf.scm elf: Add missing argument in 'elf-segment'. 2015-03-30 15:21:11 +02:00
ftp-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
gexp.scm gexp: 'lowered-gexp-guile' now returns a <derivation-input>. 2019-07-15 10:01:05 +02:00
git-download.scm maint: Switch to Guile-JSON 3.x. 2019-07-25 00:16:41 +02:00
git.scm git: Add an exception printer for 'git-error'. 2019-02-11 23:23:28 +01:00
glob.scm glob: Add an extra glob pattern compilation stage. 2018-03-18 22:57:17 +01:00
gnu-maintenance.scm gnu-maintenance: Switch to ftp.mirrorservice.org for KDE updater. 2019-06-10 13:58:24 +02:00
gnupg.scm gnupg: Change default keyserver. 2018-09-25 18:45:50 +02:00
grafts.scm grafts: 'references-oracle' now takes a derivation input. 2019-07-02 18:33:51 +02:00
graph.scm Revert "graph: Provide access to the package record in the emit functions." 2017-08-24 23:55:51 +02:00
hg-download.scm download: Download a nar when a VCS checkout fails. 2017-10-19 23:21:49 +02:00
http-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
i18n.scm ui: Introduce (guix i18n). 2017-11-08 22:31:58 +01:00
inferior.scm inferior: Add 'read-repl-response'. 2019-07-04 18:05:02 +02:00
licenses.scm licenses: Add Historical Permission Notice and Disclaimer license 2019-06-20 18:24:49 +02:00
lint.scm lint: source: Stop as soon as a valid URL is found. 2019-07-20 01:32:18 +02:00
lzlib.scm lzlib: 'make-lzip-input-port' better handles end of decompression. 2019-06-01 15:26:30 +02:00
man-db.scm profiles: Use 'with-extensions'. 2018-06-01 15:21:28 +02:00
memoization.scm memoization: Add 'invalidate-memoization!. 2017-12-13 23:11:53 +01:00
modules.scm Remove traces of "GuixSD". 2019-03-13 23:12:43 +01:00
monad-repl.scm monad-repl: Close connection when leaving the monad REPL. 2016-01-13 17:43:21 +01:00
monads.scm monads, gexp: Prevent redefinition of syntax parameters. 2019-02-06 23:06:18 +01:00
nar.scm nar: Really lock store files. 2019-06-05 23:10:37 +02:00
packages.scm gexp: 'compiled-modules' loads modules before compiling them. 2019-04-04 17:47:02 +02:00
pki.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
profiles.scm profiles: Adjust packages->manifest pattern for inferior packages. 2019-07-03 12:03:07 +02:00
profiling.scm profiling: Add a "gc" profiling component. 2019-01-15 20:24:08 +01:00
progress.scm progress: Call 'time-difference' on times of the same type. 2019-06-24 23:10:13 +02:00
records.scm records: Support custom 'this' identifiers. 2019-03-30 11:08:39 +01:00
remote.scm remote: Make sure the user doesn't mess up with the REPL protocol. 2019-07-15 18:27:22 +02:00
repl.scm Add (guix repl). 2019-07-04 18:05:02 +02:00
scripts.scm scripts: GC hint suggests 'guix gc -d 1m'. 2019-04-10 17:09:47 +02:00
search-paths.scm search-paths: Add 'set-search-paths'. 2018-05-10 14:53:57 +02:00
self.scm maint: Switch to Guile-JSON 3.x. 2019-07-25 00:16:41 +02:00
serialization.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
sets.scm Add (guix sets). 2015-01-11 23:50:01 +01:00
ssh.scm ssh: Add 'identity' keyword to 'open-ssh-session'. 2019-07-06 02:09:58 -04:00
status.scm colors: Introduce a disjoint type and pre-compute ANSI escapes. 2019-04-11 18:18:13 +02:00
store.scm store: 'run-with-store' gracefully deals with #f store. 2019-07-05 00:51:17 +02:00
svn-download.scm guix: Add download-svn-to-store. 2017-06-15 17:03:14 +02:00
swh.scm maint: Switch to Guile-JSON 3.x. 2019-07-25 00:16:41 +02:00
tests.scm lzlib: Add 'make-lzip-input-port/compressed'. 2019-05-27 22:47:24 +02:00
ui.scm ui: 'warn-about-load-error' provides hints for unbound variables. 2019-07-20 01:32:17 +02:00
upstream.scm refresh: Update the source code URL. 2019-03-27 14:59:42 +01:00
utils.scm utils: canonical-newline-port: Fix handling of carriage return at buffer end. 2019-06-20 14:07:01 +02:00
workers.scm workers: Display backtrace in pre-unwind handler. 2017-11-17 10:47:56 +01:00
zlib.scm zlib: Fix race condition when closing gzip ports. 2017-11-19 23:09:01 +01:00