From patchwork Mon May 24 20:53:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: M X-Patchwork-Id: 29574 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 989BD27BC78; Mon, 24 May 2021 21:55:11 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL, SPF_HELO_PASS,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 41C9F27BC81 for ; Mon, 24 May 2021 21:55:10 +0100 (BST) Received: from localhost ([::1]:53868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1llHbR-0003Tn-CC for patchwork@mira.cbaines.net; Mon, 24 May 2021 16:55:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41654) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1llHbK-0003TZ-Ca for guix-patches@gnu.org; Mon, 24 May 2021 16:55:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:60697) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1llHbK-0004ev-5U for guix-patches@gnu.org; Mon, 24 May 2021 16:55:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1llHbK-00006i-0K for guix-patches@gnu.org; Mon, 24 May 2021 16:55:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48633] [PATCH]: Clean up gnu/packages/tryton.scm Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 24 May 2021 20:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 48633 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 48633@debbugs.gnu.org Cc: Adriano Peluso , Vinicius Monego X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.1621889643340 (code B ref -1); Mon, 24 May 2021 20:55:01 +0000 Received: (at submit) by debbugs.gnu.org; 24 May 2021 20:54:03 +0000 Received: from localhost ([127.0.0.1]:44010 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llHaM-00005P-Mg for submit@debbugs.gnu.org; Mon, 24 May 2021 16:54:03 -0400 Received: from lists.gnu.org ([209.51.188.17]:40142) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1llHaJ-00004r-Gk for submit@debbugs.gnu.org; Mon, 24 May 2021 16:54:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41470) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1llHaJ-0002d9-7F for guix-patches@gnu.org; Mon, 24 May 2021 16:53:59 -0400 Received: from xavier.telenet-ops.be ([2a02:1800:120:4::f00:14]:46414) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1llHaF-0003m0-DN for guix-patches@gnu.org; Mon, 24 May 2021 16:53:58 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id 8kto2500B0mfAB401ktpXK; Mon, 24 May 2021 22:53:49 +0200 Message-ID: From: Maxime Devos Date: Mon, 24 May 2021 22:53:48 +0200 User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1621889629; bh=0Up6f65GgUmVPg+mkMfB4oqGKaYdRqGMnhKV9kR++1U=; h=Subject:From:To:Cc:Date; b=ZcxRMULfDEEZ0VvqU2yY42YoV4MCNk/oKig1YUS+STQAq6YwQvoncCJGe1TS/qPLF ub8X2GBqMRmn+hFAL9M+ZR05SP6linsrDFDHYOCqmVII6z1VUgl2SRta8xwX/Np79U n4PSILx40GjXzFzBpbgzsNWe5YOvchQPTwZ5mIAArVR4twWpQljfjcPkyM2juwTgx7 fNLYh9BouP8t0VYBOKWwfNuDLv/Ftdro1tkRjo2oCceikhPt+sje/TgLoCMDPQU7NI 9eOhkvWWm39TJoH9eb8iCfvkbaNFZEMiB5xPtep/ifhgQMt8tdd62Cd4a869fHLf3u T6tHvxtYfBvAA== Received-SPF: pass client-ip=2a02:1800:120:4::f00:14; envelope-from=maximedevos@telenet.be; helo=xavier.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches CC'ing two people who are listed in the copyright lines. Patch #1: factor out code the 'check' phase of tryton modules in a procedure, as they are almost all exactly the same except for the module name. This one does not cause any change in derivation (no rebuilds). Patch #2: Use 'inputs' argument to the 'check' phase instead of %build-inputs. I tried building some tryton modules and it seemed to work well. No failures, but I didn't try all. Patch #3: Respect tests?, allow --without-tests. I tested building a single tryton module. Greetings, Maxime. From aa0f2aabf11a45d47b8b8d287aa95d85ee35181c Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Mon, 24 May 2021 21:07:15 +0200 Subject: [PATCH 1/3] =?UTF-8?q?gnu:=20tryton:=20Factor=20out=20custom=20?= =?UTF-8?q?=E2=80=98check=E2=80=99=20phase.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/tryton.scm (tryton-phases): New procedure. (tryton-arguments): New procedure. (python-trytond-account)[arguments]: Use 'tryton-phases'. (python-trytond-account-invoice)[arguments]: Likewise. (python-trytond-account-invoice-stock)[arguments]: Likewise. (python-trytond-account-product)[arguments]: Likewise. (python-trytond-analytic-account)[arguments]: Likewise. (python-trytond-company)[arguments]: Likewise. (python-trytond-country)[arguments]: Likewise. (python-trytond-currency)[arguments]: Likewise. (python-trytond-party)[arguments]: Likewise. (python-trytond-product)[arguments]: Likewise. (python-trytond-purchase)[arguments]: Likewise. (python-trytond-purchase-request)[arguments]: Likewise. (python-trytond-stock)[arguments]: Likewise. (python-trytond-stock-lot)[arguments]: Likewise. --- gnu/packages/tryton.scm | 238 +++++++--------------------------------- 1 file changed, 39 insertions(+), 199 deletions(-) diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm index e9484aa487..800e19d827 100644 --- a/gnu/packages/tryton.scm +++ b/gnu/packages/tryton.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2020 Vinicius Monego +;;; Copyright © 2021 Maxime Devos ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,6 +145,26 @@ and security.") "This package provides a library to access Tryton server as a client.") (license license:lgpl3+))) +(define (tryton-phases module . extra-arguments) + "Return the phases for building and testing a Tryton module named MODULE. +If present, pass EXTRA-ARGUMENTS to runtest as well." + `(modify-phases %standard-phases + (replace 'check + (let ((runtest + (string-append + (assoc-ref %build-inputs "trytond") + "/lib/python" + ,(version-major+minor (package-version python)) + "/site-packages/trytond/tests/run-tests.py"))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "python" runtest "-m" ,module ,@extra-arguments)))))) + +(define (tryton-arguments module . extra-arguments) + "Like ’tryton-phases’, but directly return all arguments for +the build system." + `(#:phases ,(apply tryton-phases module extra-arguments))) + ;;; ;;; Tryton modules - please sort alphabetically ;;; @@ -159,19 +180,7 @@ and security.") (sha256 (base32 "16ny67vcnxk9ngcxd56cfixm441vs9jxv3apmb16xsi47yk2xd7w")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "account"))))))) + (arguments (tryton-arguments "account")) (native-inputs `(("python-genshi" ,python-genshi) ("python-lxml" ,python-lxml) @@ -210,19 +219,7 @@ most of accounting needs.") (sha256 (base32 "0drccambg6855p7ai8654c7f9v85jzwicwpxmagyrr09qz6qzgcz")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "account_invoice"))))))) + (arguments (tryton-arguments "account_invoice")) (native-inputs `(("python-genshi" ,python-genshi) ("python-lxml" ,python-lxml) @@ -268,19 +265,7 @@ term.") (sha256 (base32 "02m6ikcc38ac41ddzg5xp5l9jz0k6j7j1g2xa62ki4v093yn4z5v")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "account_invoice_stock"))))))) + (arguments (tryton-arguments "account_invoice_stock")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -319,19 +304,7 @@ average price of the posted invoice lines that are linked to it.") (sha256 (base32 "10bpbkkmllbh9lm5ajydmc5nvqm9bbdn9rmm03jqgik23s5kyx2z")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "account_product"))))))) + (arguments (tryton-arguments "account_product")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -372,19 +345,7 @@ and category.") (sha256 (base32 "10rn2rf1ji7d1gxmgca368yvabql1ahklqg7p8sh5bl79vn5qx5x")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "analytic_account"))))))) + (arguments (tryton-arguments "analytic_account")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -424,19 +385,7 @@ required to analyse accounting using multiple different axes.") (sha256 (base32 "1bwy2rkgfw32cwhq5fh3rpy7bx425h44ap10i9kjx5ak86bfnpz9")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "company"))))))) + (arguments (tryton-arguments "company")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -472,20 +421,8 @@ company and employee and extend the user model.") (sha256 (base32 "1lkspk5w5pb0gg2h27zb7vwcj993gkm1f84qdxmqlpkc8raqvicj")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - ;; Doctest contains one test that requires internet access. - (invoke "python" runtest "-m" "country" "--no-doctest"))))))) + ;; Doctest contains one test that requires internet access. + (arguments (tryton-arguments "country" "--no-doctest")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -518,19 +455,7 @@ company and employee and extend the user model.") (sha256 (base32 "0b5p7ibil7nlsv7f31j69rka4xj5za798262algx7xa88a6h7mmx")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "currency"))))))) + (arguments (tryton-arguments "currency")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -565,20 +490,8 @@ currency and rate.") (sha256 (base32 "1hapfq7ip99s4qp9xra1m40q4n379p9pmfnz2x4ggd79ss76bghc")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - ;; Doctest 'scenario_party_phone_number.rst' fails. - (invoke "python" runtest "-m" "party" "--no-doctest"))))))) + ;; Doctest 'scenario_party_phone_number.rst' fails. + (arguments (tryton-arguments "party" "--no-doctest")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -613,19 +526,7 @@ addresses.") (sha256 (base32 "0x18ngpjyrdwjwg17bz98jph4jv5gcv0qc0p2kxpam4lqsy34ic2")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "product"))))))) + (arguments (tryton-arguments "product")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -661,19 +562,7 @@ Template and Product.") (sha256 (base32 "0na74zijj46b12gypy9si3las02a96rh5ygl503c7razha61g1b0")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "purchase"))))))) + (arguments (tryton-arguments "purchase")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -721,21 +610,8 @@ Template and Product.") (sha256 (base32 "1m92snnvgisnv083nml6cz5qgnfdg539rd5bwg3lqrknm7343w16")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - ;; Doctest 'scenario_purchase_request.rst' fails. - (invoke "python" runtest - "-m" "purchase_request" "--no-doctest"))))))) + ;; Doctest 'scenario_purchase_request.rst' fails. + (arguments (tryton-arguments "purchase_request" "--no-doctest")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -773,19 +649,7 @@ generated by other process from Tryton.") (sha256 (base32 "0yb8kd3alwqkivrlpx0ni4jxv3x14i37lmwism9yi81xwchyrcjk")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "stock"))))))) + (arguments (tryton-arguments "stock")) (native-inputs `(("python-genshi" ,python-genshi) ("python-lxml" ,python-lxml) @@ -827,19 +691,7 @@ inventory to control and update stock levels.") (sha256 (base32 "0w2f62cfzm7j8wnw8igmjslpxc1a8s82dkdizyvim5qhjg6mrsym")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "stock_lot"))))))) + (arguments (tryton-arguments "stock_lot")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) @@ -874,19 +726,7 @@ inventory to control and update stock levels.") (sha256 (base32 "01cgpxlznldrba79a3xmj4d0csyfc3ccgs66c490j8v8rdnqpbww")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (let ((runtest - (string-append - (assoc-ref %build-inputs "trytond") - "/lib/python" - ,(version-major+minor (package-version python)) - "/site-packages/trytond/tests/run-tests.py"))) - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" runtest "-m" "stock_supply"))))))) + (arguments (tryton-arguments "stock_supply")) (native-inputs `(("python-dateutil" ,python-dateutil) ("python-genshi" ,python-genshi) -- 2.31.1