Sharing Code in a Double-blind Way with Software-Heritage
Quentin Guilloteau
2025-10-24
Ok, so, imagine: we want to share some code in out paper, but the venue asks for double-blind review.
There are several ways that we can go about this:
- an anonymous git repository: but requires to create a new user, and we lose the history of the commits
- Zenodo archive: might be a bit annoying for the reviewer to explore the code without having to download the entire archive...
- anonymous4openscience: needs to be on GitHub, and non longevous links
But, there is another (better) way!
Software-Heritage
We will use Software-Heritage to archive our code and then to share it in a longevous way.
An easy way that we can save our repository on Software-Heritage through their web inteface: Save Code Now
After the snapshop will be taken, we will be able to access it and retrive the permalink (on the small red tab on the right side of the screen).

This is what the permalink for sharing a snapshot of a repository on Software-Heritage looks like:
https://archive.softwareheritage.org/swh:1:dir:f9ffa3caea4077a51221cfb18c2929bbc56c7f2a;origin=https://github.com/GuilloteauQ/study-docker-repro-longevity;visit=swh:1:snp:0b338477dcb75d8801fa1a1035558957e33444e4;anchor=swh:1:rev:d685d19a4905dc59f699b508a890cd2fc282adb9

As we can see, there are all the information: URL of the repository, commit authors, commit time, branches, ect. Those are all the information we would like to remove.
Anonymize!
To anonymize, simply remove the everything but the first part of the URL, and you get
https://archive.softwareheritage.org/swh:1:dir:f9ffa3caea4077a51221cfb18c2929bbc56c7f2a
There is nothing more than the code now: no commit information or link to the repository. But still, someone can explore the code in the snapshot.
Integration with LaTeX
To share the anonymize repository in a document, there are two main ways:
-
simply give the anonymize URL
-
integrate with
biblatex
In the following, we will show how to integrate with biblatex.
Can use the biblatex-software package developed by the people at Software-Heritage:
For more information, please refer to the blog post "Citing Software with Style".
We will need to used the package, and to tell biblatex to use it`:
\usepackage[
datamodel=software,
backend=biber
]{biblatex}
\addbibresource{references.bib}
\usepackage{software-biblatex}
Now in the .bib file, we can use the @software type (among many others!) to define links to our repository.
@software{myrepo,
title = {Authors' Code},
author = {Guilloteau, Quentin},
url = {https://archive.softwareheritage.org/swh:1:cnt:e451b603eb672f625ec06ba34550dea1d0388a5f;origin=https://github.com/GuilloteauQ/study-docker-repro-longevity;visit=swh:1:snp:0b338477dcb75d8801fa1a1035558957e33444e4;anchor=swh:1:rev:d685d19a4905dc59f699b508a890cd2fc282adb9;path=/ecg/app/ecg.py},
year = {2025},
swhid = {swh:1:cnt:e451b603eb672f625ec06ba34550dea1d0388a5f;origin=https://github.com/GuilloteauQ/study-docker-repro-longevity;visit=swh:1:snp:0b338477dcb75d8801fa1a1035558957e33444e4;anchor=swh:1:rev:d685d19a4905dc59f699b508a890cd2fc282adb9;path=/ecg/app/ecg.py}
}
In the .tex we can then cite/reference our code with the \cite macro:
The software used in these experiments is available online~\cite{myrepo}.
For the anonymize version, we just need to remove the sensitive information from the swhid and url fields:
@software{myrepo_ano,
title = {Authors' Code},
author = {Anonymous, Authors},
url = {https://archive.softwareheritage.org/swh:1:cnt:e451b603eb672f625ec06ba34550dea1d0388a5f},
year = {2025},
swhid = {swh:1:cnt:e451b603eb672f625ec06ba34550dea1d0388a5f}
}
The snippet above will generate the following:

