summary refs log tree commit diff
path: root/guix/swh.scm
AgeCommit message (Collapse)Author
2021-10-15swh: Allows token from Software Heritage authentication service.zimoun
The token is provided using the environment variable GUIX_SWH_TOKEN. * guix/swh.scm (%swh-token): New variable. (call): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-18swh: Support downloads of bare Git repositories.Ludovic Courtès
* guix/swh.scm (swh-download-archive): New procedure. (swh-download-directory): Rewrite in terms of 'swh-download-archive'. (swh-download): Add #:archive-type and honor it. Use 'swh-download-archive' instead of 'swh-download-directory'.
2021-09-10swh: 'swh-download' reports revision lookup failures.Ludovic Courtès
* guix/swh.scm (swh-download): Log lookup failures.
2021-09-10swh: Adjust to new vault API.Ludovic Courtès
Previously the path to query the vault or request cooking of a directory was /api/1/vault/directory/ID. It is now deprecated in favor if /api/1/vault/flat/SWHID. This commit adjusts code accordingly and also prepares for 'git-bare' support. * guix/swh.scm (vault-url): New procedure. (query-vault, request-cooking): Make 'kind' optional, and add #:archive-type. Use 'vault-url'. (vault-fetch): Make 'kind' optional and add #:archive-type. Adjust 'query-vault' and 'request-cooking' calls accordingly.
2021-09-09swh: Adjust <vault-reply> to latest API changes.Ludovic Courtès
Fixes uses of 'swh-download' as reported at <https://lists.gnu.org/archive/html/guix-devel/2021-09/msg00115.html>. Reported by zimoun. * guix/swh.scm (<vault-reply>)[object-id, object-type]: Remove. These two fields are no longer provided in JSON replies. [swhid]: New field.
2021-09-06swh: Add 'lookup-snapshot-branch'.Ludovic Courtès
* guix/swh.scm (<snapshot>)[id]: New field. (snapshot-url, lookup-snapshot-branch): New procedures.
2021-09-06swh: <revisions> accept null 'date' fields.Ludovic Courtès
* guix/swh.scm (maybe-null): New procedure. (<revision>)[date]: Use it.
2021-09-06swh: Export <snapshot> accessors.Ludovic Courtès
* guix/swh.scm: Export <snapshot> accessors.
2021-06-14swh: Support lookup of Hg tags.Xinglu Chen
* guix/swh.scm (lookup-origin-revision): Support lookup of Hg tags, not just Git tags. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-06-01maint: Require Guile 3.0.Ludovic Courtès
* configure.ac: Require Guile 3.0. * doc/guix.texi (Requirements): Adjust accordingly. * gnu/packages/package-management.scm (guile2.2-guix): Remove. * guix/lint.scm (exception-with-kind-and-args?): Remove 'cond-expand'. * guix/scripts/deploy.scm (deploy-machine*): Likewise. * guix/store.scm (call-with-store): Likewise. * guix/swh.scm (http-get*, http-post*): Likewise. * guix/ui.scm (without-compiler-optimizations, guard*) (call-with-error-handling): Likewise.
2021-05-14swh: 'lookup-origin-revision' ignores partial visits.Ludovic Courtès
* guix/swh.scm (lookup-origin-revision): Filter out visits with a status different from 'full.
2021-05-05swh: Adjust for compatibility with Guile 2.2's (web client).Ludovic Courtès
Guile <= 2.2.7 did not support #:verify-certificate? so work around it. * guix/swh.scm (http-get*, http-post*) [! guile-3]: Add variant for Guile 2.2.
2021-04-27swh: Add a directory download procedure.Timothy Sample
* guix/swh.scm (swh-directory-download): New procedure (with implementation extracted from 'swh-download'). (swh-download): Use it to download the revision directory.
2021-01-21import, swh: Adjust to Guile-JSON 4.5.x unspecified value handling.Ludovic Courtès
* guix/import/cpan.scm (<cpan-release>)[home-page]: Add 'unspecified?' case. * guix/import/gem.scm (<gem>)[licenses]: Likewise. (json->gem-dependency-list): Likewise. * guix/swh.scm (<directory-entry>)[checksums]: Likewise.
2020-09-08Remove (guix json) and require Guile-JSON 4.3.0+.Ludovic Courtès
This is a followup to 4071879c86d059ee087c8986915ea72b8c742b72. * guix/json.scm: Remove. * Makefile.am (MODULES): Adjust accordingly. * m4/guix.m4 (GUIX_CHECK_GUILE_JSON): Check for 'define-json-mapping'. * doc/guix.texi (Requirements): Require Guile-JSON 4.3.0+. * guix/ci.scm, guix/cve.scm, guix/import/cpan.scm, guix/import/crate.scm, guix/swh.scm: Remove (guix json) import. * guix/import/gem.scm, guix/import/pypi.scm: Likewise, and import (json). * guix/self.scm (specification->package): Switch to GUILE-JSON-4. * guix/git-download.scm (git-fetch): Likewise.
2020-07-10swh: Allow callers to disable X.509 certificate verification.Ludovic Courtès
* guix/swh.scm (%verify-swh-certificate?): New parameter. (http-get*, http-post*): New procedures. (request-rate-limit-reached?): Use 'http-post*' instead of 'http-post'. (update-rate-limit-reset-time!): Likewise. (request-cooking): Likewise. (call): Method defaults to 'http-get*' instead of 'http-get'. Pass #:verify-certificate? to METHOD. (vault-fetch): Likewise.
2020-06-30swh: Adjust for Guile-JSON 4.0 null handling.Ludovic Courtès
* guix/swh.scm (string*): Add clause for 'null.
2020-02-23swh: Handle absolute URLs being returned by the API.Jakub Kądziołka
* guix/swh.scm (swh-url): Don't prepend (%swh-base-url) if a domain is already present. This fixes the "guix lint: warning: while connecting to Software Heritage: host lookup failure: Name or service not known" error message.
2020-02-11swh: Remove 'id' field from <origin>.Ludovic Courtès
The "id" field has been removed upstream: https://sympa.inria.fr/sympa/arc/swh-devel/2020-02/msg00005.html * guix/swh.scm (<origin>)[id]: Remove.
2019-12-26guix: swh: Fix again example URI in comment for <origin>.Björn Höfling
This is a follow up to 6afea7489b76c8db58d4f389fdbedc7c2b8992bd * guix/swh.scm(<origin>): Write 'https' instead of 'ttps' for the URL.
2019-12-18guix: swh: Fix example URI in comment for <origin>.Björn Höfling
This is a one-character follow-up to 356a79becc4061d158c68718ad169abac1ab672f Reported by Jonathan Brielmaier <jonathan.brielmaier@web.de>. * guix/swh.scm(<origin>): Remove a slash from example URI witin a comment.
2019-12-17swh: Fix API call for getting origin.Björn Höfling
When using the archival linter, git origins already in the archive where not recognized due to an API change and where repeatedly asked for archival. This is fixed here. * guix/swh.scm (lookup-origin): Fix API URI for getting origin. (<origin>): Fix comment with API URI example.
2019-09-04Add (guix json).Ludovic Courtès
* guix/swh.scm (define-json-reader, define-json-mapping): Move to... * guix/json.scm: ... here. New file. * Makefile.am (MODULES): Add it.
2019-09-02swh: Make 'commit-id?' public.Ludovic Courtès
* guix/swh.scm (commit-id?): Make public.
2019-09-02swh: Add hooks for rate limiting handling.Ludovic Courtès
* guix/swh.scm (%allow-request?, %save-rate-limit-reset-time) (%general-rate-limit-reset-time): New variables. (request-rate-limit-reached?, update-rate-limit-reset-time!): New procedures. (call): Call '%allow-request?'. Change 'swh-error' protocol to pass METHOD in addition to URL. * tests/swh.scm ("rate limit reached") ("%allow-request? and request-rate-limit-reached?"): New tests.
2019-08-28swh: Correctly handle visits without a snapshot.Ludovic Courtès
As discussed at <https://sympa.inria.fr/sympa/arc/swh-devel/2019-08/msg00016.html>. * guix/swh.scm (string*): New procedure. (<visit>)[snapshot-url]: Pass 'string*' as the conversion procedure. [status]: Pass 'string->symbol' as the conversion procedure. (visit-snapshot): Return #f when 'visit-snapshot-url' returns #f. (lookup-origin-revision): Filter to visits for which 'visit-snapshot-url' is true.
2019-08-28swh: 'swh-download' prints debugging info.Ludovic Courtès
* guix/git-download.scm (git-fetch): Print a message before calling 'swh-download'. * guix/swh.scm (swh-download): Add #:log-port. Write debugging messages to LOG-PORT.
2019-08-23swh: 'swh-download' checks return value of 'vault-fetch'.Ludovic Courtès
Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de> in <https://bugs.gnu.org/36931>. * guix/swh.scm (swh-download): Check whether 'vault-fetch' return false before calling 'dump-port'.
2019-07-25maint: Switch to Guile-JSON 3.x.Ludovic Courtès
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-22swh: Add basic tests.Ludovic Courtès
* guix/swh.scm (%swh-base-url): Turn into a parameter and export it. * tests/swh.scm: New file. * Makefile.am (SCM_TESTS): Add it.
2018-11-27swh: Export 'save-origin' and related bindings.Ludovic Courtès
* guix/swh.scm: Export bindings related to 'save-origin'.
2018-11-26Add (guix swh).Ludovic Courtès
* guix/swh.scm: New file. * Makefile.am (MODULES): Add it.