Gitlab release tarball stability


there’s a discussion going on in the openembedded community about stability of release source tarball provided in the “Releases” tab page:

So the fundamental questions is: are release source tarball regenerated from time to time in gitlab?

Openembedded needs to be sure it always obtains the same tarball at the given URL.
Provided the tags are not touched, is for example:

ever going to be regenerated?

Thank you.

This impacts the whole Openembedded community, so a reply from the Gitlab devs would be much appreciated.


Reply by andr_ from #gitlab IRC channel to the question “are release source tarball regenerated from time to time in gitlab?”:

not a gitlab dev but a short answer is: yes. Longer: after generation, the archives are kept in a cache. Cache can be purged at any time. Hovewer, the archives are gnerated by git archive under the hood by the gitaly service (gitaly/internal/service/repository/archive.go+134) which preserves dates when used with commits. However2: I don’t see a test that would cover the immutability so I think you might want to file an issue to gitaly on that because the underlying generation mechanism might change in the future.

From the git archive manual:

git archive behaves differently when given a tree ID versus when given a commit ID or tag ID. In the first case the current time is used as the modification time of each file in the archive. In the latter case the commit time as recorded in the referenced commit object is used instead.

1 Like