How to Publish a Deposition#
Note
Before going through this document, make sure you know how to create
an instance of the _DepositionActions
class, depo_act_obj,
by reviewing the How to Work with Deposition Actions guide.
Danger
Once a deposition is published, only minor changes in the metadata are allowed but none of the record files can be touched. If you need to change some of the files in the record or modify their versions in the published deposition, you should either create a new version (which comes with a new DOI) or contact the Zenodo Support Team.
Let’s consider a deposition draft (with the deposition ID: 1097408) in our Zenodo Sandbox account. A deposition in its draft state is marked by a red upper-arrow (upstream) icon near its title as shown below
After we have edited and prepared our deposition for publication, we can call the
the deposition_action()
function on an instance of the _DepositionActions
class and pass its ID and the action = 'publish'
as an argument
>>> my_depo = depo_act_obj.deposition_action(id_=1097408, action='publish')
>>> my_depo
<zenopy.record.Record at 0x7f2f98d3d0f0>
Let’s inspect the content of the published record
>>> my_depo.data
Output exceeds the size limit. Open the full output data in a text editor
{'conceptdoi': '10.5072/zenodo.1095981',
'conceptrecid': '1095981',
'created': '2022-08-29T17:57:05.414428+00:00',
'doi': '10.5072/zenodo.1097408',
'doi_url': 'https://doi.org/10.5072/zenodo.1097408',
'files': [{'checksum': 'cd375ecc07df759665a323de96e06237',
'filename': 'sample2.txt',
'filesize': 23,
'id': '5dfbf589-a8f7-4853-81d8-1b03665f19bf',
'links': {'download': 'https://sandbox.zenodo.org/api/files/d3b3bacd-a973-4454-95f2-c7a4441e6d97/sample2.txt',
'self': 'https://sandbox.zenodo.org/api/deposit/depositions/1097408/files/5dfbf589-a8f7-4853-81d8-1b03665f19bf'}}],
'id': 1097408,
'links': {'badge': 'https://sandbox.zenodo.org/badge/doi/10.5072/zenodo.1097408.svg',
'bucket': 'https://sandbox.zenodo.org/api/files/d3b3bacd-a973-4454-95f2-c7a4441e6d97',
'conceptbadge': 'https://sandbox.zenodo.org/badge/doi/10.5072/zenodo.1095981.svg',
'conceptdoi': 'https://doi.org/10.5072/zenodo.1095981',
'doi': 'https://doi.org/10.5072/zenodo.1097408',
'latest': 'https://sandbox.zenodo.org/api/records/1097408',
'latest_html': 'https://sandbox.zenodo.org/record/1097408',
'record': 'https://sandbox.zenodo.org/api/records/1097408',
'record_html': 'https://sandbox.zenodo.org/record/1097408'},
'metadata': {'access_right': 'embargoed',
'communities': [{'identifier': 'zenodo'}],
'creators': [{'name': 'Mostafanejad, Sina'}],
'description': 'This is a new description',
...
'owner': 123811,
'record_id': 1097408,
'state': 'done',
'submitted': True,
'title': 'My New Title'}
The combination of 'state': 'done'
and 'submitted': True
entries
tell us that this deposition is now published. We can verify that from
our Zenodo account which now shows our published deposition with a
green check mark and a blue publication date label with a version number
in parentheses besides the title as shown below.
The aforementioned change from published to draft state can be
programmatically performed in zenopy
by calling the deposition_action()
function on an instance of the _DepositionActions
class and passing
action = 'edit'
as an argument
>>> my_depo = depo_act_obj.deposition_action(id_=1097408, action='edit')
>>> my_depo
<zenopy.record.Record at 0x7fd6f430ec20>
Now, we can inspect the contents of the record stored in the my_repo variable
>>> my_depo.data
Output exceeds the size limit. Open the full output data in a text editor
{'conceptdoi': '10.5072/zenodo.1095981',
'conceptrecid': '1095981',
'created': '2022-08-29T17:57:05.414428+00:00',
'doi': '10.5072/zenodo.1097408',
'doi_url': 'https://doi.org/10.5072/zenodo.1097408',
'files': [{'checksum': 'cd375ecc07df759665a323de96e06237',
'filename': 'sample2.txt',
'filesize': 23,
'id': '5dfbf589-a8f7-4853-81d8-1b03665f19bf',
'links': {'download': 'https://sandbox.zenodo.org/api/files/d3b3bacd-a973-4454-95f2-c7a4441e6d97/sample2.txt',
'self': 'https://sandbox.zenodo.org/api/deposit/depositions/1097408/files/5dfbf589-a8f7-4853-81d8-1b03665f19bf'}}],
'id': 1097408,
'links': {'badge': 'https://sandbox.zenodo.org/badge/doi/10.5072/zenodo.1097408.svg',
'bucket': 'https://sandbox.zenodo.org/api/files/d3b3bacd-a973-4454-95f2-c7a4441e6d97',
'conceptbadge': 'https://sandbox.zenodo.org/badge/doi/10.5072/zenodo.1095981.svg',
'conceptdoi': 'https://doi.org/10.5072/zenodo.1095981',
'doi': 'https://doi.org/10.5072/zenodo.1097408',
'latest': 'https://sandbox.zenodo.org/api/records/1097408',
'latest_html': 'https://sandbox.zenodo.org/record/1097408',
'record': 'https://sandbox.zenodo.org/api/records/1097408',
'record_html': 'https://sandbox.zenodo.org/record/1097408'},
'metadata': {'access_right': 'embargoed',
'creators': [{'name': 'Mostafanejad, Sina'}],
'description': 'This is a new description',
'doi': '10.5072/zenodo.1097408',
...
'owner': 123811,
'record_id': 1097408,
'state': 'inprogress',
'submitted': True,
'title': 'My New Title'}
You can see the field state
is now set to inprogress
.
As such, you can treat the my_depo variable as a normal
deposition object.