import: crate: Separate crates.io API from actual conversion.
authorLudovic Courtès <ludo@gnu.org>
Sun, 1 Sep 2019 14:20:36 +0000 (16:20 +0200)
committerLudovic Courtès <ludo@gnu.org>
Wed, 4 Sep 2019 11:02:27 +0000 (13:02 +0200)
commit2791870d09afd247a011bc8cb6cf88661729bd98
treed069abca3e7c28fcd47bad911fb5d399476833c7
parenta85a74ce6c9ff36ccd6ef50216ba8515723f3a62
import: crate: Separate crates.io API from actual conversion.

This provides a clean separation between bindings to the
https://crates.io/api/v1 API and actual conversion to Guix package
sexps.

As a side-effect, it fixes things like "guix import blake2-rfc", "guix
refresh -t crates", etc.

* guix/import/crate.scm (<crate>, <crate-version>, <crate-dependency>):
New record types.
(lookup-crate, crate-version-dependencies): New procedures.
(crate-fetch): Remove.
(crate->guix-package): Rewrite to use the new API.
(latest-release): Likewise.
* guix/build-system/cargo.scm (%crate-base-url): New variable.
* tests/crate.scm (test-crate): Update accordingly.

fixlet
guix/build-system/cargo.scm
guix/import/crate.scm
tests/crate.scm