I've realized that we are in a good spot to make BLUE introduce a key feature that could make it a must have build system for Guix.
Guix developers often require to work in different branches. Many use worktrees to handle the different PRs, some just try to rebase on top of master, but no matter the workflow, all are affected by massive rebuilds.
Here you have a recent discussion on the topic:
One major pain point is that if you change branches, since master moves supper fast, you almost always touch most files leading to a massive rebuild, sometimes you are only checking a branch to later do a rebase, but that's already too late.
The point here, is that for the case of Guix, it may be desirable to configure the BLUE build graph builder to be hash based, even if it's slower than just checking timestamps, the upsides are quite good for development. It would allow us to checkout things without fear, knowing that we can always rebase on the last commit where we did the last build and everything will be properly cached.
I've realized that we are in a good spot to make BLUE introduce a key feature that could make it a must have build system for Guix.
Guix developers often require to work in different branches. Many use worktrees to handle the different PRs, some just try to rebase on top of master, but no matter the workflow, all are affected by massive rebuilds.
Here you have a recent discussion on the topic:
- [Guix devel - Local workflow](https://lists.gnu.org/archive/html/guix-devel/2026-02/msg00176.html).
One major pain point is that if you change branches, since `master` moves supper fast, you almost always touch most files leading to a massive rebuild, sometimes you are only checking a branch to later do a rebase, but that's already too late.
The point here, is that for the case of Guix, it may be desirable to configure the BLUE build graph builder to be hash based, even if it's slower than just checking timestamps, the upsides are quite good for development. It would allow us to checkout things without fear, knowing that we can always rebase on the last commit where we did the last build and everything will be properly cached.