aakropotkin/floco

fallbacks for `ident` and `version` from `package.json` reads cause infinite recursion.

Closed this issue · 1 comments

This isn't a serious problem but it's a wart that should get fixed.

Configs that use the pdefs -> packages conversions without explicitly stating ident and version trigger infinite recursion.
This is likely because the attr names in flocoPackages.packages.*.* depend on ident and version.
My understanding is that this operation should be lazy; but I could be wrong. In any case you can reproduce the issue by dropping explicit ident and version fields in a declaration like the one below. This /should/ be able to read those fields from package.json; but this crashes.

# <floco>/tests/modules/packages/dist/floco.nix
{
  imports = [../../../../modules/top];
  config.flocoPackages.pdefs."@floco/test"."4.2.0" = {
    ident      = "@floco/test";
    version    = "4.2.0";
    ltype      = "dir";
    sourceInfo.outPath = builtins.path {
      name   = "source";
      path   = ./.;
      filter = name: type: ( baseNameOf name ) == "package.json";
    };
  };
}

Fixed