GNU bug report logs - #38408
[PATCH 0/3] (WIP) Semantic version aware recusive importer for crates

Previous Next

Package: guix-patches;

Reported by: Martin Becze <mjbecze <at> riseup.net>

Date: Thu, 28 Nov 2019 00:14:01 UTC

Severity: normal

Tags: patch

Merged with 44560, 44694

Fixed in version 44560

Done: Hartmut Goebel <h.goebel <at> crazy-compilers.com>

Bug is archived. No further changes may be made.

Full log


Message #305 received at 38408 <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: guix-patches <at> gnu.org,
	38408 <at> debbugs.gnu.org
Subject: [PATCH v17 0/8] New take continued: Semantic version aware recursive
Date: Mon, 16 Nov 2020 20:07:05 +0100
This is another revision of the patch set. Major changes compared to v16 are:

* When searching dependencies, prefer an existing package satisfying
  semver requirement over importing the highest version create.

  This saves adding a lot of new packages. As an example: When importing
  sequoia-openpgp <at> 0.20.0 this only imports 19 crates now, compared to 96
  using the former method.

* Package names are not trimmed to the first no-zero part.

* Test cases have been improved so packages have different versions. THis
  actually showed some bubs I solved (details see below).


Notable bug-fixes:

* Change selection of package version: use the highest version matching the
  required range instead of first one.
* Sort dependencies by name (was version)

Some details about the improved test cases

* Change crate names to avoid possible confusion
* Use different version (not 1.0.0 for all)
* Add some versions to some of the crates to test selecting the version.
* ids of create version entries are numbers.
* Document crate versions and dependencies used in tests
* Actually define some dependencies using caret semver.


Hartmut Goebel (3):
  import: utils: Trim patch version from names.
  import: crate: Trim version for names after left-most non-zero part.
  import: crate: Use existing package satisfying semver requirement.

Martin Becze (5):
  guix: self: Add guile-semver as a depenedency.
  import: utils: 'recursive-import' accepts an optional version
    parameter.
  import: crate: Use guile-semver to resolve module versions.
  import: crate: Memorize crate->guix-package.
  import: crate: Parameterized importing of dev dependencies.

 guix/import/cran.scm          |   8 +-
 guix/import/crate.scm         | 150 +++++++--
 guix/import/elpa.scm          |   6 +-
 guix/import/gem.scm           |   6 +-
 guix/import/opam.scm          |   8 +-
 guix/import/pypi.scm          |   8 +-
 guix/import/stackage.scm      |   5 +-
 guix/import/utils.scm         |  84 +++--
 guix/scripts/import/cran.scm  |   5 +-
 guix/scripts/import/crate.scm |  13 +-
 guix/scripts/import/elpa.scm  |   4 +-
 guix/self.scm                 |   8 +-
 tests/crate.scm               | 581 +++++++++++++++++++++++-----------
 tests/elpa.scm                |   3 +-
 tests/import-utils.scm        |   8 +-
 15 files changed, 608 insertions(+), 289 deletions(-)

-- 
2.21.3





This bug report was last modified 4 years and 159 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.