software preservation
software identification
SWHID
DOI
Useful Links:
open access
content (not including Embargoed
,Restricted
, Closed
)Software
type
User->Invenio: upload files and metadata
Invenio->User: publish deposit with DOI
Invenio-> SWH: push deposit
SWH->SWH: check deposit
Invenio-> SWH: retrieve status
SWH->Invenio: status
Note right of SWH: loader \n ingest \n deposit
Invenio-> SWH: retrieve status
SWH->Invenio: status & SWHID
Invenio->User: publish deposit with DOI and SWHID
Zenodo automatically extracts metadata about your repository from GitHub APIs. For example, the authors are determined from the repository's contributor statistics. The automatic extraction is solely a best guess. Add a .zenodo.json file the root of your repository to explicit define the metadata. The format of file is the same as for our REST API (use e.g. below JSON to get started).
open access
content (not including Embargoed
,Restricted
, Closed
)Software
typeUser->GitHub: create repository on GitHub
User->Invenio: links account with GitHub & flip switch for repository
User->GitHub: create release
GitHub->Invenio: new release
Invenio-->GitHub: GET: fetch release
Note right of Invenio: metadata \n automatic \n extraction
Invenio-->User: publish deposit with DOI
Invenio->Invenio: calculate SWHID
Note left of SWH: SWHID zip \n SWHID release \n metadata \n original url \n DOI url
Invenio-> SWH: push deposit
SWH-->Invenio: deposit_id
SWH->SWH: links
Invenio-> SWH: call "save code now"
SWH->SWH: check deposit
Invenio-> SWH: retrieve status
SWH->Invenio: status
Note right of SWH: loader \n ingest \n deposit
Invenio-> SWH: retrieve status
SWH->Invenio: status & SWHID
Invenio->User: publish deposit with DOI and SWHID
Remarks
The SWHID that is returned is for the zip (swh:1:dir:aaaa…) with the context, using the anchor qualifier with the release identifier (swh:1:rel:bbbb…) if save code now succeeds
Save code now is called by the client on the repository's url (without .git) to ensure all development history of the artifact is preserved
The user can update and modify the metadata of a deposit in both cases (simple deposit or GitHub integration deposit).
We need to provide a mechanism to capture the updated metadata, without reloading the content.
User->Invenio: update metadata
Invenio->User: publish new metadata
Invenio-> SWH: add metadata to SWHID with context
SWH->Invenio: deposit_id
SWH->SWH: check metadata
Invenio-> SWH: retrieve status
SWH->Invenio: status
Note right of SWH: fetcher \n ingest \n metadata
Invenio-> SWH: retrieve status
SWH->Invenio: status & SWHID
Invenio->User: publish deposit with DOI and SWHID
If the deposit contains content it is the loader
that comes into play:
If the deposit contains only metadata it is the fetcher
that comes into play:
Introductions
development
Staging area and credentials
environment
webapp: https://webapp.staging.swh.network
deposit: https://deposit.staging.swh.network
account setup as a usage requisite (in parenthesis, a proposal):
user: authenticated user and owner of the collection (e.g invenio)
collection name: deposit software collection (e.g
invenio).
provider_url: It's a fallback url used as origin url when
the user does not provide one alongside its deposit (e.g FIXME!
https://www.openinventionnetwork.com).
domain: the main domain the software is coming from (e.g FIXME!
www.openinventionnetwork.com)
Deposit protocol updates:
CodeMeta taskforce
*
Cottage Labs update
InvenioRDM deployment