Almost exactly two years ago, I initiated a brief discussion on the status of delta vs full snap downloads, especially in the context of armhf: Refresh causes download of full snap file instead of delta. The conclusion at that time was that (a) deltas work, though (b) for armhf they are disabled unless an environment flag is set, yet ( c) they should probably also be enabled by default for armhf (last post in that thread).
Earlier today I refreshed a snap on a Raspbery Pi running the latest version of snapd (2.43.2), and noticed that the full snap was downloaded rather than a delta. Without having done any further investigation, that got me wondering where things stand, two years down the line. I have two specific questions:
- Are delta downloads the default behavior for armhf, or is an environment flag still required?
- I assume deltas are generated by the store whenever a new snap revision is uploaded. Is the logic applied to this documented somewhere?
For the second question what I have in mind is the following. Let’s say I release snap revision 1 to the edge channel, and promote it to stable. Then I also release revisions 2, 3, 4, 5, 6, 7, and 8 to edge. I figure that 8 is good enough, so promote it to stable. Will a diff from 1->8 be generated and provided to any device that’s tracking the stable channel? Or will that not happen due to the “gap” in revisions?