Hello Guix, I rewrote the recursive-import-semver procedure to use the new topological-sort procedure. I also return a list instead of a stream like (recursive-import). So to recap (recursive-import-semver) imports dependency using semantic version to find the correct version of a dependency. The crate importer has also be converted to use recursive-import-semver. It will now use recursive-import-semver when "guix import crate -r" is used. You can also specify the range that you would like to import such as guix import crate -r rand@^0.6". Here is an example of the format that it will produce. (define-public rust-bincode-1.2.1 (package (name "rust-bincode") (version "1.2.1") (source (origin (method url-fetch) (uri (crate-uri "bincode" version)) (file-name (string-append name "-" version ".crate")) (sha256 (base32 "1gvxm3n67xv1874fwxmnlircdlphlk1hcw75ykrrnw9l2nky4lsp")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t #:cargo-inputs (("rust-byteorder-1.3.2" ,rust-byteorder-1.3.2) ("rust-serde-1.0.103" ,rust-serde-1.0.103)))) (home-page "https://github.com/servo/bincode") (synopsis "A binary serialization / deserialization strategy that uses Serde for transforming structs into bytes and vice versa!") (description "This package provides a binary serialization / deserialization strategy that uses Serde for transforming structs into bytes and vice versa!") (license license:expat))) -Martin