purl-spec icon indicating copy to clipboard operation
purl-spec copied to clipboard

Add support for `snapshot` as a qualifier for deb purls

Open sambhav opened this issue 3 years ago • 6 comments

snapshots are a way to refer to a series of packages from a give date. More details can be found at https://snapshot.debian.org/

The idea being that distro along with snapshot might be useful for reproducibility purposes.

The snapshot field should be a string field.

sambhav avatar Dec 14 '21 11:12 sambhav

Is timestamp (or snapshot) specific to deb? Or does the semantics translate to other package types?

bureado avatar Dec 14 '21 21:12 bureado

For reference #57, https://github.com/package-url/purl-spec/pull/57#issuecomment-558872707

bureado avatar Dec 14 '21 21:12 bureado

IMHO they are specific to deb ... and it is often best to start specific as things can always be generalized later How would a snapshot be different from a regular pool package? is it possible to a=have two different .deb for the same version ever published there?

pombredanne avatar Dec 15 '21 21:12 pombredanne

The snapshots sort of serve as a "snapshot" of the distribution at a specific date and time. So if someone were to run apt install given a specific snapshot, they would be able to reliably reproduce with the set of various package versions in the distro at that point in time.

sambhav avatar Dec 15 '21 22:12 sambhav

See https://snapshot.debian.org/ and https://github.com/fepitre/debrebuild for more.

I fundamentally disagree that snapshotted/timestamped packages are a concept exclusive to the Debian ecosystem. The semantics clearly carry to other ecosystems, particularly those that have versioned dependencies and build dependencies that will be more sensitive to replaying builds for reproducibility purposes.

That said, it's true that the Debian ecosystem has the best known real-life implementation of the concept and that there isn't much that we can contribute right now from purl to broadening this. (For completeness, when I asked the question above I was thinking specifically about non-Debian prior-art around the datetime format for the value and its semantics, e.g., "at or around" vs. "on or before" vs. "no earlier than")

bureado avatar Dec 25 '21 17:12 bureado

Related: https://reproducible-builds.org/specs/source-date-epoch/

bureado avatar Jan 04 '22 00:01 bureado