Publishing scientific software is a nontrivial problem. I present here, and ask feedback, on the idea to upload the software to arXiv with a presentation paper and use it as an evolving reference.
The situation is the following: I am developing a code that, while still under development, should provide scientific outputs in the coming months. I'd like to cite properly the software in my papers at that point, and not in a hypotethical future where all my wishlist has been satisfied. I would like to cite it as it is used, and would like a "single point of citation" for the lifetime of the code.
Many people have already thought about this issue. See the recent Software Credit Workshop, the related blog post by Martin Fenner, Mick Watson's blog, Gaël Varoquaux's blog, Titus Brown's blog and probably many others. There are several old and new solutions to publish software:
- Paper: Publishing a software paper in a computing oriented journal. In physics, a well-known venue is Computer Physics Communications for instance.
- Web page: Setup a web page for your software and link to the source (a tarball, a version control system, etc).
- Crazy (in a good sense): Launching a new journal
- Zenodo/GitHub: Obtain a DOI for your GitHub-hosted code via Zenodo, as presented here
Here are my criteria:
- Open-access (by principle).
- Low or inexistant author charges (pragmatic condition).
- Provides a single citable reference point for the software and its updates. Be explicit on the version, though.
- Allows more than "just" the code. That is, I would like to document the first release by an extended note, similar to what would be found in a traditional software paper.
Let us review the propositions above:
- Paper: Only allows one version. Also, is probably paywalled or expensive through publication fees.
- Web page: Hard to cite. Likely not persistent enough.
- Crazy: Experience shows that it is not realistic, at least now.
- Zenodo/GitHub: One DOI per version. Also, the DOI points to an exact reproduction of the source repository. It is thus rather inflexible.
The arXiv identifier is, I believe, stable and citable. One can attach a tarball of code with the paper and it is possible to update a paper with newer versions, allowing for update to the software in a simple form: v1, v2, etc. As far as journal are concerned, The Journal of Open Research Software has reasonable fees and allows to distribute the code via GitHub. I don't know how they handle software revisions though.
Advice and comments welcome!