Age | Commit message (Expand) | Author |
2024-02-12 | swh: Fix docstring of ‘lookup-directory’....* guix/swh.scm (lookup-directory): Fix docstring.
Change-Id: Ia1fd9b2bc9184364cebbd30ee84c9fdea4ba897c
| Ludovic Courtès |
2024-02-12 | swh: Add ‘swh-download-directory-by-nar-hash’....This allows us to take advantage of content addressing by giving SWH the
expected nar hash.
* guix/swh.scm (swh-download-directory-by-nar-hash): New procedure.
Change-Id: I0494ee15a3cde390a22552de7c2246e0314ba7b5
| Ludovic Courtès |
2024-02-12 | swh: Add bindings for the “ExtID” API....This interface was deployed at archive.softwareheritage.org a few days
ago. Our main use case will be looking up directories by “nar-sha256”
hashes.
* guix/swh.scm (<external-id>): New JSON-mapped record type.
(lookup-external-id, lookup-directory-by-nar-hash): New procedures.
* tests/swh.scm (%external-id): New variable.
("lookup-directory-by-nar-hash"): New test.
Change-Id: Ib671c7798aeb6f8132ac78f2b06b9285da8e7bd5
| Ludovic Courtès |
2024-02-12 | swh: ‘vault-fetch’ follows redirects....Today, URLs like
https://archive.softwareheritage.org/api/1/vault/flat/swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153/raw/
redirect to https://swhvaultstorage.blob.core.windows.net/…. This
change fixes ‘vault-fetch’ to follow these.
Fixes <https://issues.guix.gnu.org/69058>.
* guix/swh.scm (http-get/follow): New procedure.
(vault-fetch): Use it instead of ‘http-get*’.
Change-Id: Id6b9585a9ce6699a2274b99c9a6d4edda1018b02
| Ludovic Courtès |
2021-10-15 | swh: Allows token from Software Heritage authentication service....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>
| zimoun |
2021-09-18 | swh: Support downloads of bare Git repositories....* 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'.
| Ludovic Courtès |
2021-09-10 | swh: 'swh-download' reports revision lookup failures....* guix/swh.scm (swh-download): Log lookup failures.
| Ludovic Courtès |
2021-09-10 | swh: Adjust to new vault API....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.
| Ludovic Courtès |
2021-09-09 | swh: Adjust <vault-reply> to latest API changes....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.
| Ludovic Courtès |
2021-09-06 | swh: Add 'lookup-snapshot-branch'....* guix/swh.scm (<snapshot>)[id]: New field.
(snapshot-url, lookup-snapshot-branch): New procedures.
| Ludovic Courtès |
2021-09-06 | swh: <revisions> accept null 'date' fields....* guix/swh.scm (maybe-null): New procedure.
(<revision>)[date]: Use it.
| Ludovic Courtès |
2021-09-06 | swh: Export <snapshot> accessors....* guix/swh.scm: Export <snapshot> accessors.
| Ludovic Courtès |
2021-06-14 | swh: Support lookup of Hg tags....* guix/swh.scm (lookup-origin-revision): Support lookup of Hg tags, not just
Git tags.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Xinglu Chen |
2021-06-01 | maint: Require Guile 3.0....* 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.
| Ludovic Courtès |
2021-05-14 | swh: 'lookup-origin-revision' ignores partial visits....* guix/swh.scm (lookup-origin-revision): Filter out visits with a status
different from 'full.
| Ludovic Courtès |
2021-05-05 | swh: Adjust for compatibility with Guile 2.2's (web client)....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.
| Ludovic Courtès |
2021-04-27 | swh: Add a directory download procedure....* guix/swh.scm (swh-directory-download): New procedure (with
implementation extracted from 'swh-download').
(swh-download): Use it to download the revision directory.
| Timothy Sample |
2021-01-21 | import, swh: Adjust to Guile-JSON 4.5.x unspecified value handling....* 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.
| Ludovic Courtès |
2020-09-08 | Remove (guix json) and require Guile-JSON 4.3.0+....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.
| Ludovic Courtès |
2020-07-10 | swh: Allow callers to disable X.509 certificate verification....* 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.
| Ludovic Courtès |
2020-06-30 | swh: Adjust for Guile-JSON 4.0 null handling....* guix/swh.scm (string*): Add clause for 'null.
| Ludovic Courtès |
2020-02-23 | swh: Handle absolute URLs being returned by the API....* 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.
| Jakub Kądziołka |
2020-02-11 | swh: Remove 'id' field from <origin>....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.
| Ludovic Courtès |
2019-12-26 | guix: swh: Fix again example URI in comment for <origin>....This is a follow up to
6afea7489b76c8db58d4f389fdbedc7c2b8992bd
* guix/swh.scm(<origin>): Write 'https' instead of 'ttps' for the URL.
| Björn Höfling |
2019-12-18 | guix: swh: Fix example URI in comment for <origin>....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.
| Björn Höfling |
2019-12-17 | swh: Fix API call for getting origin....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.
| Björn Höfling |
2019-09-04 | Add (guix json)....* guix/swh.scm (define-json-reader, define-json-mapping): Move to...
* guix/json.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
| Ludovic Courtès |
2019-09-02 | swh: Make 'commit-id?' public....* guix/swh.scm (commit-id?): Make public.
| Ludovic Courtès |
2019-09-02 | swh: Add hooks for rate limiting handling....* 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.
| Ludovic Courtès |
2019-08-28 | swh: Correctly handle visits without a snapshot....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.
| Ludovic Courtès |
2019-08-28 | swh: 'swh-download' prints debugging info....* 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.
| Ludovic Courtès |
2019-08-23 | swh: 'swh-download' checks return value of 'vault-fetch'....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'.
| Ludovic Courtès |
2019-07-25 | 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.
| Ludovic Courtès |
2019-07-22 | swh: Add basic tests....* guix/swh.scm (%swh-base-url): Turn into a parameter and export it.
* tests/swh.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
| Ludovic Courtès |
2018-11-27 | swh: Export 'save-origin' and related bindings....* guix/swh.scm: Export bindings related to 'save-origin'.
| Ludovic Courtès |
2018-11-26 | Add (guix swh)....* guix/swh.scm: New file.
* Makefile.am (MODULES): Add it.
| Ludovic Courtès |