From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 06 11:32:30 2019 Received: (at submit) by debbugs.gnu.org; 6 Sep 2019 15:32:31 +0000 Received: from localhost ([127.0.0.1]:37275 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6GDu-0003dL-M3 for submit@debbugs.gnu.org; Fri, 06 Sep 2019 11:32:30 -0400 Received: from lists.gnu.org ([209.51.188.17]:38655) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6GDs-0003dD-Da for submit@debbugs.gnu.org; Fri, 06 Sep 2019 11:32:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44848) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i6GDq-00019a-LY for guix-patches@gnu.org; Fri, 06 Sep 2019 11:32:27 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i6GDp-00051O-4l for guix-patches@gnu.org; Fri, 06 Sep 2019 11:32:26 -0400 Received: from mx1.riseup.net ([198.252.153.129]:43574) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i6GDo-000503-PO for guix-patches@gnu.org; Fri, 06 Sep 2019 11:32:25 -0400 Received: from capuchin.riseup.net (capuchin-pn.riseup.net [10.0.1.176]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.riseup.net (Postfix) with ESMTPS id 714CA1A0EB0 for ; Fri, 6 Sep 2019 08:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1567783942; bh=i2tLPxUvArbaU1UWIUe6DdPLWgHJ6biVdDIxk8z0yjA=; h=From:To:Cc:Subject:Date:From; b=T4GXzP1A6Eatj4x32BLjUpG5CPqdA2UwzJMYPFnooe2S+Mn22mBHxlYzrqFJJOxG3 lTSMTwzF5Jl5IAZKqueQmY2T3j5a8Khph8MA08XDVFjWsGgxfs8lxhlwAxx7eD0HlD D/NkkTQ2b1qKmiEdpSWGW+S/3x1+yzQdvj8LjX34= X-Riseup-User-ID: 92D98CB4EEE5E781F75E09F6A1B9B3E72A0BB6130D094BABBBAE6B507A40BD6E Received: from [127.0.0.1] (localhost [127.0.0.1]) by capuchin.riseup.net (Postfix) with ESMTPSA id AF808120811; Fri, 6 Sep 2019 08:32:21 -0700 (PDT) From: Martin Becze To: guix-patches@gnu.org Subject: [PATCH 1/2] adds the capability of importing a specified version to the crate importer Date: Fri, 6 Sep 2019 11:32:10 -0400 Message-Id: <20190906153211.8613-1-mjbecze@riseup.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 198.252.153.129 X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: Martin Becze X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --- guix/import/crate.scm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/guix/import/crate.scm b/guix/import/crate.scm index f6057dbf8b..3266ebdfec 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2016 David Craven ;;; Copyright =C2=A9 2019 Ludovic Court=C3=A8s +;;; Copyright =C2=A9 2019 Martin Becze ;;; ;;; This file is part of GNU Guix. ;;; @@ -181,8 +182,8 @@ and LICENSE." ;; This regexp matches that. (make-regexp "^(.*) OR (.*)$")) =20 -(define (crate->guix-package crate-name) - "Fetch the metadata for CRATE-NAME from crates.io, and return the +(define (crate->guix-package crate-name@version) + "Fetch the metadata for CRATE-NAME@VERSION from crates.io, and return = the `package' s-expression corresponding to that package, or #f on failure." (define (string->license string) (match (regexp-exec %dual-license-rx string) @@ -193,13 +194,29 @@ and LICENSE." (define (normal-dependency? dependency) (eq? (crate-dependency-kind dependency) 'normal)) =20 + (define crate-name-version-list + (let ((lnv (string-split crate-name@version #\@))) + (if (=3D 1 (length lnv)) + (append lnv '(#f)) + lnv))) + + (define crate-name + (car crate-name-version-list)) + + (define crate (lookup-crate crate-name)) =20 + (define crate-version-string + (let ((version (cadr crate-name-version-list))) + (if version + version + (crate-latest-version crate)))) + (and crate (let* ((version (find (lambda (version) (string=3D? (crate-version-number = version) - (crate-latest-version cr= ate))) + crate-version-string)) (crate-versions crate))) (dependencies (crate-version-dependencies version)) (dep-crates (filter normal-dependency? dependencies)) --=20 2.23.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 08 08:27:58 2019 Received: (at 37322) by debbugs.gnu.org; 8 Sep 2019 12:27:58 +0000 Received: from localhost ([127.0.0.1]:38492 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6wIQ-0003Nd-2L for submit@debbugs.gnu.org; Sun, 08 Sep 2019 08:27:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:32783) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6wIO-0003NQ-L9 for 37322@debbugs.gnu.org; Sun, 08 Sep 2019 08:27:57 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46247) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1i6wIJ-0005LM-Fk; Sun, 08 Sep 2019 08:27:51 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=44276 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1i6wII-0004Vr-Fo; Sun, 08 Sep 2019 08:27:51 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Martin Becze Subject: Re: [bug#37322] [PATCH 1/2] adds the capability of importing a specified version to the crate importer References: <20190906153211.8613-1-mjbecze@riseup.net> Date: Sun, 08 Sep 2019 14:27:48 +0200 In-Reply-To: <20190906153211.8613-1-mjbecze@riseup.net> (Martin Becze's message of "Fri, 6 Sep 2019 11:32:10 -0400") Message-ID: <877e6j9dmj.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 37322 Cc: 37322@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello Martin, So the goal is to allow users to run =E2=80=9Cguix import rust-foo@1.2.3=E2= =80=9D, right? That=E2=80=99s a good idea. Martin Becze skribis: > diff --git a/guix/import/crate.scm b/guix/import/crate.scm > index f6057dbf8b..3266ebdfec 100644 > --- a/guix/import/crate.scm > +++ b/guix/import/crate.scm > @@ -1,6 +1,7 @@ > ;;; GNU Guix --- Functional package management for GNU > ;;; Copyright =C2=A9 2016 David Craven > ;;; Copyright =C2=A9 2019 Ludovic Court=C3=A8s > +;;; Copyright =C2=A9 2019 Martin Becze > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -181,8 +182,8 @@ and LICENSE." > ;; This regexp matches that. > (make-regexp "^(.*) OR (.*)$")) >=20=20 > -(define (crate->guix-package crate-name) > - "Fetch the metadata for CRATE-NAME from crates.io, and return the > +(define (crate->guix-package crate-name@version) > + "Fetch the metadata for CRATE-NAME@VERSION from crates.io, and return = the The idea is that the (guix import =E2=80=A6) modules do not contain UI-rela= ted stuff, and that UI-related stuff is instead isolated in (guix scripts import =E2=80=A6). Thus, splitting the =E2=80=9Ccrate@version=E2=80=9D string should happen in= (guix scripts import crate) rather than in this module. Instead, you could simply change =E2=80=98crate->guix-package=E2=80=99 so t= hat it takes an optional =E2=80=98version=E2=80=99 field: (define* (crate->guix-package crate-name #:optional version) =E2=80=A6) In a second step, you=E2=80=99d change (guix scripts import crate) so that = it passes that version string to =E2=80=98crate->guix-package=E2=80=99. How does that sound? > + (define crate-name-version-list > + (let ((lnv (string-split crate-name@version #\@))) > + (if (=3D 1 (length lnv)) > + (append lnv '(#f)) > + lnv))) > + > + (define crate-name > + (car crate-name-version-list)) > + > + > (define crate > (lookup-crate crate-name)) >=20=20 > + (define crate-version-string > + (let ((version (cadr crate-name-version-list))) > + (if version > + version > + (crate-latest-version crate)))) We have a policy of not using =E2=80=98cadr=E2=80=99 and friends: https://guix.gnu.org/manual/en/html_node/Data-Types-and-Pattern-Matching.= html So the code above would typically look like: (define-values (name version) (match (string-split crate-spec #\@) ((name version) (values name version)) ((name) (values name #f)))) Could you send an updated patch (actually two patches)? Thanks for working on the importer! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 08 08:28:27 2019 Received: (at control) by debbugs.gnu.org; 8 Sep 2019 12:28:27 +0000 Received: from localhost ([127.0.0.1]:38496 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6wIt-0003Oo-Eb for submit@debbugs.gnu.org; Sun, 08 Sep 2019 08:28:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:32863) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6wIr-0003OY-CW for control@debbugs.gnu.org; Sun, 08 Sep 2019 08:28:26 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46251) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1i6wIk-0005Ws-OS for control@debbugs.gnu.org; Sun, 08 Sep 2019 08:28:20 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=44282 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1i6wIg-00089o-1g for control@debbugs.gnu.org; Sun, 08 Sep 2019 08:28:15 -0400 Date: Sun, 08 Sep 2019 14:28:12 +0200 Message-Id: <875zm39dlv.fsf@gnu.org> To: control@debbugs.gnu.org From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: control message for bug #37322 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) merge 37322 37323 quit From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 09 11:32:43 2019 Received: (at 37322) by debbugs.gnu.org; 9 Sep 2019 15:32:43 +0000 Received: from localhost ([127.0.0.1]:40433 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i7Lek-00012f-Oe for submit@debbugs.gnu.org; Mon, 09 Sep 2019 11:32:43 -0400 Received: from mx1.riseup.net ([198.252.153.129]:34914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i7Lei-00012V-Fw for 37322@debbugs.gnu.org; Mon, 09 Sep 2019 11:32:41 -0400 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.riseup.net (Postfix) with ESMTPS id D0C041B9060; Mon, 9 Sep 2019 08:32:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1568043159; bh=BSIz4ZAsqq0oW2X2imjr9BzWNv3vvOQ6DDNLgaM9rzk=; h=To:Cc:References:From:Subject:Date:In-Reply-To:From; b=YXcCTFO/gpgB8sK1V/PzYSB8QMs477wubNYAMzOvsZNZZHo1cqoGzRIrDlZG+Vvbh iIc83WEvh2Gi/ed8oH7LDGr72g2SMQhqSuG+bLuxx90RYXyXas+sWX6C4QRYg8u7L2 loxcgnK8w7zdm+BuAmNuKebk7SRqjR8ZzgmUqgnw= X-Riseup-User-ID: 6789F61C9D9769C307311CEA2F58F740660CCAB386EAE48363F6D0279481E913 Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 132D1221BEB; Mon, 9 Sep 2019 08:32:38 -0700 (PDT) To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= References: <20190906153211.8613-1-mjbecze@riseup.net> <877e6j9dmj.fsf@gnu.org> From: Martin Becze Openpgp: preference=signencrypt Autocrypt: addr=mjbecze@riseup.net; keydata= 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 Subject: Re: [bug#37322] [PATCH 1/2] adds the capability of importing a specified version to the crate importer Message-ID: Date: Mon, 9 Sep 2019 17:32:36 +0200 MIME-Version: 1.0 In-Reply-To: <877e6j9dmj.fsf@gnu.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Language: en-US X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 37322 Cc: 37322@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) yep! thats the idea. I'll fix up the guile soon. On 9/8/19 2:27 PM, Ludovic Court=C3=A8s wrote: > Hello Martin, > > So the goal is to allow users to run =E2=80=9Cguix import rust-foo@1.2.= 3=E2=80=9D, > right? That=E2=80=99s a good idea. > > Martin Becze skribis: > >> diff --git a/guix/import/crate.scm b/guix/import/crate.scm >> index f6057dbf8b..3266ebdfec 100644 >> --- a/guix/import/crate.scm >> +++ b/guix/import/crate.scm >> @@ -1,6 +1,7 @@ >> ;;; GNU Guix --- Functional package management for GNU >> ;;; Copyright =C2=A9 2016 David Craven >> ;;; Copyright =C2=A9 2019 Ludovic Court=C3=A8s >> +;;; Copyright =C2=A9 2019 Martin Becze >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -181,8 +182,8 @@ and LICENSE." >> ;; This regexp matches that. >> (make-regexp "^(.*) OR (.*)$")) >> =20 >> -(define (crate->guix-package crate-name) >> - "Fetch the metadata for CRATE-NAME from crates.io, and return the >> +(define (crate->guix-package crate-name@version) >> + "Fetch the metadata for CRATE-NAME@VERSION from crates.io, and retu= rn the > The idea is that the (guix import =E2=80=A6) modules do not contain UI-= related > stuff, and that UI-related stuff is instead isolated in (guix scripts > import =E2=80=A6). > > Thus, splitting the =E2=80=9Ccrate@version=E2=80=9D string should happe= n in (guix > scripts import crate) rather than in this module. > > Instead, you could simply change =E2=80=98crate->guix-package=E2=80=99 = so that it takes > an optional =E2=80=98version=E2=80=99 field: > > (define* (crate->guix-package crate-name #:optional version) > =E2=80=A6) > > In a second step, you=E2=80=99d change (guix scripts import crate) so t= hat it > passes that version string to =E2=80=98crate->guix-package=E2=80=99. > > How does that sound? > >> + (define crate-name-version-list >> + (let ((lnv (string-split crate-name@version #\@))) >> + (if (=3D 1 (length lnv)) >> + (append lnv '(#f)) >> + lnv))) >> + >> + (define crate-name >> + (car crate-name-version-list)) >> + >> + >> (define crate >> (lookup-crate crate-name)) >> =20 >> + (define crate-version-string >> + (let ((version (cadr crate-name-version-list))) >> + (if version >> + version >> + (crate-latest-version crate)))) > We have a policy of not using =E2=80=98cadr=E2=80=99 and friends: > > https://guix.gnu.org/manual/en/html_node/Data-Types-and-Pattern-Match= ing.html > > So the code above would typically look like: > > (define-values (name version) > (match (string-split crate-spec #\@) > ((name version) (values name version)) > ((name) (values name #f)))) > > Could you send an updated patch (actually two patches)? > > Thanks for working on the importer! > > Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 09 11:37:12 2019 Received: (at 37322) by debbugs.gnu.org; 9 Sep 2019 15:37:13 +0000 Received: from localhost ([127.0.0.1]:40437 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i7Lj6-00019T-HD for submit@debbugs.gnu.org; Mon, 09 Sep 2019 11:37:12 -0400 Received: from mx1.riseup.net ([198.252.153.129]:36498) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i7Lj4-00019K-M3 for 37322@debbugs.gnu.org; Mon, 09 Sep 2019 11:37:11 -0400 Received: from capuchin.riseup.net (capuchin-pn.riseup.net [10.0.1.176]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.riseup.net (Postfix) with ESMTPS id 158E11A2FFB; Mon, 9 Sep 2019 08:37:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1568043430; bh=PTnBAdJ38NOowLEoKU+j8T3P7EyDKaBZ9pouTErl/r8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tZjD7cAcvb/qOyrtLDKYm3/HnasL+2xFdXH9nU6UUVAogpw9/PswZlbCnAKCrlV6Y I48Ty8CMxHCpyDY2IpTxyxA3Ule2oI7qxqwgY1CnMKxAtddPfwdcQZTlYn2phHlG7M 4mzoGLTE3Vn8+jCGkfPNwupRl00WDI80qJ7qfaW0= X-Riseup-User-ID: F4CF8D8C608F540CAADFF90D04DD11C85B0B6969F0C242908708BD69410A4372 Received: from [127.0.0.1] (localhost [127.0.0.1]) by capuchin.riseup.net (Postfix) with ESMTPSA id 0E3261209F6; Mon, 9 Sep 2019 08:37:08 -0700 (PDT) From: Martin Becze To: 37322@debbugs.gnu.org, ludo@gnu.org Subject: [PATCH v2 1/2] added versoining to crate import Date: Mon, 9 Sep 2019 11:36:04 -0400 Message-Id: <20190909153605.1484-1-mjbecze@riseup.net> In-Reply-To: <877e6j9dmj.fsf.org> References: <877e6j9dmj.fsf.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 37322 Cc: Martin Becze X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --- guix/import/crate.scm | 12 +++++++++--- guix/scripts/import/crate.scm | 10 +++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/guix/import/crate.scm b/guix/import/crate.scm index f6057dbf8b..de56432e3c 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven ;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2019 Martin Becze ;;; ;;; This file is part of GNU Guix. ;;; @@ -181,8 +182,8 @@ and LICENSE." ;; This regexp matches that. (make-regexp "^(.*) OR (.*)$")) -(define (crate->guix-package crate-name) - "Fetch the metadata for CRATE-NAME from crates.io, and return the +(define (crate->guix-package crate-name version) + "Fetch the metadata for CRATE-NAME@VERSION from crates.io, and return the `package' s-expression corresponding to that package, or #f on failure." (define (string->license string) (match (regexp-exec %dual-license-rx string) @@ -196,10 +197,15 @@ and LICENSE." (define crate (lookup-crate crate-name)) + (define crate-version-string + (if version + version + (crate-latest-version crate))) + (and crate (let* ((version (find (lambda (version) (string=? (crate-version-number version) - (crate-latest-version crate))) + crate-version-string)) (crate-versions crate))) (dependencies (crate-version-dependencies version)) (dep-crates (filter normal-dependency? dependencies)) diff --git a/guix/scripts/import/crate.scm b/guix/scripts/import/crate.scm index cab9a4397b..948b90ec15 100644 --- a/guix/scripts/import/crate.scm +++ b/guix/scripts/import/crate.scm @@ -2,6 +2,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson ;;; Copyright © 2016 David Craven +;;; Copyright © 2019 Martin Becze ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,6 +67,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) ;;; (define (guix-import-crate . args) + (define (parse-options) ;; Return the alist of option values. (args-fold* args %options @@ -75,6 +77,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) (alist-cons 'argument arg result)) %default-options)) + (let* ((opts (parse-options)) (args (filter-map (match-lambda (('argument . value) @@ -83,7 +86,12 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) (reverse opts)))) (match args ((package-name) - (let ((sexp (crate->guix-package package-name))) + (define-values (name version) + (match (string-split package-name #\@) + ((name version) (values name version)) + ((name) (values name #f)))) + + (let ((sexp (crate->guix-package name version))) (unless sexp (leave (G_ "failed to download meta-data for package '~a'~%") package-name)) -- 2.23.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 09 18:38:58 2019 Received: (at 37322-done) by debbugs.gnu.org; 9 Sep 2019 22:38:58 +0000 Received: from localhost ([127.0.0.1]:40699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i7SJF-0006jf-Uo for submit@debbugs.gnu.org; Mon, 09 Sep 2019 18:38:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:44728) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i7SJF-0006jU-7W for 37322-done@debbugs.gnu.org; Mon, 09 Sep 2019 18:38:57 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:44257) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1i7SJA-00033t-1a; Mon, 09 Sep 2019 18:38:52 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=56356 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1i7SJ9-00062x-Ko; Mon, 09 Sep 2019 18:38:51 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Martin Becze Subject: Re: [bug#37322] [PATCH v2 1/2] added versoining to crate import References: <20190909153605.1484-1-mjbecze@riseup.net> Date: Tue, 10 Sep 2019 00:38:50 +0200 In-Reply-To: <20190909153605.1484-1-mjbecze@riseup.net> (Martin Becze's message of "Mon, 9 Sep 2019 11:36:04 -0400") Message-ID: <877e6hxfgl.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 37322-done Cc: 37322-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Martin, Martin Becze skribis: > --- > guix/import/crate.scm | 12 +++++++++--- > guix/scripts/import/crate.scm | 10 +++++++++- > 2 files changed, 18 insertions(+), 4 deletions(-) Pushed as fd63ecbe050bf8fa7c8ff0a003d56cce97b6ded1. I tweaked quite a few things, mostly for cosmetic reasons, and added a commit log that follows our conventions. Please take a look! Thank you, Ludo=E2=80=99. From unknown Sat Sep 06 05:21:15 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 08 Oct 2019 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator