Software Heritage & HAL

Bertrand Néron

► To cite this version:

Bertrand Néron. Software Heritage & HAL. 2025. pasteur-05425527

HAL Id: pasteur-05425527

https://pasteur.hal.science/pasteur-05425527v1

Submitted on 19 Dec 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
<figure><img src="image_2.png" /></figure>

Software Heritage
THE GREAT LIBRARY OF SOURCE CODE

<figure><img src="image_3.png" /></figure>

HAL
open science

# Saving Research Software
Supporting Open Science
<figure><img src="image_4.png" /></figure>

Research Software Engineer

Bioinformatics and Biostatistics HUB, Institut Pasteur Paris.

unix
python
developer
reproducibility
open source
bioinformatic

<figure><img src="image_5.png" /></figure>
<figure><img src="image_6.png" /></figure>

# Outline

1

- Why to archive your code

2

- What is Software Heritage

3

- How to archive your code

4

- Cite your code

5

- Reference your code

6

- SWH in code lifecycle
# Reproductibility in science

<figure><img src="image_7.png" /></figure>

<table><thead><tr><th>Discipline</th><th>% d'échec d'expériences de collègues</th><th>% d'échec de sa propre expérience</th></tr></thead><tbody><tr><td>Chimie</td><td>90</td><td>60</td></tr><tr><td>Biologie</td><td>80</td><td>60</td></tr><tr><td>Physique et ingénierie</td><td>70</td><td>50</td></tr><tr><td>Médecine</td><td>70</td><td>60</td></tr><tr><td>Géologie et environnement</td><td>60</td><td>40</td></tr></tbody></table>

## HAVE YOU ESTABLISHED PROCEDURES FOR REPRODUCIBILITY?

Among the most popular strategies was having different lab members redo experiments.

<figure><img src="image_8.png" /></figure>

https://fr.wikipedia.org/wiki/Crise_de_la_reproductibilit%C3%A9
<figure><img src="image_9.png" /></figure>

# Software are everywhere in science

Omnipresent in all domains,

They now constitutes a real foundation for science

<figure><img src="image_10.png" /></figure>

The role of software in science: a knowledge graph-based analysis of software mentions in PubMed Central
# The 3 pillars of open science

<figure><img src="image_11.png" /></figure>

> "Non-reproducible single occurrences are of no significance to science."

> — Karl Popper, *The Logic of Scientific Discovery, 1934*

> "Sometimes, when you do not have the software, you do not have the data."

> — Christine Borgman, JNSO 2018

<figure><img src="image_12.png" /></figure>

> "Software should be considered a legitimate and citable product of research." — Software citation principles
<figure><img src="image_13.png" /></figure>

JCIM

JOURNAL OF
CHEMICAL INFORMATION
AND MODELING

ACS EDITORS'
CHOICE

pubs.acs.org/jcim

Viewpoint

# Code Sharing in the Open Science Era

W. Patrick Walters*

<figure><img src="image_14.png" /></figure>

Cite This: *J. Chem. Inf. Model.* 2020, 60, 4417–4420

<figure><img src="image_15.png" /></figure>

Read Online

ACCESS |

<figure><img src="image_16.png" /></figure>

Metrics & More

|

<figure><img src="image_17.png" /></figure>

Article Recommendations

**ABSTRACT:** Many high-profile scientific journals have established policies mandating the release of code accompanying papers that describe computational methods. Unfortunately, the majority of journals that publish papers in Computational Chemistry and Cheminformatics have yet to define such guidelines. This Viewpoint reviews the current state of reproducibility for the field and makes a case for the inclusion of code with computational papers.

<figure><img src="image_18.png" /></figure>
<figure><img src="image_19.png" /></figure>

Source code too often unavailable

* Not publicly available ('code available upon request' **does not work**).

* The code evolve we are not able to find the corresponding version.

* Hosted in the student repository (led to leave).

* The host delete the repository. (Bitbucket removes mercurial support => 250 000 repositories disappear 😞)

* The host disappear. (google code closes => 1,4 million projects disappear 😞)

<figure><img src="image_20.png" /></figure>

It is **necessary** to provide a **long-term** hosting solution (archiving)
<figure><img src="image_21.png" /></figure>

