We are currently thinking of adding automated, localized screenshots of our app. Because those take up very much storage space (especially when multiple versions accumulate on git), I was wondering whether we can move them to another repo. That way, developers do not have to download the history of all those images to make changes to the app.
Are the images extracted from the repo after the normal build process? If so, we could simply add a command to the build recipe that clones the other repo.
TIL: Submodules can track a branch instead of being set to a specific commit (which would need to stay updated). That would be an acceptable solution, I guess. Still, I’m used to cloning stuff --recursive because my work repos usually come with bazillions of submodules. Other people probably are as well (or use the IDE integration that probably does recursive clones as well). So I think I would still prefer shallow-cloning lazily just when the metadata is actually needed.
Okay, so changes to the repo at build time are not kept and the publish stage starts with a fresh clone?
I’m talking about something like 7 screenshots x 1MB x 40 languages, so that would be about 280MB every time we re-generate the screenshots. So if F-Droid re-clones the submodule two times for each release (build+publish), that sounds like pretty much traffic.
We already run optipng. Scaling the images down makes them blurry (quite noticeable when there are small UI elements on the screenshot). Google re-encodes the images before serving them to users, so I want to make sure to give them the best possible source material. When resizing them to x960 and running optipng, they still have 270kB, so that would be 75MB every single time we re-generate the images - with very noticeable quality reduction. Given that png is already compressed, I don’t think git will be able to save the history using less space.
Another possibility would obviously be to only ship the English screenshots (and translated app descriptions) to F-Droid, while sending the large translated screenshots only to Google Play.