Hi, On Mon, 13 Mar 2023 at 23:21, Josselin Poiret <d...@jpoiret.xyz> wrote:
>> (⇒ keep the test result (boolean) longer than the build result) [...] > As it stands it's really not possible, as > > 1) testing is part of the build process itself and > 2) we can't look-up any stateful info like this from the building > process (of course!) Indeed, the builder derivation is not the same and so the item is not the same. --8<---------------cut here---------------start------------->8--- $ guix build hello --no-grafts /gnu/store/s5pd3rnzymliafb4la5sca63j86xs0y0-hello-2.12.1 $ guix build hello --no-grafts --without-tests=hello /gnu/store/0h3d2z53xx2idy6pnqa8k781hlf40zmx-hello-2.12.1 --8<---------------cut here---------------end--------------->8--- Compare, /gnu/store/s5y2w04jiydki5wb0zb9189x88v5288s-hello-2.12.1-builder /gnu/store/d5asvb7mla28mf93hjrk6fffnx14n8b1-hello-2.12.1-builder (quote ()) #:out-of-source? #f #:tests? #t (quote ()) #:out-of-source? #f #:tests? #f Last, note the self reference, --8<---------------cut here---------------start------------->8--- $ diff -r --no-dereference \ $(guix build hello --no-grafts) \ $(guix build hello --no-grafts --without-tests=hello) Binary files /gnu/store/s5pd3rnzymliafb4la5sca63j86xs0y0-hello-2.12.1/bin/hello and /gnu/store/0h3d2z53xx2idy6pnqa8k781hlf40zmx-hello-2.12.1/bin/hello differ $ grep s5pd3rnzymliafb4la5sca63j86xs0y0 $(guix build hello --no-grafts)/bin/hello grep: /gnu/store/s5pd3rnzymliafb4la5sca63j86xs0y0-hello-2.12.1/bin/hello: binary file matches $ grep 0h3d2z53xx2idy6pnqa8k781hlf40zmx $(guix build hello --no-grafts --without-tests=hello)/bin/hello grep: /gnu/store/0h3d2z53xx2idy6pnqa8k781hlf40zmx-hello-2.12.1/bin/hello: binary file matches --8<---------------cut here---------------end--------------->8--- > But I would really like for tests to move out of build phases, the > advantages would be twofold: less build time for a lot of packages, and > better environment management for tests (we could rely on better > interaction with other packages, more complicated mocking, use linux > namespaces to their fullest extent, etc.). That would require a huge > change to Guix though, so it's more of a dream than anything concrete. I agree: + it would simplify many things if we were able to run or re-run specific phases – Nix does that I guess. + it would be huge complex change. :-) Well, similarly of the ’without-tests’ transformation, maybe we could imagine another transformation for just run the test suite. I mean, it would not solve Arne’s issue but the converse: sometimes a package requiring many compilation is failing because of one test and debugging that is for some cases painful. Cheers, simon