# Should we archive source code like any other data?

## Zenodo

OpenAIRE + CERN

## Figshare

Digital Science

Citable data with a DOI
Automatible archiving from GitHub
# Source code and software are specific data

<figure><img src="image_22.png" /></figure>

> "Source code and software must not be considered as data. They come with specific challenges, practices and recommendations when it comes to sharing and openness."

* Specific metadata (language, requirements, operating system, ...)

* Need to cite parts of a software (a file, specific lines of code, ...)

<figure><img src="image_23.png" /></figure>

The DOI is not suitable for the source codes.

**Software Heritage** is dedicated to the source code. It will ensure availability and traceability of software. To be able to **reproduce** an experiment, knowing the exact version of the software used is essential.

<figure><img src="image_24.png" /></figure>
<figure><img src="image_25.png" /></figure>

# Outline

1

- Why to archive your code

2

- What is Software Heritage

3

- How to archive your code

4

- Cite your code

5

- Reference your code

6

- SWH in code lifecycle
# The Software Heritage mission

<figure><img src="image_26.png" /></figure>

**Collect, preserve, and share** all software that is publicly available in source code form.

We do not make distinctions and collect all software that is publicly available in source code form.

We are building the largest archive of software source code ever assembled. We will **index, organize, make referenceable and accessible** all of this precious heritage.
# International non profit initiative

<figure><img src="image_27.png" /></figure>

## Mirror partners

<figure><img src="image_28.png" /></figure>

Opening 13/12/2023

Italian National Agency for New Technologies,
Energy and Sustainable Economic Development

https://mirror.softwareheritage.enea.it/

<figure><img src="image_29.png" /></figure>

grnet

Opening 09/2025

Networking Research and Education

https://ui.swt.grnet.gr/

## Recognition as Open Science service

<figure><img src="image_30.png" /></figure>

Software Heritage selected for 2024-2027

These supports and financing ensures the **sustainability** of SWH in the **long term**.
# A universal software archive as shared infrastructure

<figure><img src="image_31.png" /></figure>

Cultural Heritage

<figure><img src="image_32.png" /></figure>

Industry

<figure><img src="image_33.png" /></figure>

Research

<figure><img src="image_34.png" /></figure>

Public Administration

<figure><img src="image_35.png" /></figure>

## Software Heritage

### Source files

26,424,588,701

<figure><img src="image_36.png" /></figure>

### Commits

5,565,959,925

<figure><img src="image_37.png" /></figure>

### Directories

20,922,445,389

<figure><img src="image_38.png" /></figure>

### Authors

100,129,189

### Projects

407,803,289

### Releases

117,118,625

*(source 2025/10/23)*

### Bitbucket

2,945,014 origins

<figure><img src="image_39.png" /></figure>

30,276 origins

GitHub

304,358,126 origins

<figure><img src="image_40.png" /></figure>

3,971 origins

<figure><img src="image_41.png" /></figure>

70,620 origins

### launchpad

659,377 origins

<figure><img src="image_42.png" /></figure>

<figure><img src="image_43.png" /></figure>

56,983 origins

<figure><img src="image_44.png" /></figure>

144,806 origins

gitiles

25,065 origins

<figure><img src="image_45.png" /></figure>

493 origins

<figure><img src="image_46.png" /></figure>

354 origins

Maven

853,867 origins

<figure><img src="image_47.png" /></figure>

git

33,359 origins

<figure><img src="image_48.png" /></figure>

96,951 origins

<figure><img src="image_49.png" /></figure>

5,891,360 origins

<figure><img src="image_50.png" /></figure>

2,278,410 origins

<figure><img src="image_51.png" /></figure>

heptapod

1,376 origins

<figure><img src="image_52.png" /></figure>

58,575 origins

<figure><img src="image_53.png" /></figure>

Packagist
# How the archive works

<figure><img src="image_54.png" /></figure>

## Harvest and archive

<figure><img src="image_55.png" /></figure>

* save.softwareheritage.org

* deposit.softwareheritage.org

## Reference (35 billion SWHIDs)

Intrinsic, decentralised, cryptographically
strong identifiers

<figure><img src="image_56.png" /></figure>

## Recognized as standard

* SPDX 2.2, Wikidata

