Description
Follows seems to break when a flake that has follows is used as an input for another flake. For example for a circular dependency flakeB<->flakeC, if flakeA inputs flakeB it causes a circular import error. If A->B->C and A->D->C2 but B follows D/C, the follows works, but if another flake inputs A, B no longer follows D/C.
The RFC says follows should be a path from the root flake, but it looks like sometimes the path is actually treated as relative
nix/src/libexpr/flake/flake.cc
Line 366 in 5f64655
Not sure what the intended behavior is, but it seems kind of brittle to require a flake to know the path it is being input along, and it might be better to always treat a follows as relative to the flake where it is defined.