artiq-full: split code generation into artiq-board-generated jobset #41
Loading…
Reference in New Issue
No description provided.
Delete Branch "astro/nix-scripts:board-generated"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Please review this for a solution to #36. I've let it run through Hydra thoroughly, so no breakage expected.
I started wondering about that static list of Kasli variants. Is there a reason it can't be sourced from a directory listing of
sinaraSystemsSrc
, with a white/black list of variants to include/exclude in non-beta?How would you define those "minimum ARTIQ version" requirements though?
How about putting the minimum ARTIQ version in the variant JSON itself?
Yes, that can be done.
@ -26,3 +26,3 @@
cp -a ${<artiq-fast>} $out/fast
cp ${./artiq-full}/artiq-board.nix $out
cp -a ${<artiq-board-generated>} $out/board-generated
Won't that break on ARTIQ-5?
...and on -6 bloat the channel expressions with all the generated sources for all variants?
For the non-beta case no sources are built but
board-generated/artiq-targets.nix
is still used because it contains the static variants list."artiq:board-generated-beta:generated-nix"
is anothergenerated-nix
just like<artiq-fast>
here. As there are no dependencies on the generated sources (yet), I'm still not sure if artiq-full evaluation will wait until all of the board-generated jobs have been tried.Hmm, it's a bit heavy to add a new jobset for that on -5. Can we be more conservative here?
c6cdf8d0d0
toa7d9711b54
@ -33,2 +51,3 @@
"sinaraSystemsSrc": { "type": "git", "value": "https://git.m-labs.hk/M-Labs/sinara-systems.git master 1", "emailresponsible": false },
"artiq-fast": { "type": "sysbuild", "value": "artiq:fast-beta:generated-nix", "emailresponsible": false }
"artiq-fast": { "type": "sysbuild", "value": "artiq:fast-beta:generated-nix", "emailresponsible": false },
"artiq-board-generated": { "type": "sysbuild", "value": "artiq:board-generated-beta:generated-nix", "emailresponsible": false }
Won't this produce some spurious builds with inconsistent
artiq-fast
andartiq-board-generated
versions?I think there should be a single ARTIQ input to
full-beta
, i.e.board-generated
needs to include the copy offast
that it used, and thenfull
reuses it, in order to prevent de-synchronization.I was wondering about that. Thank you for spelling it out. That will also result in yet more divergent codepaths between non-beta and beta.
If it diverges too much, just have two independent copies of the relevant Nix files. This will also help avoiding inadvertently breaking stable.
You can probably symlink and not copy.
Symlinking seems to break Nix restricted mode in which only /nix/store entries of known inputs are available to a build.
@ -31,7 +49,8 @@
"nixpkgs": { "type": "git", "value": "git://github.com/NixOS/nixpkgs nixos-20.09", "emailresponsible": false },
"nixScripts": { "type": "git", "value": "https://git.m-labs.hk/M-Labs/nix-scripts.git", "emailresponsible": false },
"sinaraSystemsSrc": { "type": "git", "value": "https://git.m-labs.hk/M-Labs/sinara-systems.git master 1", "emailresponsible": false },
Same as below - this can go out of sync with
board-generated
.a7d9711b54
to278197cb5a
Still running tests...
278197cb5a
to64ee51b673