* Global ISO/IEC international standard
<figure><img src="image_57.png" /></figure>

## Outline

1

- Why to archive your code

2

- What is Software Heritage

3

- How to archive your code

4

- Cite your code

5

- Reference your code

6

- SWH in code lifecycle
Archive your code now!

<figure><img src="image_58.png" /></figure>

https://github.com/gem-pasteur/macsyfinder

<figure><img src="image_59.png" /></figure>
# Archive your code now!

<figure><img src="image_60.png" /></figure>

https://archive.softwareheritage.org

<figure><img src="image_61.png" /></figure>

Software Heritage

Archive

<figure><img src="image_62.png" /></figure>

Save code now

Enter a SWHID to resolve or keyword(s) to search for in origin URLs

<figure><img src="image_63.png" /></figure>

Features

<figure><img src="image_64.png" /></figure>

Search

<figure><img src="image_65.png" /></figure>

Downloads

<figure><img src="image_66.png" /></figure>

Save code now

<figure><img src="image_67.png" /></figure>

Add forge now

<figure><img src="image_68.png" /></figure>

Help

You can contribute to extend the content of the Software Heritage archive by submitting an origin save request. To do so, fill the required info in the form below:

Origin type

git

Origin url

https://github.com/gem-pasteur/macsyfinder

Submit

Help

Browse save requests

A "Save code now" request takes the following parameters:
# Archive your code now!

<figure><img src="image_69.png" /></figure>

<figure><img src="image_70.png" /></figure>

Archive

Software Heritage

<figure><img src="image_71.png" /></figure>

## Browse the archive

Enter a SWHID to resolve or keyword(s) to search for in origin URLs

<figure><img src="image_72.png" /></figure>

### Features

<figure><img src="image_73.png" /></figure>

Search

<figure><img src="image_74.png" /></figure>

Downloads

<figure><img src="image_75.png" /></figure>

Save code now

<figure><img src="image_76.png" /></figure>

Add forge now

<figure><img src="image_77.png" /></figure>

Help

<figure><img src="image_78.png" /></figure>

P https://github.com/gem-pasteur/macsyfinder

<figure><img src="image_79.png" /></figure>

<figure><img src="image_80.png" /></figure>

15 January 2024, 14:35:16 UTC

<> Code

<figure><img src="image_81.png" /></figure>

Branches (16)

<figure><img src="image_82.png" /></figure>

Releases (3)

<figure><img src="image_83.png" /></figure>

Visits

<figure><img src="image_84.png" /></figure>

★ Branch: **HEAD**

<figure><img src="image_85.png" /></figure>

2bf72b3 /

<figure><img src="image_86.png" /></figure>

History

<figure><img src="image_87.png" /></figure>

Download

<figure><img src="image_88.png" /></figure>

Save again

<figure><img src="image_89.png" /></figure>

<table><thead><tr><th>File</th><th>Mode</th><th>Size</th></tr></thead><tbody><tr><td>■ .github</td><td></td><td></td></tr><tr><td>■ .gitlab</td><td></td><td></td></tr><tr><td>■ Docker</td><td></td><td></td></tr><tr><td>■ data</td><td></td><td></td></tr><tr><td>■ doc</td><td></td><td></td></tr><tr><td>■ macsypy</td><td></td><td></td></tr><tr><td>■ tests</td><td></td><td></td></tr><tr><td>■ utils</td><td></td><td></td></tr></tbody></table>

https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/gem-pasteur/macsyfinder
Archive from a web browser extension

<figure><img src="image_90.png" /></figure>

<figure><img src="image_91.png" /></figure>

<figure><img src="image_92.png" /></figure>

<figure><img src="image_93.png" /></figure>

The extension supports out of the box

- BitBucket

- GitHub

- GitLab.com and GitLab instances whose domain names is of the form gitlab.*.*

- Gitea instances whose domain names is of the form gitea.*.*

- codeberg.org.
Web Browser extension

<figure><img src="image_94.png" /></figure>

<figure><img src="image_95.png" /></figure>
# Web browser extension

<figure><img src="image_96.png" /></figure>

<figure><img src="image_97.png" /></figure>

<figure><img src="image_98.png" /></figure>
# Archive your code with browser extension

<figure><img src="image_99.png" /></figure>

