How to define the default package for a NixOS module in a Nix flake?

Yes, that is one of the reasons flakes are frozen and unsupported, their design is specifically very bad for composability, and you need other flake authors to take care to maintain similar composable entrypoints that you can callPackage :upside_down_face:

This is not a very good use-case for overlays, which are for modifying deep dependencies and inherently a rather dangerous surgical tool…

Apologies for being annoying, but note that this is somewhat of a tautology and that “dendritic pattern” is not really a thing. It’s literally just flake-parts, which in turn is just lib.evalModules, which in turn is just an AOP system, and which we are now struggling very hard to break apart into smaller subsystems in NixOS since we’re suffering increasingly intolerable eval times, struggling to perform static analysis or extract metadata due to lack of boundaries (AOP being explicitly about breaking boundaries or making logic that operators across them).

3 Likes