emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#71631: closed ([PATCH] swh: Specify 'extid_version' when looking up


From: GNU bug Tracking System
Subject: bug#71631: closed ([PATCH] swh: Specify 'extid_version' when looking up by external ID.)
Date: Wed, 26 Jun 2024 22:06:02 +0000

Your message dated Thu, 27 Jun 2024 00:02:54 +0200
with message-id <87o77n9xbl.fsf@gnu.org>
and subject line Re: [bug#71631] [PATCH] swh: Specify 'extid_version' when 
looking up by external ID.
has caused the debbugs.gnu.org bug report #71631,
regarding [PATCH] swh: Specify 'extid_version' when looking up by external ID.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
71631: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71631
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH] swh: Specify 'extid_version' when looking up by external ID. Date: Tue, 18 Jun 2024 16:02:51 +0200
Reported in <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>.

* guix/swh.scm (swh-url): Don't redirect when URL contains 'extid_version'.
(lookup-external-id): Specify 'extid_version' avoiding SWH's bug from past
version.

Change-Id: Iea2a5256e0612dae95567907bb11edb92a50df73
---
 guix/swh.scm | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

Hi,

Without the patch:

    $ guix repl
    scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
    scheme@(guix-user)> (lookup-directory-by-nar-hash
                          (content-hash-value (origin-hash (package-source 
guile-wisp))) 'sha256)
    $1 = "swh:1:dir:218d95849f10fc0691d7dfa80999ce5061e654ef"

This is incorrect.  As explained in:

    https://gitlab.softwareheritage.org/swh/meta/-/issues/5093

The mismatch comes from something unexpected on SWH side.  That had been
corrected and the way to access to the fix is to update the version; hence the
patch.

    $ ./pre-inst-env guix repl
    scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
    scheme@(guix-user)> (lookup-directory-by-nar-hash
                          (content-hash-value (origin-hash (package-source 
guile-wisp))) 'sha256)
    $1 = "swh:1:dir:1f35a460673e2c8ccf948b8c18cb8c18d2ec24fe"

WDYT?

Cheers,
simon


diff --git a/guix/swh.scm b/guix/swh.scm
index f602cd89d1..e5824976d4 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -166,9 +166,15 @@ (define (swh-url path . rest)
     (string-append root (string-join rest "/" 'prefix)))
 
   ;; Ensure there's a trailing slash or we get a redirect.
-  (if (string-suffix? "/" url)
-      url
-      (string-append url "/")))
+  (cond
+   ((string-suffix? "/" url)
+    url)
+   ;; Special case; don't redirect
+   ;; <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>
+   ((string-contains url "extid_version")
+    url)
+   (else
+    (string-append url "/"))))
 
 ;; XXX: Work around a bug in Guile 3.0.2 where #:verify-certificate? would
 ;; be ignored (<https://bugs.gnu.org/40486>).
@@ -461,7 +467,9 @@ (define (lookup-external-id type id)
 (currently one of: \"bzr-nodeid\", \"hg-nodeid\", \"nar-sha256\",
 \"checksum-sha512\")."
   (call (swh-url "/api/1/extid" type
-                 (string-append "hex:" (bytevector->base16-string id)))
+                 (string-append "hex:" (bytevector->base16-string id)
+                                "/?extid_version=1"
+                                ))
         json->external-id))
 
 (define* (lookup-directory-by-nar-hash hash #:optional (algorithm 'sha256))

base-commit: bc8a41f4a8d9f1f0525d7bc97c67ed3c8aea3111
-- 
2.41.0




--- End Message ---
--- Begin Message --- Subject: Re: [bug#71631] [PATCH] swh: Specify 'extid_version' when looking up by external ID. Date: Thu, 27 Jun 2024 00:02:54 +0200 User-agent: Gnus/5.13 (Gnus v5.13)
Hi,

Simon Tournier <zimon.toutoune@gmail.com> skribis:

> Reported in <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>.
>
> * guix/swh.scm (swh-url): Don't redirect when URL contains 'extid_version'.
> (lookup-external-id): Specify 'extid_version' avoiding SWH's bug from past
> version.
>
> Change-Id: Iea2a5256e0612dae95567907bb11edb92a50df73
> ---
>  guix/swh.scm | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
>
> Hi,
>
> Without the patch:
>
>     $ guix repl
>     scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
>     scheme@(guix-user)> (lookup-directory-by-nar-hash
>                           (content-hash-value (origin-hash (package-source 
> guile-wisp))) 'sha256)
>     $1 = "swh:1:dir:218d95849f10fc0691d7dfa80999ce5061e654ef"
>
> This is incorrect.  As explained in:
>
>     https://gitlab.softwareheritage.org/swh/meta/-/issues/5093
>
> The mismatch comes from something unexpected on SWH side.  That had been
> corrected and the way to access to the fix is to update the version; hence the
> patch.
>
>     $ ./pre-inst-env guix repl
>     scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
>     scheme@(guix-user)> (lookup-directory-by-nar-hash
>                           (content-hash-value (origin-hash (package-source 
> guile-wisp))) 'sha256)
>     $1 = "swh:1:dir:1f35a460673e2c8ccf948b8c18cb8c18d2ec24fe"

Woow.

I pushed it as bd908af0c619cb1b74afeeb07839d7af08de9d91 with a small
modification: ‘swh-url’ checks for parameters (the “?param=value” bit)
rather than “extid_version” specifically.  I also moved the link to the
issue to ‘lookup-external-id’.

Thank you!

Ludo’.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]