This Python project is for uploading NIME proceedings to Zenodo for archiving submissions and generating DOIs.
DANGER! Uploading and publishing to Zenodo should only happen ONCE for each proceedings entry. You must test the script using Zenodo's sandbox multiple times and make super sure that your metadata records (
.bib
file) are absolutely correct before uploading to production Zenodo.
The python script reads a .bib file
as used for the NIME archive and creates a deposition record on the Zenodo website.
The metadata from the .bib entries are tied to the article (.pdf file) and are published to Zenodo resulting in the creation of a DOI.
When this script is used to upload a new batch of papers the DOI and file name of each paper are added to the text file nime_dois.txt
.
This project uses Poetry to manage dependencies.
For the proceedings chair of the conference, your workflow should be:
- (before the conference) make sure all camera-ready submissions for each track are correct and hassle authors to update if there are errors---do this before the conference and emphasise that submissions cannot be updated after the conference.
- (after the conference) create an accurate spreadsheet for all submissions that should be in the proceedings for each track. Create a
.bib
file from these data following the format in the NIME bibliography. All fields must be filled in except fordoi
. - put the
.bib
file and pdf submission files into theupload
directory of this project. - follow the "Install" and "Run" instructions below and test multiple times with the Zenodo sandbox to make sure that your metadata is correct and working.
- upload to production Zenodo. The output file
nime_dois.txt
will show the DOI for each pdf you have uploaded.
Then you can pass the nime_dois.txt
file to the proceedings officer of NIME who will:
- use the data from
nime_dois.txt
to make a.csv
file associating each bibtex item key with the DOI. - use the
nime_bib
program in the bibliography repo to add DOIs to the correct bib file using thecsv
created in step 6. - use the
get_publications
script on the NIME website repo and deploy the website to update with DOIs.
You can install the project by running:
poetry install
You can test run the program by running:
poetry run python nime_zenodo_upload --help
To run the program you will need to:
-
place all pdfs to be uploaded into the
upload
directory -
find your bibtex file (e.g.,
nime2036_music.bib
) with metadata for the PDFs -
place a file named
secrets.toml
in the same directory as this readme file. Thesecrets.toml
file should have two records:PUBLIC_TOKEN = 'replace-with-your-zenodo-public-token' SANDBOX_TOKEN = 'replace-with-your-zenodo-sandbox-token'
Once you have your data in place, you can view the metadata that will be created (without uploading) by running:
poetry run python nime_zenodo_upload check upload/nime2036_music.bib
It's a good idea to check the author names carefully as they may have been processed incorrectly:
poetry run python nime_zenodo_upload check upload/nime2036_music.bib --authors
Typically you would run the checks many times to make sure the metadata is perfect.
When your metadata is ready you can try uploading to the sandbox server:
poetry run python nime_zenodo_upload upload upload/nime2023_music.bib
By default, the program uploads to the Zenodo sandbox. When you are absolutely ready to commit to the production server you can run:
poetry run python nime_zenodo_upload upload upload/nime2023_music.bib --production
to do you final uploads.
Some of the conference metadata is still hardcoded in the file, look inside nime_zenodo_upload/__main__.py
and update the lines:
PUBLICATION_DATE = '2023-05-31'
CONFERENCE_DATES = '31 May - 3 June, 2023'
CONFERENCE_TITLE = 'International Conference on New Interfaces for Musical Expression'
CONFERENCE_ACRONYM = 'NIME'
as needed for your edition.
There's some commented out code for adding an addition pdf file. This needs further work. Basically it would be good to upload files referenced in the supplementary file fields:
urlsuppl1 = {},
urlsuppl2 = {},
urlsuppl3 = {},
The .bib file: Special characters in the .bib file should be written with UTF-8 symbols and not in LaTeX code. This follows the convention for the bibliography repo.
- Thanks to Benedikte Wallace for developing the Zenodo upload script in 2017-2018 or so.
- Charles Martin did some work on this in 2024.