From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <help-guix-bounces+larch=yhetil.org@gnu.org> Received: from mp12.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id uKeFJKS/Q2X+dgAAauVa8A:P1 (envelope-from <help-guix-bounces+larch=yhetil.org@gnu.org>) for <larch@yhetil.org>; Thu, 02 Nov 2023 16:26:28 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id uKeFJKS/Q2X+dgAAauVa8A (envelope-from <help-guix-bounces+larch=yhetil.org@gnu.org>) for <larch@yhetil.org>; Thu, 02 Nov 2023 16:26:28 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4C77F14F0C for <larch@yhetil.org>; Thu, 2 Nov 2023 16:26:28 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=bayesians.ca header.s=protonmail2 header.b=e6UpQGPu; dmarc=pass (policy=quarantine) header.from=bayesians.ca; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1698938788; a=rsa-sha256; cv=none; b=oUwQIqX7owRpJKYrFSM1pSuRTc1wXW3f7C8TNP3j6ffYHjBJal4lLlRxmcE3MQSfz3Zxd/ YJOuss0z8jkJ1mpFtF/f2VK+N80teBxhQBirjmHoE2uBr9eRIY9WwQ9BtI6mdvmL8NPC/U qQ4OhTTDrWs+pFGXKiyScda6Jv1QwHyz1qx9TProbBKhcTZl3dBJ0+1VyZg8z3h9LkgVIE Kwc8XSrbcgVWCmsWrMiPkPPpqqYAWQp2YU3UhVWs8+E7x9rIMC7ietIrzhVlk4NNbzjaGa f3iO+pXqxHhpWESDPaQNStRENHzcE+LDkjmyk9TuXf94FPLNBywceMy1aGnhIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1698938788; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=rIPTq+stKU6P7R53tSNKo06rLTYavjIXu+xmuxSI8pI=; b=eDr3aNAbXtYRzvDK2dai2g2drWxC1uWJc2Q2tgqxQNtb6cl7NIRzKEoEAfYmFunmsT3fXB mf/vCr4F6wo9PLSFocU5HkX2Yrru5WVJvTepCTgQs4LgYWbJKjCitbcdHtFU3mEIwmf/4h No8nR1CxLVVmlhqpKvc/WGkSlXajypBN4/o+CWmwVMgmDrsJjYSl5uNGvIIx3+3kQWFvLk xSwMwodCfm0zWYVey3x9U/S+v1y7Qrv7kQILoImNU3dw2usqG2PJjpfeGoVNMDfMaHYrMm wPeG2oLXthjVcGQpa6x9W84Wss6vMJGdsgmPbKhoxY4UNK77xdjKBB9jlD6Ghg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=bayesians.ca header.s=protonmail2 header.b=e6UpQGPu; dmarc=pass (policy=quarantine) header.from=bayesians.ca; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <help-guix-bounces@gnu.org>) id 1qyZZz-0003lK-WF; Thu, 02 Nov 2023 11:25:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <suhail@bayesians.ca>) id 1qyZZt-0003aF-Kc for help-guix@gnu.org; Thu, 02 Nov 2023 11:25:50 -0400 Received: from mail-4022.proton.ch ([185.70.40.22]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <suhail@bayesians.ca>) id 1qyZZq-0006Xy-5s for help-guix@gnu.org; Thu, 02 Nov 2023 11:25:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bayesians.ca; s=protonmail2; t=1698938740; x=1699197940; bh=rIPTq+stKU6P7R53tSNKo06rLTYavjIXu+xmuxSI8pI=; h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=e6UpQGPuqCD+MBIFTCwNyHknKHRsEann97zWoyRZl/CXgutvsUOW601hBHuzCC4nb 0c6ePard7m/sKzGn0yK27oS28ljexaCOGpnFa4M7nJ9zqBlEwi5HODmIwi/0en/Fb7 AixwCwID9cIjK8de5M8lnWsk19nVuQnoE+PSStCtZiap/kvSkgq9IPWFTZxMxpQInH XWw5ZUayhDqufLQAQXRkHcat4G6ymO0+7gH+E29oWEQ5b4QLC9ZLwWaNElOr7o+2JD wQrtqvy3+C+q3ojqvZyQ3bvWVMk4O6jmcPXob+lWqoG3btxJJiFyo+6UoZ/tOdGpq2 aM/Z6OGQNTTTQ== Date: Thu, 02 Nov 2023 15:25:33 +0000 To: Simon Tournier <zimon.toutoune@gmail.com> From: Suhail <suhail@bayesians.ca> Cc: Suhail <suhail@bayesians.ca>, Felix Lechner via <help-guix@gnu.org>, Julien Lepiller <julien@lepiller.eu>, Felix Lechner <felix.lechner@lease-up.com> Subject: Re: Turning off tests leads to a different store item Message-ID: <87r0l818ka.fsf@> Feedback-ID: 38691229:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=185.70.40.22; envelope-from=suhail@bayesians.ca; helo=mail-4022.proton.ch X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 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, INVALID_MSGID=0.568, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <help-guix.gnu.org> List-Unsubscribe: <https://lists.gnu.org/mailman/options/help-guix>, <mailto:help-guix-request@gnu.org?subject=unsubscribe> List-Archive: <https://lists.gnu.org/archive/html/help-guix> List-Post: <mailto:help-guix@gnu.org> List-Help: <mailto:help-guix-request@gnu.org?subject=help> List-Subscribe: <https://lists.gnu.org/mailman/listinfo/help-guix>, <mailto:help-guix-request@gnu.org?subject=subscribe> Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx11.migadu.com X-Spam-Score: -4.69 X-Migadu-Queue-Id: 4C77F14F0C X-Migadu-Spam-Score: -4.69 X-TUID: uBNg0ecKtLaL Simon Tournier <zimon.toutoune@gmail.com> writes: > On Wed, 01 Nov 2023 at 17:52, Suhail <suhail@bayesians.ca> wrote: > >> If not, why should skipping the tests result in a different >> derivation tree? > > The store path is different because it hashes all the inputs, included > the builder script; from my understanding. It certainly seems to be the case. Would you know the specific place(s) in the source code (in addition to guix/derivations.scm and guix/store.scm) that would be relevant for this discussion? On a related note, is Dolstra's phd thesis relevant for these aspects, or do you know if Guix diverges from Nix in some areas? > Well, from my understanding, get the same the store path for the same > package built with or without its tests ... would mean to have a > derivation for building and another derivation =E2=80=93 referring to the > former =E2=80=93 for testing. Yes, with the test derivation being something like a "fixed-output derivation". [[info:guix#Derivations][From the manual]]: #+begin_quote Operations such as file downloads and version-control checkouts for which the expected content hash is known in advance are modeled as fixed-output derivations. Unlike regular derivations, the outputs of a fixed-output derivation are independent of its inputs=E2=80=94e.g., a sourc= e code download produces the same result regardless of the download method and tools being used. #+end_quote The hypothetical test derivation leaves the build artifact unchanged, but does communicate some "side" information. It's like a fixed-output derivation carrying some metadata (further elaboration below). > Well, taking this direction, one could imagine a derivation for each > phases; somehow extend to all phases what it is already done for > fetching source, build and grafts (guix build --source && guix build > --no-grafts && guix build). Perhaps not all. The thing that sets the "check" phase (#:tests?) apart from the rest is that it's an identity transform with a side-effect. i.e., it simply reports on the state of its input (i.e., the build artifact) leaving the build artifact unchanged. The only other phase in the gnu-build-system that is similar to the "check phase" is the "validate-runpath phase". An alternative (possibly future) version of Guix might allow us to delay the interpretation/meaning associated with the following cases: - whether or not the tests were run, and - whether or not the tests, if run, passed To be able to do so, we need the "check derivation" be able to communicate two things (downstream): a summary of the test phase (could simply be a 3-valued datatype, like a 'Maybe Bool' in Haskell, but could also be something more elaborate), and the input build artifact (which remains unchanged). Similarly for the "validate-runpath derivation". I do not know what the best way to communicate the "side-effect information" (did the tests run and if so what was the conclusion) would be. Specifically, should the output of "check derivation" (similarly for "validate-runpath derivation") include the unchanged build artifact or not? Btw, is this still the appropriate mailing list (and more generally, forum) for this discussion? --=20 Suhail This email is not an offer capable of acceptance, does not evidence an intention to enter into an agreement, has no operative effect until a definitive agreement is signed in writing by both parties, and that no party should act in reliance on the email or any representations of the sender until a definitive agreement is signed in writing by both parties. This email may contain information that is privileged, confidential and/or exempt from disclosure. No waiver whatsoever is intended by sending this e-mail which is intended only for the named recipient(s). Unauthorized use, dissemination or copying is prohibited. If you receive this email in error, please notify the sender and destroy all copies of this email.