Synthesize release objects for all upstream things that match the concept of a release
During the discussion about the branch name convention for the mercurial loader snapshots, in swh/devel/swh-loader-mercurial!3 (closed), @zack pointed out that the way we're avoiding synthesizing release objects for what our origins consider releases (for instance, lightweight git tags, PyPI/Debian packages, ...) is showing a two-fold problem:
- it corrupts the fundamental Software Heritage data model for releases, by not tagging (heh) some objects that origins have marked as such
- it therefore makes the UX confusing, by forcing our consumers to mix and match branch name conventions, origin-specific knowledge of the snapshot format, and the odd actual release objects to find software releases.
The consensus seems to be that we should
- extend the release object data model to allow it to store arbitrary, intrinsic metadata
- synthesize release objects for tarballs, Debian and PyPI packages
- update the user interface to support the updated data model (most notably making sure direct release -> directory links can be resolved properly)
This meta-task will track the progress towards solving this issue
Migrated from T1258 (view on Phabricator)