<figure><img src="image_100.png" /></figure>

the archived copy is uptodate, and clicking on the button opens a tab on the corresponding page of the archive (very practical if you want to get a SWHID permalink)

<figure><img src="image_101.png" /></figure>

the archived copy is not up to date, and clicking on the button triggers a save code now request to update the archive;

right clicking brings you to the page of the last successful archival

<figure><img src="image_102.png" /></figure>

the archived copy is not up to date, and the last try to archive it failed; clicking on the button triggers a save code now request to update the archive,

right clicking brings you to the page of the last archival, that may be failed

<figure><img src="image_103.png" /></figure>

this repository is not found in the archive (at least not from this origin), and clicking on the button triggers a save code now request to archive it for the first time

<figure><img src="image_104.png" /></figure>

you have used up your quota of API calls for the moment, either on the SWH API or on the forge API:

wait a bit before trying again, or get a token to raise the rate limit

<figure><img src="image_105.png" /></figure>

the API requests to Software Heritage did not succeed. This may happen for several reasons:

in most of the cases, the repository you are visiting is private, and hence cannot be archived, an error in the extension
<figure><img src="image_106.png" /></figure>

<figure><img src="image_107.png" /></figure>

Full width

<figure><img src="image_108.png" /></figure>

Software Heritage
Archive

Home

Development

Documentation

Donate

Full width
login

Home

Development

Documentation

Donate

Operational

login

<figure><img src="image_109.png" /></figure>

Welcome to the Software Heritage archive

Search

Enter a SWHID to resolve or string pattern(s) to search for in origin urls

<figure><img src="image_110.png" /></figure>

Only show origins visited at least once

<figure><img src="image_111.png" /></figure>

Filter out origins with no archived content

<figure><img src="image_112.png" /></figure>

Search in metadata (instead of URL)

<figure><img src="image_113.png" /></figure>

visit type:

any

Software Heritage

<figure><img src="image_114.png" /></figure>

Request the addition of a foro

Enter a SWHID to resolve or keyword(s) to search for in origin URLs

<figure><img src="image_115.png" /></figure>

Overview

The long term goal of the Software Heritage project is to ensure that the source code from software projects is replicated as much as possible.

Content

A significant amount of source

It currently includes the follow

Regular crawling

These software origins get con

<figure><img src="image_116.png" /></figure>

Bitbu

2,540,168 0

<figure><img src="image_117.png" /></figure>

26,984 ori

GitHu

206,322,626

<figure><img src="image_118.png" /></figure>

G

2,367 ori

<figure><img src="image_119.png" /></figure>

Full width

<figure><img src="image_120.png" /></figure>

Software Heritage

Archive

Features

<figure><img src="image_121.png" /></figure>

Search

<figure><img src="image_122.png" /></figure>

Downloads

<figure><img src="image_123.png" /></figure>

Save code now

<figure><img src="image_124.png" /></figure>

Add forge now

<figure><img src="image_125.png" /></figure>

Help

Administration

<figure><img src="image_126.png" /></figure>

Request the addition of a foro

Enter a SWHID to resolve or keyword(s) to search for in origin URLs

<figure><img src="image_127.png" /></figure>

"Add forge now" provides a service for Software Heritage users to save a complete forge in the Software Heritage archive by requesting the addition of the forge URL into the list of regularly visited forges.

If you submit an Add Forge Now request, please avoid submitting the forge repositories at the same time in **Save Code Now**, which is designed for the punctual archival of single repositories. We process regularly the Add Forge Now requests, ensuring they will be processed rapidly. If there is a strong deadline due to a risk of source code loss (forge to be closed soon for example), please mention it explicitly in your submission message, so that we will prioritize your request.

Submit a Request

Browse Requests

Help

Forge type*

gitlab

Forge URL*

Supported forge types in software archive.

Remote URL of the forge.

Forge contact name*

Forge contact email*

Name of the forge administrator.

Email of the forge administrator. The given email address will not be used for any

<figure><img src="image_128.png" /></figure>

Search

<figure><img src="image_129.png" /></figure>

Downloads

<figure><img src="image_130.png" /></figure>

Save code now

<figure><img src="image_131.png" /></figure>

Add forge now

