mbox series

[bug#67960,0/4] Improve the crate importer.

Message ID cover.1703195451.git.david.elsing@posteo.net
Headers show
Series Improve the crate importer. | expand

Message

David Elsing Dec. 21, 2023, 9:59 p.m. UTC
This patch series contains improvements to the crate importer.

The first patch fixes the memoization in crate-recursive-import.

The second patch allows for including the cargo-development-inputs also in
recursively imported crates by specifying --recursive-dev-dependencies, such
that the tests of all imported crates can be run.

The third patch removes the dependency of a test in tests/crate.scm on an
existing crate in gnu/packages/crates.io.

Sometimes, it can happen that a crate requires a dependency for which only a
yanked version exists, which is addressed in the fourth patch. Instead of
simply failing, I changed the behavior to also import yanked versions if no
non-yanked version exists. Then, they can be used anyway or be manually
patched out from the dependent packages. Their packages obtain a different
package name (including the full version) and a package property marking them
as yanked. The logic to decide which version to use naturally became more
complicated as a result.

David Elsing (4):
  gnu: import: Fix memoization in crate-recursive-import.
  import: crate: Optionally import dev-dependencies recursively.
  tests: Mock find-packages-by-name in crate importer test.
  guix: import: Optionally import necessary yanked crates.

 doc/guix.texi                 |   7 +
 guix/import/crate.scm         | 161 +++++++---
 guix/read-print.scm           |   1 +
 guix/scripts/import/crate.scm |  24 +-
 tests/crate.scm               | 576 +++++++++++++++++++++++++++++-----
 5 files changed, 653 insertions(+), 116 deletions(-)

Comments

Jaeme Sifat Jan. 2, 2024, 8:38 p.m. UTC | #1
I've used this to great effect when writing my crates and the test file 
passes. This should definitely be merged into master soon as this is a 
necessity for me when writing crate definitions.

Thanks for fixing the crate importer, it will be vital when trying to 
port things like `iced-0.10` and `nushell-0.88` into rust-team.


What do you think Efraim?

--

Jaeme
Efraim Flashner Jan. 9, 2024, 7:44 a.m. UTC | #2
On Tue, Jan 02, 2024 at 03:38:41PM -0500, Jaeme Sifat wrote:
> I've used this to great effect when writing my crates and the test file
> passes. This should definitely be merged into master soon as this is a
> necessity for me when writing crate definitions.
> 
> Thanks for fixing the crate importer, it will be vital when trying to port
> things like `iced-0.10` and `nushell-0.88` into rust-team.
> 
> 
> What do you think Efraim?

Looks good to me.  Patches pushed!