I've been thinking it would be nice to have runtime-only dependencies in order to avoid spurious rebuilds. The basic mechanism would be building with a dummy path, and then replacing it post-build.
If this sounds like self-references with the intentional store, that is no coincidence: self-references are indeed but a simple kind of runtime-only dep. Obviously a package can't actually use itself while building, it can only hard-code where it will be installed.
Finally, I think we should consider allowing larger cycles than just self-refs. This would solve the libc-sh problem where each has a runtime dep on the other.
I've been thinking it would be nice to have runtime-only dependencies in order to avoid spurious rebuilds. The basic mechanism would be building with a dummy path, and then replacing it post-build.
If this sounds like self-references with the intentional store, that is no coincidence: self-references are indeed but a simple kind of runtime-only dep. Obviously a package can't actually use itself while building, it can only hard-code where it will be installed.
Finally, I think we should consider allowing larger cycles than just self-refs. This would solve the libc-sh problem where each has a runtime dep on the other.