<figure><img src="image_132.png" /></figure>

Help

<figure><img src="image_133.png" /></figure>

Home

Development

Documentation

Donate

Operational

<figure><img src="image_134.png" /></figure>

Logged in as bneron, logout
<figure><img src="image_135.png" /></figure>

## Outline

1

- Why to archive your code

2

- What is Software Heritage

3

- How to archive your code

4

- Cite your code

5

- Reference your code

6

- SWH in code lifecycle
<figure><img src="image_136.png" /></figure>

Le SWHID is an intrinsic and persistant identifier

<figure><img src="image_137.png" /></figure>
<figure><img src="image_138.png" /></figure>

Context ensure full traceability

* **file contents**: `swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2`
  points to the content of a file containing the full text of the GPL3 license

* **directories**: `swh:1:dir:d198bc9d7a6bcf6db04f476d29314f157507d505`
  points to a directory containing the source code of the Darktable photography application (4
  may 2017)

* **revisions** (a.k.a commits): `swh:1:rev:309cf2674ee7a0749978cf8265ab91a60aea0f7d`
  points to a commit in the development history of Darktable, dated 16 January 2017, that
  added undo/redo supports for masks

* **releases**; for example, `swh:1:rel:22ece559cc7cc2364edc5e5593d63ae8bd229f9f`
  points to Darktable release 2.3.0, dated 24 December 2016

* **snapshots**; for example, `swh:1:snp:c7c108084bc0bf3d81436bf980b46e98bd338453`
  points to a snapshot of the entire Darktable Git repository taken on 4 May 2017 from GitHub
Context ensure full traceability

<figure><img src="image_139.png" /></figure>

"**lines** qualifier", it is possible to also identify "code fragments",
For example, `swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2;lines=4-6`
pinpoint lines 4 to 6 of the full text of the GPL3 license.

**Fully qualified SWHID** provides all relevant information for placing a software artifact in context.

swh:1:cnt:3b997e8ef2e38d5b31fb353214a54686e72f0870;origin=https://github.com/rdicosmo/parmap;visit=swh:1:snp:25490d451af2414b2a08ece0df643dfdf2800084;anchor=swh:1:rev:db44dc9cf7a6af7b56d8ebda8c75be3375c89282;path=/src/parmap.ml;lines=192-237

pinpoints the **lines 192 to 237** of the core mapping algorithm contained in the file **parmap.ml**,
located in the **src** directory of a **specific revision** of the Parmap project retrieved from
**https://github.com/rdicosmo/parmap**
How to get SWHID?

<figure><img src="image_140.png" /></figure>

<figure><img src="image_141.png" /></figure>
Reference your code

<figure><img src="image_142.png" /></figure>

Reprository url on the forge

https://github.com/gem-pasteur/macsyfinder

The reference of the archive in SWH for the README :

https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://github.com/gem-pasteur/macsyfinder

The reference of the archive in SWH for a scientific paper, with a specific version:

swh:1:dir:2bf72b3c2c51c8bc29b936189f041ac6c63f4551;

origin=https://github.com/gem-pasteur/macsyfinder;

visit=swh:1:snp:bf882353cfdfcef290b12bb0bf0234b202c27f3b;

anchor=swh:1:rev:aae91df1f8ded2e0525610c6e0e6aac51deb261e
<figure><img src="image_143.png" /></figure>

Cite your code, biblatex extension

