From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <help-guix-bounces+larch=yhetil.org@gnu.org>
Received: from mp11.migadu.com ([2001:41d0:303:e16b::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by ms8.migadu.com with LMTPS
	id aIeACKLbQ2VQAgAA9RJhRA:P1
	(envelope-from <help-guix-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Thu, 02 Nov 2023 18:25:54 +0100
Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by mp11.migadu.com with LMTPS
	id aIeACKLbQ2VQAgAA9RJhRA
	(envelope-from <help-guix-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Thu, 02 Nov 2023 18:25:54 +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 AA724403E6
	for <larch@yhetil.org>; Thu,  2 Nov 2023 18:25:53 +0100 (CET)
Authentication-Results: aspmx1.migadu.com;
	dkim=pass header.d=bayesians.ca header.s=protonmail2 header.b=hcYEwAFR;
	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";
	dmarc=pass (policy=quarantine) header.from=bayesians.ca
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org;
	s=key1; t=1698945953;
	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=wRU0KqWwRLrgD9Tlz8SrtEnUAouBiezCoPYKUZlmp4Q=;
	b=ad/EkltpxETQ/ZUrneNLwTXIAvSbvYfEPrFrPvAlCksiRmn0u6GoKhxOjX0i2jjnHSIkrp
	j86Oi59Dk2+GQSiMYGdCuXgP4VZ5Lq5OYHY1n5EToebKg+dChnRpT43RK/iu4QW75cLm3a
	e3NJRHbJJ3GPPmmVc6v0X3t3x2Uqa/03lKFMvrvcSTWiEQl92EiexztS6M3vw5byNyZb+/
	vKeEgRzYzaF1kQrngg8XrHIJsPdOcq6mFbrSU6x/JlsKtRL61T8HIm1ComVgwkLp2hWj7z
	KXvvWEBOf/V7ytOwlVSVSk07A92q0ulexwYFqi9oK3C0x27SrS+zq9MrCMpC6Q==
ARC-Authentication-Results: i=1;
	aspmx1.migadu.com;
	dkim=pass header.d=bayesians.ca header.s=protonmail2 header.b=hcYEwAFR;
	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";
	dmarc=pass (policy=quarantine) header.from=bayesians.ca
ARC-Seal: i=1; s=key1; d=yhetil.org; t=1698945953; a=rsa-sha256; cv=none;
	b=IBx+7KK6FBmRdD73TtYVZenhd+2vc003ceO/bl+KZjE6mGMWIg2H4xxq6bb/fKdk3tZEh2
	Y79lYOPD090pQ/9TnZSZKJR5EK8CRrcFRL+MaEDUxP6A2GInwV/ejoBxJSAhmyNdnyhIBS
	AL2rTxJZf/9dx4ZSNSf0iC0swc/p/NPu4LRXcmWUot6bWuNvPEBtXGAIvzg+VyBKaIHoBD
	knAid18UwuyPAu5Ye4jtfIN+KnLZ7/sSprzkHCHTTTII8jrxQLFD3pKPqshzZJb/TxhcsA
	irWZ94uo8OYB6wfu93Hl3IMpv4EiJ+CVgeHsy2FyLk/Ts3AG4MQnvlx90+/H/g==
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 1qybRf-00083u-PZ; Thu, 02 Nov 2023 13:25:27 -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 1qybRe-00083R-Ct
 for help-guix@gnu.org; Thu, 02 Nov 2023 13:25:26 -0400
Received: from mail-40136.proton.ch ([185.70.40.136])
 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 1qybRa-0005gY-DM
 for help-guix@gnu.org; Thu, 02 Nov 2023 13:25:26 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bayesians.ca;
 s=protonmail2; t=1698945917; x=1699205117;
 bh=wRU0KqWwRLrgD9Tlz8SrtEnUAouBiezCoPYKUZlmp4Q=;
 h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
 b=hcYEwAFRJzEE1bz3+hXblWbX7cYi5u4hoIPzvxkCqsIPhiNYB9iY52xpg/jrPjTuj
 qQHw5itp/KA4QuS+CZSCPpdbtI/l95cS+7v5FsVt9KqzG9rrdTcZltZSqNOx4YNx8B
 LiMMVKchj1QQGe7st1lMUJbATD9p9rOO5e7MFzOPp1GOInBkOieJ2TRIjwpaUDvstJ
 73cGTWm/c5mOztvz5h+MZ9VPlBXoe4Pour0ZK0ZoUHkiQ5Mo8639XYBaVtDPjuL+SL
 VjWN7d3fTTsxZSiyWiMyxiruystEcFnwb9xRbhlbjtgow4UBw+0lAGWh6hD31aTZte
 L9vKnRF44JWMA==
Date: Thu, 02 Nov 2023 17:25:13 +0000
To: Greg Hogan <code@greghogan.com>
From: Suhail <suhail@bayesians.ca>
Cc: Suhail <suhail@bayesians.ca>, Simon Tournier <zimon.toutoune@gmail.com>,
 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: <87y1fggj9q.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.136; envelope-from=suhail@bayesians.ca;
 helo=mail-40136.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-Spam-Score: -4.69
X-Spam-Score: -4.69
X-Migadu-Queue-Id: AA724403E6
X-Migadu-Scanner: mx13.migadu.com
X-TUID: 3ruZB6dPh3nz

Greg Hogan <code@greghogan.com> writes:

> On Thu, Nov 2, 2023 at 11:26=E2=80=AFAM Suhail <suhail@bayesians.ca> wrot=
e:
>> 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".
>
> Should this say "without side-effects"?

No, I meant "with side-effect", but we have a notational
difference. What is termed side-effect is context dependent, so I'll fix
my terminology and make clearer what I meant. To me, the "check" phase
is something that reports on the state of its input. Said report (i.e.,
whether or not the check phase was run, and if run what its output was)
is what I was using the term "side-effect" for. Perhaps "test state
metadata" would be a better term.

> How does one guarantee that the test phase is free of side-effects?

Translation to remove ambiguity of the term "side-effect": How does one
guarantee that the test phase doesn't modify its input build artifact?

This could be enforced using an overlay layer as you suggest, but we
could also take a different approach. It would be sufficient to be able
to distinguish well-behaved tests (those that don't alter the input
build-artifact) from those that aren't (i.e., those that do alter the
input build-artifact).

> Alternatively, could we make it easier to record a timestamp in the
> manifest for Guix to use as the build clock time?

While that would address the original issue that motivated this
discussion thread, it's not an alternative in the context of the current
discussion. Regardless, I agree that having such a facility would be
useful.

While I do believe the defaults in gnu-build-system could benefit from
revisiting our current treatment of the check and validate-runpath
phases, advocating for that is not my primary goal with this
discussion.

As someone who's not well-versed in Guix internals, I am simply trying
to understand what an alternate build-system (say, ds-build-system)
would look like. One that allows the user/caller of a package to
determine how to handle:

- whether or not the tests were run, and
- whether or not the tests, if run, passed

Similarly for other such "phases".

One application for such a build-system (which is of interest to me)
would be to "package" the result of some "data"-dependent computations
where the notion of what constitutes a "passing build artifact" is less
clearly defined (e.g., models used for algorithmic decision-making).

--=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.