coq-community / coq-nix-toolbox

Nix helper scripts to automate local builds and CI [maintainers=@CohenCyril,@Zimmi48]
MIT License
32 stars 9 forks source link

Deactivating a job is not transitive #90

Open eponier opened 2 years ago

eponier commented 2 years ago

It seems like setting job = false for a reverse dependency does not disable reverse dependencies of this reverse dependency.

For instance, in this commit of coq-elpi, we tried to disable hierarchy-builder (this is commented out, the bug appears if you uncomment the appropriate line), and this did not disable graph-theory and mathcomp-analysis, that are both reverse dependencies of hierarchy-builder, but not direct reverse dependencies of coq-elpi. We had to also disable these two packages manually.

CohenCyril commented 2 years ago

@Zimmi48 I think this might be related to one of your issues... (I cannot recall which one)

Zimmi48 commented 2 years ago

This is similar to the issue that we were having when filtering jobs out of coqPackages but that would not filter their reverse dependencies (which would then fail to evaluate). The attempted fix is there: https://github.com/NixOS/nixpkgs/pull/141260

However, this is not the same issue, because disabling a job in CI should not mean marking it as broken / filtering it out (there should be distinct ways of doing each). This is something that I complain about in #62.

Finally, note that until we have #84 implemented, it can actually be useful to disable a job without disabling its reverse dependencies to gather them in a single job (this is what I had done for category-theory, though my PR adding Coq Nix Toolbox support was not merged).