Page MenuHomeSoftware Heritage

Create artifact release when 'releaseNotes' is in metadata
Open, NormalPublic

Description

When depositing in SWH a directory with the content and a revision with the metadata are created.
There is no notion of release.
When pointing to SWH from Wikidata we can only use the swh:1:rel:<id> property.
We wish for T1752 to have links from software entities in Wikidata to software releases archived in SWH.

On the other hand, not all deposits need a release.
This is why only deposits with releaseNote are concerned and the entry for this metadata should be the message of the release.

Event Timeline

moranegg created this task.Fri, May 24, 3:33 PM
moranegg triaged this task as Normal priority.
moranegg added a subscriber: rdicosmo.
moranegg renamed this task from Create artifact release when 'releaseNote' is in metadata to Create artifact release when 'releaseNotes' is in metadata .Fri, May 24, 4:41 PM
olasd added a subscriber: olasd.Tue, Jun 18, 5:09 PM

(I'll pass on the underlying limitation of being forced to link to a release object from wikidata, which feels a bit artificial but is out of scope for this task)

(in the current data model) a release has the following fields:

  1. target / target_type (mandatory) pointing at the contents of the release
  2. release name (mandatory) usually a version number, or in the case of git the name of the tag
  3. release message (not mandatory but surely nice to have) probably the releaseNote
  4. author and date (not mandatory but again probably nice to have) contain the author of the release and the date it was made

The contents of target/target type are clear to me (it's the revision object generated for the deposit).
The name is not clear (is there a field in the deposit metadata we should use? should we hardcode something?). I don't know whether we should (or can) generate an author and a date.

Then there's the question of what the snapshot should look like. Should the HEAD still point at the revision? At the release ? If the HEAD points at the revision, how do we point to the release object (which branch name)?

Once these design questions are cleared the implementation should be much easier to delegate.