Hi Untrusem, I want to generally validate what you said about a slow feedback loop and how it drains willingness to contribute:
> - It decreases my will to contribute day by day. General things you can do: 1. Gabor pointed out the importance of using `Make` to cache the build. 2. Cache builds for different branches I've used `git worktrees` and I'm currently using Jujutusu. I'll explain my process using git worktrees below. 3. Cherrypick into a cached branch Maxim mentioned this and there was a thread recently where Simon and Andreas shared a git alias. On Thu, Aug 06, 2026 at 01:53:22PM +0200, [email protected] wrote: (...) > 1. Use git worktrees. Some contributors do, hopefully they will share > their workflow, I do not use them. (...) 1. Update master branch in main guix checkout You have to build it at least once so that the magic git hook is installed, something like this: :: cd ~/workspace/guix-src/guix git switch master git fetch origin # build source guix shell --container --nesting --development guix --share=/var/log/guix ./bootstrap ./configure make -j 24 echo -$? exit 2. Create a worktree I keep my worktrees in the same 'guix-src' location. I create one for each long running branch I'm tracking or a monthly review branch: :: mkdir -p ../worktrees # worktree to track a team git worktree add ~/workspace/guix-src/python-team -b python-team origin/python-team --track # worktree to track master - you can only have one worktree per branch git worktree add ~/workspace/guix-src/master-review-0626 -b master-review-0626 --track # all work is done on the branch 3. Build Guix in the worktree This is before you've applied any patches/PRs so that you have a 'cached' build at the base: :: cd ../worktrees/python-team guix shell --development guix --container --nesting --share=/var/log/guix --verbosity=3 # only if you haven't built it ./bootstrap ; ./configure # if previously built then it's a rebuild make clean make clean-go make --jobs=NN echo $? exit 4. Continue from here Now after this you do your PR etc, and when it comes to building your package you can do a 'guix build <package>' and it should be much faster. >From time to time fetch/rebase new changes from the upstream branch you're >tracking. I collect together a bunch of changes and then only do a >fetch/rebase when I'm getting ready to push, as that way I can do it and >rebuild guix as part of the final check that everything is fine with the >PRs/changes I'm pushing. Hope that makes sense, Steve / Futurile