309 @software {MSF,
310 title={MacSyFinder},
311 author={Sophie Abby, Bertrand Néron},
312 institution={Institut Pasteur Paris, CNRS},
313 license={GPLv3},
314 repository= {https://github.com/gem-pasteur/macsyfinder},
315 abstract = {MacSyFinder is a program to model and detect macromolecular systems, genetic pathways... in protein datasets.},
316 note = {Distributed by Pypi, bioconda, docker}
317 }
318
319 @softwareversion {MSF:2.1.3,
320 crossref={MSF},
321 version={{2.1.3}},
322 date = {2024},
323 license = {GPLv3},
324 hal_id = {hal-04372564},
325 hal_version = {v1},
326 swhid = {swh:1:dir:b7595ff8d8bfbb327f63ae0dc8f33314f46c0996;origin=https://github.com/gem-pasteur/macsyfinder;visit=swh:
1:snp:d01ecf21ed904146f244bad043bf052f2d2f8d0d;anchor=swh:1:rev:1821de180b026abe24043305cbfbdcf5e63d2881}
327 }

<figure><img src="image_144.png" /></figure>

(16) [SW Rel.] Bertrand Néron SOPHIE ABBY, *MacSyFinder* version 2.1.3, 2024. Institut Pasteur Paris, CNRS.
LIC: GPLv3. HAL: `hal-04372564v1`), VCS: https://github.com/gem-pasteur/macsyfinder, SWHID: `swh:1:dir:b7595ff8d8bfbb327f63ae0dc8f33314f46c0996;origin=https://github.com/gem-pasteur/macsyfinder;visit=swh:1:snp:d01ecf21ed904146f244bad043bf052f2d2f8d0d;anchor=swh:1:rev:1821de180b026abe24043305cbfbdcf5e63d2881`.

Documentation: https://www.softwareheritage.org/2020/05/26/citing-software-with-style/
What can be identified with a SWHID?

<figure><img src="image_145.png" /></figure>

<figure><img src="image_146.png" /></figure>
<figure><img src="image_147.png" /></figure>

## Outline

1

- Why to archive your code

2

- What is Software Heritage

3

- How to archive your code

4

- Cite your code

5

- Reference your code

6

- SWH in code lifecycle
# Best practices: beyond the archive

<figure><img src="image_148.png" /></figure>

## Metadata for the humans

* **README**
  https://readme.so/fr/editor

* **AUTHORS**
  Ada Lovelance <ada@programming.org>
  Margaret Hamilton <margaret@nasa.com>

* **LICENSE**
  Open licence compliant with SPDX
  https://choosealicense.com/
  https://reuse.software/

## Metadata for the machines

* **codemeta.json**
  with a generator for the humans :
  CodeMeta Generator
codemeta.json

<figure><img src="image_149.png" /></figure>

<figure><img src="image_150.png" /></figure>

https://codemeta.github.io/codemeta-generator/
<figure><img src="image_151.png" /></figure>

The code

<figure><img src="image_152.png" /></figure>

<figure><img src="image_153.png" /></figure>

Software Heritage
THE GREAT LIBRARY OF SOURCE CODE

Metadata

<figure><img src="image_154.png" /></figure>

<figure><img src="image_155.png" /></figure>
Archive your code in HAL

<figure><img src="image_156.png" /></figure>

<figure><img src="image_157.png" /></figure>
<figure><img src="image_158.png" /></figure>

<figure><img src="image_159.png" /></figure>
<figure><img src="image_160.png" /></figure>

<figure><img src="image_161.png" /></figure>

<figure><img src="image_162.png" /></figure>

Article

<figure><img src="image_163.png" /></figure>

Poster
# Catalog of academic research software

<figure><img src="image_164.png" /></figure>

<figure><img src="image_165.png" /></figure>
# Catalog of academic research software: workflow

<figure><img src="image_166.png" /></figure>

<figure><img src="image_167.png" /></figure>

ref: Actualités du collège Sources et Logiciels, RDA France 4 décembre 2025
# Catalog of academic research software

Once your code is registered in HAL/SWH, for free you will be indexed by the

<figure><img src="image_168.png" /></figure>

<figure><img src="image_169.png" /></figure>
## Outline

<figure><img src="image_170.png" /></figure>

1

- Why to archive your code

2

- What is Software Heritage

3

- How to archive your code

4

- Cite your code

5

- Reference your code

6

- SWH in code lifecycle
<figure><img src="image_171.png" /></figure>

## Take home message

1) Archive your code
https://archive.softwareheritage.org/save/

2) Describe with metadata
**README, LICENSE, AUTHORS, codemeta.json**

3) Reference
**SWHID** rather than DOI, (add context)

4) Cite
Version, release, file, line
Tools in research source code life cycle

<figure><img src="image_172.png" /></figure>

<figure><img src="image_173.png" /></figure>
<figure><img src="image_174.png" /></figure>

<figure><img src="image_175.png" /></figure>

Software Heritage
THE GREAT LIBRARY OF SOURCE CODE

<figure><img src="image_176.png" /></figure>

HAL
open science