guix-play/guix/import
David Elsing b26926189e
guix: import: Optionally import necessary yanked crates.
* doc/guix.texi (Invoking guix import): Mention '--allow-yanked'.
* guix/import/crate.scm (make-crate-sexp): Add yanked? argument. For
yanked packages, use the full version suffixed by "-yanked" for
generated variable names and add a comment and package property.
(crate->guix-package): Add allow-yanked? argument and if it is set to #t,
allow importing yanked crates if no other version matching the
requirements exists.
[find-package-version]: Packages previously marked as yanked are only
included if allow-yanked? is #t and then take the lowest priority.
[find-crate-version]: If allow-yanked? is #t, also consider yanked
versions with the lowest priority.
[dependency-name+version]: Rename to ...
[dependency-name+version+yanked] ...this. Honor allow-yanked? and choose
between an existing package and an upstream package.  Exit with an error
message if no version fulfilling the requirement is found.
[version*]: Exit with an error message if the crate version is not found.
(cargo-recursive-import): Add allow-yanked? argument.
* guix/read-print.scm: Export <comment>.
* guix/scripts/import/crate.scm: Add "--allow-yanked".
* tests/crate.scm: Add test 'crate-recursive-import-only-yanked-available'.
[sort-map-dependencies]: Adjust accordingly.
[remove-yanked-info]: New variable.
Adjust test 'crate-recursive-import-honors-existing-packages'.
(test-bar-dependencies): Add yanked dev-dependencies.
(test-leaf-bob-crate): Add yanked versions.
(rust-leaf-bob-3.0.2-yanked): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I175d89b39774e6b57dcd1f05bf68718d23866bb7
2024-01-09 09:38:38 +02:00
..
cabal.scm guix: import: Fix parsing Cabal files that import many stanzas 2023-12-03 16:15:29 +01:00
composer.scm guix: import: Add composer importer. 2023-12-18 23:16:28 +01:00
cpan.scm import: cpan: Updater provides input list. 2023-05-31 23:25:25 +02:00
cran.scm import/cran: Restore format-inputs. 2024-01-01 14:35:15 +01:00
crate.scm guix: import: Optionally import necessary yanked crates. 2024-01-09 09:38:38 +02:00
egg.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
elm.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
elpa.scm tests: Ensure 'elpa' test does not access the network. 2023-06-09 14:19:14 +02:00
gem.scm import: gem: Updater provides input list. 2023-05-31 23:25:26 +02:00
git.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
github.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
gnome.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
gnu.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
go.scm guix: import: Report go version for go importer. 2023-12-16 18:05:58 +02:00
hackage.scm guix: import: hackage: Fix crash on recursive import 2023-12-03 09:11:29 +01:00
hexpm.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
json.scm import: json: Add #:timeout to 'json-fetch'. 2023-05-31 23:25:24 +02:00
kde.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
launchpad.scm import: launchpad: Allow updating to a specific version. 2022-12-26 17:38:06 +01:00
minetest.scm import: Properly report "no specific version" errors. 2023-04-08 22:54:53 +02:00
opam.scm guix: import: opam: Handle list of licenses. 2023-10-17 14:52:06 +02:00
print.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
pypi.scm upstream: Replace 'input-changes' field by 'inputs'. 2023-05-31 23:25:24 +02:00
stackage.scm guix: import: stackage: Fix crash on recursive import 2023-12-03 09:11:29 +01:00
test.scm upstream: 'update-package-source' edits input fields. 2023-05-31 23:25:25 +02:00
texlive.scm guix: import: texlive importer handles Ruby linked scripts. 2023-08-16 11:47:09 +02:00
utils.scm import-utils: Do not include punctuation when wrapping in @code{}. 2023-08-28 19:08:38 +02:00