GNU bug report logs - #67906
[PATCH] guix: import: composer: Implement recursive package refresh.

Previous Next

Package: guix-patches;

Reported by: Nicolas Graves <ngraves <at> ngraves.fr>

Date: Tue, 19 Dec 2023 16:55:02 UTC

Severity: normal

Tags: patch

Done: Nicolas Graves <ngraves <at> ngraves.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 67906 in the body.
You can then email your comments to 67906 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#67906; Package guix-patches. (Tue, 19 Dec 2023 16:55:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nicolas Graves <ngraves <at> ngraves.fr>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 19 Dec 2023 16:55:02 GMT) Full text and rfc822 format available.

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

From: Nicolas Graves <ngraves <at> ngraves.fr>
To: guix-patches <at> gnu.org
Cc: ludo <at> gnu.org, ngraves <at> ngraves.fr
Subject: [PATCH] guix: import: composer: Implement recursive package refresh.
Date: Tue, 19 Dec 2023 17:53:28 +0100
* guix/import/composer.scm
 (composer-fetch): Replace reduce by fold to correct version selection
 logic.
 (latest-release): Implement recursive package refresh. Rename to
 import-release.
 (import-release): New function, formerly known as latest-release.
---
 guix/import/composer.scm | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/guix/import/composer.scm b/guix/import/composer.scm
index b23af1b91f..26229e3ad0 100644
--- a/guix/import/composer.scm
+++ b/guix/import/composer.scm
@@ -113,7 +113,7 @@ (define* (composer-fetch name #:key (version #f))
          (if version
              (assoc-ref packages version)
              (cdr
-              (reduce
+              (fold
                (lambda (new cur-max)
                  (match new
                    (((? valid-version? version) . tail)
@@ -243,8 +243,8 @@ (define (php-package? package)
    (eq? (package-build-system package) composer-build-system)
    (string-prefix? "php-" (package-name package))))
 
-(define* (latest-release package #:key (version #f))
-  "Return an <upstream-source> for the latest release of PACKAGE."
+(define* (import-release package #:key (version #f))
+  "Return an <upstream-source> for the VERSION or latest release of PACKAGE."
   (let* ((php-name (guix-package->composer-name package))
          (composer-package (composer-fetch php-name #:version version)))
     (match composer-package
@@ -254,18 +254,34 @@ (define* (latest-release package #:key (version #f))
                php-name)
        #f)
       (_
-       (upstream-source
-        (package (composer-package-name composer-package))
-        (version (composer-package-version composer-package))
-        (urls (list (composer-source-url
-                     (composer-package-source composer-package)))))))))
+       (let* ((guix-name (composer-package-name composer-package))
+              (inputs
+               (append
+                (map (lambda (dep)
+                       (upstream-input
+                        (name php-name)
+                        (downstream-name guix-name)
+                        (type 'regular)))
+                     (composer-package-require composer-package))
+                (map (lambda (dep)
+                       (upstream-input
+                        (name php-name)
+                        (downstream-name guix-name)
+                        (type 'native)))
+                     (composer-package-dev-require composer-package)))))
+         (upstream-source
+          (package guix-name)
+          (version (composer-package-version composer-package))
+          (urls (list (composer-source-url
+                       (composer-package-source composer-package))))
+          (inputs inputs)))))))
 
 (define %composer-updater
   (upstream-updater
    (name 'composer)
    (description "Updater for Composer packages")
    (pred php-package?)
-   (import latest-release)))
+   (import import-release)))
 
 (define* (composer-recursive-import package-name #:optional version)
   (recursive-import package-name
-- 
2.41.0





bug closed, send any further explanations to 67906 <at> debbugs.gnu.org and Nicolas Graves <ngraves <at> ngraves.fr> Request was from Nicolas Graves <ngraves <at> ngraves.fr> to control <at> debbugs.gnu.org. (Sat, 06 Apr 2024 01:50:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 04 May 2024 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified today.

Previous Next


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