"Cache" different versions on embedded bins
Is your feature request related to a problem? Please describe.
I'm always frustrated when I need to hop between maintained branches where kube etc. version change. That means when ever I hop say from main to release-1.23 branch I need to do a full cycle of compiling every single embedded bin as many of the versions change.
Describe the solution you would like
It would be awesome if we could store the previously compiled version in local "cache" so hopping between branches would be much smoother and faster. Right now the full cycle of compiling between branches takes roughly 20mins on my Linux dev box.
The current structure is:
embedded-bins/
staging/
linux/
bin/
containerd (version 1.6.0)
kube-apiserver (version 1.23.7)
Could we do something like:
embedded-bins/
staging/
linux/
bin/
containerd/
1.6.0/
containerd (version 1.6.0)
1.6.3/
containerd (version 1.6.3)
Yes, we'd burn quite a bit more disk but personally I'd be more than willing to pay that tax for speed. 😄 And if one gets low on disk space there's always make clean...
Describe alternatives you've considered
No response
Additional context
No response
Currently, I address this by simply having different git worktrees for different releases. Works quite okayish.
I would probably also try to provide another clean target that just prunes unused versions. Don't know if that's possible without a lot of effort, though.
@jnummelin Did you try out git worktrees, and do they fit into your workflows, addressing the problem?
Closing, feel free to reopen if this is still an issue.