From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 06 17:09:44 2022 Received: (at submit) by debbugs.gnu.org; 6 Jun 2022 21:09:45 +0000 Received: from localhost ([127.0.0.1]:37015 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyJyq-0006jv-MJ for submit@debbugs.gnu.org; Mon, 06 Jun 2022 17:09:44 -0400 Received: from lists.gnu.org ([209.51.188.17]:47230) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyJyg-0006je-1e for submit@debbugs.gnu.org; Mon, 06 Jun 2022 17:09:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44516) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nyJyf-0004El-UV for bug-guix@gnu.org; Mon, 06 Jun 2022 17:09:33 -0400 Received: from cascadia.aikidev.net ([2600:3c01:e000:267:0:a171:de7:c]:56144) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nyJyd-00035z-LU for bug-guix@gnu.org; Mon, 06 Jun 2022 17:09:33 -0400 Received: from localhost (unknown [IPv6:2600:3c01:e000:21:7:77:0:20]) (Authenticated sender: vagrant@aikidev.net) by cascadia.aikidev.net (Postfix) with ESMTPSA id 94B4C1AAD8 for ; Mon, 6 Jun 2022 14:09:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=reproducible-builds.org; s=1.vagrant; t=1654549767; bh=K65gyg4yNnMDNFsDzIyroaVK3bcuusSWXS7Lnk1aZ3c=; h=From:To:Subject:Date:From; b=lccq4LpEk+usA2/RPHuRtoKUdEenRWnfN0L1+c3oGqYUPbI6HaDls7LwaEYTh/8Wm 9/hoZ08FlCdRxQ2rt3cOf0Ji0ICiQZX5BJXmlRv2qIZk7WUIdEm2WzmkBqFXk8S8dp HdUcj3GygOO6DMmUx/nUU43hf4EcbAGRYCD4SBb2ZEqvyZw5siGhDb7G8rdPfu2a09 jdiRsxWKK128n+0baiL9BZWbMSOJIcmf0IPRTzVJiyFV8y4ajl01JjxlzcKjf33tjz txFwkzDtaoWSRTiFe+59xuRNTvZGVhSayFvaK9ZgSgxb1p1Gw7zHGjAGfU1V5GhRpP XU3BC4hAv8QEg== From: Vagrant Cascadian To: bug-guix@gnu.org Subject: option to run diffoscope with guix build --rounds=N and --check Date: Mon, 06 Jun 2022 14:09:23 -0700 Message-ID: <87tu8xfqik.fsf@contorta> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: none client-ip=2600:3c01:e000:267:0:a171:de7:c; envelope-from=vagrant@reproducible-builds.org; helo=cascadia.aikidev.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit 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 (---) --=-=-= Content-Type: text/plain When I do: guix build --rounds=2 PACKAGE And the results differ, the process of actually running diffoscope on the results is very manual and a bit hard to automate. I might get output like: guix build: error: derivation `/gnu/store/dn50zya4d1zh21q6s3nh7f394s7ksknv-autogen-5.18.16.drv' may not be deterministic: output `/gnu/store/04byv4py1firka28h3nl70bj1g0a3n6k-autogen-5.18.16' differs from ?/gnu/store/04byv4py1firka28h3nl70bj1g0a3n6k-autogen-5.18.16-check? First of all, I have to actually remember to run: guix build --rounds=2 --keep-failed PACKAGE Would it be crazy for --rounds=N resonably assume --keep-failed ? Then it'll actually keep the produced /gnu/store/*-check ... then I have to screen-scrape the right files, sometimes accidentally grabbing the .drv instead of the right directory, and pass both the regular store item and the /gnu/store/*-check item ... if i get everything right I end up with: diffoscope /gnu/store/HASH-PACKAGE-VERSION /gnu/store/HASH-PACKAGE-VERSION-check And that basically works... but it is a very manual process... guix already has a similar tool to handle this sort of thing: guix challenge --diff=diffoscope PACKAGE But that assumes you are comparing things from your local build and the substitute server or servers, not two locally built things. How plausible would it be to implement something simile to "guix challenge --diff=diffoscope" like: guix build --rounds=2 --keep-failed --diff=diffoscope (or could --diff=diffoscope *assume* --keep-failed ?) Oh, and... basically all of the above applies for: guix build --check PACKAGE e.g. --keep-failed by default, option to support --diff=diffoscope, etc. Thanks for considering! live well, vagrant --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCYp5tBAAKCRDcUY/If5cW qm/WAP9A6YyeK7lu6xGDJ8/3ij0A49mFRLskc5k2e9wQ/LsGZAEAlbBRkeFaiBL4 NnrXMVU1JQfA4Elcouy6MFdwZw/oag4= =eSY7 -----END PGP SIGNATURE----- --=-=-=--