# Create software deposit in HAL

Morane Gruenpeter, Jozefina Sadowska, Estelle Nivault, Alain Monteil

► To cite this version:

Morane Gruenpeter, Jozefina Sadowska, Estelle Nivault, Alain Monteil. Create software deposit in HAL: User guide and best practices. [Technical Report] Inria; CCSD; Software Heritage. 2022. hal-01872189v2

HAL Id: hal-01872189

https://inria.hal.science/hal-01872189v2

Submitted on 13 Apr 2022

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
# Déposer le code source d'un logiciel
dans HAL

## Bonnes pratiques et guide utilisateur

Version 2.0 (mars 2022)

### Auteurs :

* Morane Gruenpeter [morane@softwareheritage.org](mailto:morane@softwareheritage.org)

* Jozefina Sadowska [jozefina.sadowska@inria.fr](mailto:jozefina.sadowska@inria.fr)

* Estelle Nivault [estelle.nivault@inria.fr](mailto:estelle.nivault@inria.fr)

* Alain Monteil [alain.monteil@inria.fr](mailto:alain.monteil@inria.fr)

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

HAL
open science

CCSD...

Inria

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

Software Heritage
# Create software deposit in HAL

## User guide and best practices

Version 2.0 (March 2022)

### Authors :

* Morane Gruenpeter
  morane@softwareheritage.org

* Jozefina Sadowska
  jozefina.sadowska@inria.fr

* Estelle Nivault
  estelle.nivault@inria.fr

* Alain Monteil
  alain.monteil@inria.fr

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

CCSD...

Inria

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

Software Heritage
<figure><img src="image_3.png" /><figcaption># Table de matières: Dépôt logiciel sur HAL</figcaption></figure>
# Table of contents: Create software deposit in HAL

## Introduction

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

## Checklist

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

## Chapter 1: Prepare your source code

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

Local method: `.zip` / `.tar.gz`

## Chapter 2: Deposit local source code archive to HAL

SWHID method: with the SoftWare Heritage ID

## Chapter 3: Deposit SoftWare Heritage ID (SWHID) with metadata

## Chapter 4: behind the scenes - the moderation process

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

## Chapter 5: The deposit publication and exports

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

## References
# Introduction: Pourquoi déposer sur HAL?

★ **Archiver** le logiciel sur HAL et sur SWH

○ Grande visibilité aux logiciels dans une démarche de science ouverte

○ Archivage pérenne, en transférant votre code vers Software Heritage, l'archive universelle du code source

★ **Identifier**

○ les objets avec un **SWHID** (SoftWare Heritage Identifier)

○ la notice et la citation avec un **HAL-ID**

★ **Décrire** le logiciel avec des métadonnées qui sont vérifiées

○ Modération des métadonnées par l'équipe des documentalistes

★ **Citer** le dépôt avec une citation complète

○ Différents **formats d'export** pour faciliter la citation

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

Trois piliers de la Science Ouverte, Software Heritage CC-By 4.0 2019
# Introduction: why deposit on HAL?

★ **Archive** software in HAL and in SWH

○ Better **visibility** for software in open science context

○ **Long term preservation** HAL and SWH have a long term preservation service

★ Identify

○ the software artifacts with a **SWHID** (Software Heritage Identifier)

○ the metadata record and citation with the **HAL-ID**

★ Describe source code with verified metadata

○ **Moderation** and control of the metadata by librarians and/or curators

★ Cite the software deposit with a complete citation

○ Several **exports format** make it easier for citation

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

The three pillars of Open Science, Software Heritage CC-By 4.0 2019
# Introduction: Quel objet logiciel déposer sur HAL?

* Le **code source** d'un logiciel (ne pas déposer les exécutables)

* Le logiciel qui est développé dans un **milieu académique**

* Seuls **les créateurs/auteurs** du logiciel ou leurs représentants peuvent déposer un logiciel sur HAL

## Cas d'utilisations

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

Je **développe** mes logiciels **localement** et je les partage sur mon **site web** personnel ou institutionnel

**Dépôt source: déposer.zip/.tar.gz**

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

Je **développe** mes logiciels sur une **plateforme collaborative** (type GitHub, GitLab, Bitbucket...)

**Dépôt SWHID: déposer métadonnées et SWHID**
# Introduction: What software object to deposit in HAL?

* The **source code** of the software (not compatible for executables)

* Software that was developed in **academia** for research purposes

* Only the software **creators/authors** of the software or their representatives can deposit software in HAL

## Use cases

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

I develop my software **locally**

And I share my code on my personnel website or my institution's website

**Local method:** deposit.zip/.tar.gz

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

I develop my software on a **collaborative plateforme** using a **version control system** (on GitHub, GitLab, Bitbucket...)

**SWHID method:** deposit SWHID with metadata
# Introduction: Les étapes du dépôt logiciel

→ Dépôt sur HAL

◆ dépôt source ou dépôt SWHID

→ Validation du formulaire par le contributeur

→ Dépôt en cours de **modération**

◆ **Dialogue** entre contributeur et
modérateur

→ **Validation** du dépôt en modération

→ Dépôt **publié sur HAL** et **transfert vers SWH**

→ Formats d'exports

◆ Citation

◆ BibTeX

◆ Codemeta.json

◆ TEI
Introduction: The deposit steps

-> Deposit on HAL

◆ Local method or the SWHID method

-> Validation of the form by the contributor

-> Deposit in progress waiting for verification

◆ **Dialogue** between contributor and moderator

-> **Validation** of the deposit by the moderator

-> Deposit **published on HAL** and **transfer to SWH**

-> Export formats

◆ Citation

◆ BibTeX

◆ codemeta.json

◆ TEI
# Checklist par cas d'utilisation

Dépôt source: déposer.zip/.tag.gz

1. Préparer le logiciel (localement)

- [ ] Fichiers AUTHORS, LICENSE & README
- [ ] Compresser les documents en .zip / .tar.gz

2. Déposer l'archive compressée

3. Compléter les métadonnées

- [ ] Choisir le type de dépôt
- [ ] Ajouter des métadonnées générales
- [ ] Ajouter des métadonnées spécifiques aux logiciels
- [ ] Renseigner les auteurs
- [ ] Valider le dépôt

Dépôt SWHID: déposer métadonnées et SWHID

1. Préparer le logiciel (sur un code repository)

- [ ] Fichier AUTHORS, LICENSE & README
- [ ] Fichier codemeta.json
- [ ] Save code now sur Software Heritage
- [ ] Choisir un Software Heritage IDentifier (SWHID)

2. Déposer le lien (SWHID) vers le contenu

3. Compléter les métadonnées

- [ ] Ajouter le domaine
- [ ] Contrôler les entrées codemeta
- [ ] Compléter des métadonnées
- [ ] Renseigner les auteurs
- [ ] Valider le dépôt
# Checklist depending on use case

**Local method: deposit.zip/.tar.gz**

1. Prepare your source code (locally)

☐ AUTHORS, LICENSE & README files

☐ Compress documents into .zip/.tar.gz

2. Deposit compressed archive

3. Complete metadata

☐ Choose deposit type

☐ Add generic metadata

☐ Add software specific metadata

☐ Add authors

☐ Validate deposit

**SWHID method: deposit SWHID with metadata**

1. Prepare your source code (in code repository)

☐ AUTHORS, LICENSE & README files

☐ Codemeta.json file

☐ Save code now on Software Heritage

☐ Choose Software Heritage IDentifier (SWHID)

2. Deposit SWHID in HAL interface

3. Complete metadata

☐ Add domain

☐ Control entries from codemeta

☐ Add authors

☐ Validate deposit
# Chapitre 1: Préparer le code source pour archivage
# Chapter 1: Prepare the source code for archival
# 1.1 Préparer le logiciel

## 1.1.1 Ajouter les fichiers suivants :

Ces éléments sont vérifiés par les modérateurs
- README
- AUTHORS
- LICENSE (à choisir avec les titulaires des droits patrimoniaux du dit logiciel - [liste de référence SPDX](https://spdx.org/))

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

talon
Dossier - 472 Ko

## 1.1.2 Dépôt source: créer une archive compressée .zip ou .tar.gz

Nommer de préférence avec le nom du logiciel et sa version

## 1.1.3 Dépôt SWHID: utiliser votre système de contrôle de version

Dépôt source: déposer .zip / .tar.gz

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

talon-source.zip
Archive dans un fichier ZIP - 247 Ko

talon

test

talon

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

setup.py

script

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

environment.yml

doc

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

README.md

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

LICENSE

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

CHANGELOG.rst

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

AUTHORS.md

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

Mise à jour du contenu sur le système de contrôle de version

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

Dépôt SWHID : déposer métadonnées et SWHID
# 1.1 Prepare your code

### 1.1.1 Add the following files :

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

README

AUTHORS

LICENSE (Choose with the right holders of the software - Here you can find the SPDX reference list of licenses)

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

talon
Dossier - 472 Ko

### 1.1.2 Local method: create a compressed archive .zip ou .tar.gz

It is preferable to name the compressed file with the software name and version number

### 1.1.3 SWHID method: use your version control system

**local method: deposit .zip / .tar.gz**

talon

test

talon

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

setup.py

script

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

environment.yml

doc

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

README.md

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

LICENSE

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

CHANGELOG.rst

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

AUTHORS.md

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

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

talon-source.zip
Archive dans un fichier ZIP - 247 Ko

ZIP

Updating content on the version control system

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

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

**SWHID method: deposit SWHID with metadata**
# 1.2 Fichier README

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

## Obligatoire:

* Nom du logiciel / projet

* Description du projet

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

## Recommandé:

* Site du projet

* lien vers la documentation

* Contact & support

* Liste des fonctionnalités

* Environnement de développement

* build, installation, requirements

* comment exécuter le code

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

## Possible:

* Usage - comment utiliser le code

* Nouvelles récentes du projet

* Visuels du logiciel

This is Python version 3.8.0 alpha 0
==========================================

```
.. image:: https://travis-ci.org/python/cpython.svg?branch=master
  :alt: CPython build status on Travis CI
  :target: https://travis-ci.org/python/cpython
```

```
.. image:: https://ci.appveyor.com/api/projects/status/4mewla93xdkbf5ua/branch/master?svg=true
  :alt: CPython build status on Appveyor
  :target: https://ci.appveyor.com/project/python/cpython/branch/master
```

```
.. image:: https://dev.azure.com/python/cpython/_apis/build/status/Azure%20Pipelines%20CI?branchName=master
  :alt: CPython build status on Azure DevOpss
  :target: https://dev.azure.com/python/cpython/_build/latest?definitionId=4&branchName=master
```

```
.. image:: https://codecov.io/gh/python/cpython/branch/master/graph/badge.svg
  :alt: CPython code coverage on Codecov
  :target: https://codecov.io/gh/python/cpython
```

```
.. image:: https://img.shields.io/badge/zulip-join chat-brightgreen.svg
  :alt: Python Zulip chat
  :target: https://python.zulipchat.com
```

Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Python Software Foundation. All rights reserved.

See the end of this file for further copyright and license information.

```
.. contents::
```

General Information

------------------

* Website: https://www.python.org

* Source code: https://github.com/python/cpython

* Issue tracker: https://bugs.python.org

* Documentation: https://docs.python.org

* Developer's Guide: https://devguide.python.org/

Contributing to CPython

------------------

For more complete instructions on contributing to CPython development, see the 'Developer Guide'.

```
.. _Developer Guide: https://devguide.python.org/
```

Using Python

------------------

Installable Python kits, and information about using Python, are available at `python.org_.
1.1.1 README file

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

★ Mandatory:

○ Software / project name

○ Description of the software

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

★ Recommended:

○ Website

○ Link to the documentation

○ Contact & support

○ List of functionalities

○ Development environment

■ build, installation, requirements

■ How to execute the code

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

★ Possible:

○ Usage - How to use the code

○ News about the project

○ Visuals

This is Python version 3.8.0 alpha 0
=====================================
.. image:: https://travis-ci.org/python/cpython.svg?branch=master
:alt: CPython build status on Travis CI
:target: https://travis-ci.org/python/cpython

.. image:: https://ci.appveyor.com/api/projects/status/4mewla93xdkbf5ua/branch/master?svg=true
:alt: CPython build status on Appveyor
:target: https://ci.appveyor.com/project/python/cpython/branch/master

.. image:: https://dev.azure.com/python/cpython/_apis/build/status/Azure%20Pipelines%20CI?branchName=master
:alt: CPython build status on Azure DevOpss
:target: https://dev.azure.com/python/cpython/_build/latest?definitionId=4&branchName=master

.. image:: https://codecov.io/gh/python/cpython/branch/master/graph/badge.svg
:alt: CPython code coverage on Codecov
:target: https://codecov.io/gh/python/cpython

.. image:: https://img.shields.io/badge/zulip-join chat-brightgreen.svg
:alt: Python Zulip chat
:target: https://python.zulipchat.com

Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Python Software Foundation. All rights reserved.

See the end of this file for further copyright and license information.

.. contents::

General Information
-------------------

- Website: https://www.python.org
- Source code: https://github.com/python/cpython
- Issue tracker: https://bugs.python.org
- Documentation: https://docs.python.org
- Developer's Guide: https://devguide.python.org/

Contributing to CPython
--------------------

For more complete instructions on contributing to CPython development, see the `Developer Guide`_.

.. _Developer Guide: https://devguide.python.org/

Using Python
-------------

Installable Python kits, and information about using Python, are available at `python.org_`_.
## 1.3 Fichier AUTHORS

* Identifier les personnes à créditer sur le code source et sur le dépôt

* Les autres collaborateurs peuvent être signalés séparément dans une liste "contributors" sur le même fichier ou dans un fichier séparé

* Noter tous les auteurs du logiciel dans votre code source

* Les personnes qui sont notées dans HAL et sur le fichier AUTHORS, ont les droits de créateurs sur le code source

* Vous pouvez utiliser un des noms suivants pour le fichier: AUTHORS, AUTHORS.md, AUTHOR.rst, CONTRIBUTORS, CREDITS, CITATION, CITATION.cff, etc.

<figure><img src="image_20.png" /></figure>
### 1.1.2 AUTHORS files

* Identify the people involved in the creation of the software who should be credited for the creative work

* Others contributors can be identified in a separate file or list, called "contributors"

* Note all the authors in the file and on the form

* The people that are noted on the HAL form and on the AUTHORS file, have authors right on the source code

* You can use the following file names for this file: AUTHORS, AUTHORS.md, AUTHOR.rst, CONTRIBUTORS, CREDITS, CITATION, CITATION.cff, etc.

<figure><img src="image_27.png" /></figure>
## 1.4 Fichier LICENSE

* Avant tout dépôt de code source, vous devez réfléchir à la licence que vous souhaitez pour votre code.

* Chez INRIA, votre CPPI est votre interlocuteur pour discuter de ces questions.

* Consulter les personnes en charge dans votre établissement

* Si vous avez plus d'une licence, créez un répertoire LICENSES/ avec toutes les licences

* Noter la/les licence/s utilisé/s dans le code source dans les métadonnées

* La cohérence entre la licence dans le formulaire sur HAL et dans le code est vérifié par les modérateurs

* Le déposant est responsable de la compatibilité entre licences (entre le code déposé et ses dépendances)

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

Ressources pour examiner différentes licences:

* https://choosealicense.com/

* https://reuse.software/
### 1.1.3 Fichier LICENSE

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

Before depositing the source code, you must choose a license with the appropriate rights owner

* at INRIA, the CPPI is the best service to discuss the license question

* Consult the appropriate service in your institution

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

If you have more than one license create a `LICENSE/` directory with all licenses

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

Note the same license/s in the HAL form's metadata

* The compatibility between the license in the form and in the code is verified by the moderators

* The **contributor is responsible** of the compatibility between licenses (between code and dependencies)

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

Resources to help review different licenses & practices:

* https://choosealicense.com/

* https://reuse.software/
# Chapitre 2:
Dépôt des fichiers sources

Dépôt source: déposer.zip/.tar.gz
Chapter 2:
Deposit local source code

local method: deposit.zip/.tar.gz
## Le dépôt source

→ une **archive** compressée contenant du code source (majoritairement des fichiers textes)

→ une collection de **métadonnées**
* métadonnées générales
* métadonnées spécifiques

<figure><img src="image_22.png" /></figure>
The local method deposit

→ One compressed **archive** containing source code (mostly text files)

→ A collection of **metadata**

♦ Generic metadata

♦ Software specific
metadata

<figure><img src="image_32.png" /></figure>
## 2.1: Déposer les fichiers

Depuis l'onglet "Déposer", sélectionnez l'archive compressée ou Glissez/Déposez

Il n'est pas possible d'ajouter plusieurs archives ou plusieurs fichiers distincts.

Le .zip doit contenir tous les fichiers et ne doit pas être décompressé avant la validation.

Le .zip ne doit pas contenir un autre .zip

<figure><img src="image_23.png" /></figure>
## 2.1: Deposit the files

After logging in into HAL, use the "submit" tab, Drag and drop or click to upload compressed file.

Note that it is not possible for the software deposit to submit more than one compressed file.

The archive (`.zip`, `.tar.gz`) MUST contain all files and shouldn't be decompressed before validation.

The archive (`.zip`, `.tar.gz`) shouldn't contain another archive (`.zip`, `.tar.gz`).

<figure><img src="image_33.png" /></figure>
## 2.2: Compléter les métadonnées

→ **2.2.1 Choisir le type de document* :**

**Logiciel**

*Pour afficher la liste complète des métadonnées cocher la case*

*Les métadonnées obligatoires sont indiqués par un *.*

→ **2.2.2 Ajouter les métadonnées générales :**

- Nom*

- Domaine*

- Description (Il est recommandé d'avoir une description cohérente avec le contenu du fichier README)

- Mots-clés

- Identifiants

- Données associées

- Publications associées

- Date de production/écriture

- Editeur

- Institution, projets (ANR/ERC), etc.

<figure><img src="image_24.png" /></figure>
## 2.2: Complete the metadata

### 2.2.1 Choose the document type* :

**Software**

To see the full list of properties check the checkbox on the top right

Mandatory properties are identified with a star (*)

### 2.2.2 Add the general properties :

- Title*

- Domain*

- Description (Il est recommandé d'avoir une description cohérente avec le contenu du fichier README)

- Keywords

- Identifiers

- Related data

- Associated publications

- Production date

- Publisher

- Institution

<figure><img src="image_34.png" /></figure>
2.2.3 Ajouter les métadonnées spécifiques :

- Licences* (s'appuie sur le référentiel SPDX, il est aussi possible de saisir une licence qui ne figure pas dans cette liste)

- Langage de programmation

- Code repository

- Platform/OS

- Version

- Etat du développement

- Outils de développement

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

### 2.2.3 Add software specific metadata :

- Licenses* (based on the SPDX reference list, it is also possible to enter a license that is not in this list)

- Programming language

- Code repository

- Platform/OS - environment

- Version

- Development status

- Runtime Platform

<figure><img src="image_36.png" /></figure>
## 2.3 Compléter les données auteur(s)

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

Ajouter un auteur

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

Ajouter une affiliation (au moins un auteur doit être affilié)

- Il est possible d'ajouter plusieurs auteurs et de leur associer une fonction (développement, maintenance, design, architecture, débogage, documentation, test, support, management).

- Il est nécessaire de renseigner le/les auteurs qui sont mentionnés dans le fichier AUTHORS.

- Vous pouvez ajouter un fichier CONTRIBUTORS pour les personnes qui ne sont pas auteurs dans la notice.

<figure><img src="image_28.png" /></figure>
## 2.3 Complete information about author(s)

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

Add the author(s)

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

Add affiliation for each author (at least one author must be affiliated)

- It is possible to add different authors and add a role (development, maintenance, design, architecture, debugging, documentation, test, support, management).

- It is necessary to add all authors from the AUTHORS file.

- You may add a CONTRIBUTORS file for people who participated in the creation of the software but are not considered authors.

<figure><img src="image_39.png" /></figure>
## 2.4 Valider le dépôt

→ Valider le transfert et contribuer au patrimoine logiciel constitué par Software Heritage

→ Accepter les conditions

→ Cliquer sur Déposer

<figure><img src="image_29.png" /></figure>
## 2.4 Submit the deposit

→ Accept transfer to Software Heritage and contribute to the largest software source code archive in the world.

→ Accept HAL's conditions

→ Click on “Upload” to submit

<figure><img src="image_40.png" /></figure>
# Chapitre 3
Dépôt des métadonnées avec SWHID

**Dépôt SWHID : déposer métadonnées et SWHID**
Chapter 3:
Deposit SoftWare Heritage ID (SWHID) with
metadata

SWHID method: deposit SWHID with metadata
## Un dépôt SWHID

Le dépôt SWHID peut être fait avec:

* un **SWHID** fourni par Software Heritage. Celui-ci référence le code source archivé.

* une collection de **métadonnées**

* **Charger** les métadonnées à partir d'un **SWHID**. Les informations sur un fichier **codemeta.json** permettront de remplir automatiquement votre dépôt.

* **Remplir** le formulaire avec des métadonnées.

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

<footnote>*VCS = Version Control System</footnote>
### The SWHID deposit

* The SWHID deposit is composed by:

* A SoftWare Heritage identifier (SWHID) that can be found on the Software Heritage archive or calculated locally. The SWHID references the source code.

* A metadata collection

* the metadata can be **pulled** into the form using the **SWHID**. The properties available on **codemeta.json** file in the root directory of your code can be extracted automatically on HAL's form.

* **filling** the form with metadata properties to complete the form

<figure><img src="image_41.png" /></figure>
## 3.1 Préparation du logiciel

Avant le dépôt sur HAL, préparez le code source du logiciel sur la plateforme de développement (GitHub, Gitlab, etc.).

Ces éléments sont vérifiés après par les modérateurs.

### 3.1.1 ajoutez les fichiers suivants sur le `code repository`:

- README

- AUTHORS

- LICENSE (à choisir avec les titulaires des droits patrimoniaux du dit logiciel - [liste de référence](https://www.creativeCOMMONS.org/licenses/by-sa/3.0/))

- codemeta.json - facultatif mais pratique car les métadonnées sont ajoutées dans le formulaire HAL automatiquement en utilisant le SWHID approprié

<figure><img src="image_31.png" /></figure>
## 3.1 Prepare the source code

Before depositing on HAL you must prepare your source code on the collaborative development platform (GitHub, Gitlab, etc.).

The following elements are verified by a moderator

3.1.1 Add the following files to your source code and push to your `code repository`:

- README (see section 1.1.1 README file)

- AUTHORS (see section 1.1.2 AUTHORS files)

- LICENSE (see section 1.1.3 Fichier LICENSE)

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

- `codemeta.json` - isn't mandatory but useful to complete the form especially when using the SWHID method.
### 3.1.2 Pourquoi CodeMeta ?

* Un vocabulaire qui étend le vocabulaire `schema.org`

* https://codemeta.github.io/terms/

* Une **communauté académique**

* Une **table de correspondances** qui permet de traduire plusieurs ontologies/vocabulaires vers CodeMeta

#### Outil pour créer un codemeta.json

### CodeMeta generator

Most fields are optional. Mandatory fields will be highlighted when generating
Codemeta.

The software itself

Name

My Software

the software title

Description

My Software computes ephemerides and orbit propagation. It has been developed
from early '80.

Creation date

YYYY-MM-DD

First release date

YYYY-MM-DD

Pour créer facilement un fichier codemeta.json utiliser
l'outil en ligne

<figure><img src="image_32.png" /></figure>
### 3.1.2 Why CodeMeta ?

* A vocabulary extending `schema.org`

* https://codemeta.github.io/terms/

* An **academic community**

* A **crosswalk table** enabling translations between different ontologies/vocabularies to CodeMeta

#### Tool to create a codemeta.json file

#### CodeMeta generator

Most fields are optional. Mandatory fields will be highlighted when generating
CodeMeta.

The software itself

Name

My Software

the software title

Description

My Software computes ephemerides and orbit propagation. It has been developed
from early '80.

Creation date

YYYY-MM-DD

First release date

YYYY-MM-DD

To create easily a codemeta.json file use the [online tool](#)

➤ [You can contribute here](#)
### 3.1.3 Fichier CodeMeta: un exemple

```json
{
    "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
    "@type": "SoftwareSourceCode",
    "license": "https://spdx.org/licenses/AGPL-3.0",
    "codeRepository": "https://github.com/moranegg/AffectationRO",
    "dateCreated": "2014-01-01",
    "dateModified": "2019-06-26",
    "name": "AffectationRO- The assignment problem",
    "version": "1.0.0",
    "description": "A java implementation for The Assignment Problem a distributed system as a set of processors that can perform tasks (or processes) in parallel. We therefore consider a set of m processors, each equipped with a certain amount of random access memory (RAM).\\r\\n We associate a cost to pay to perform this task on this processor, and each pair of tasks is associated with a communication cost. The Assignment problem works on minimizing the cost and maximizing the tasks performed.",
    "applicationCategory": "info",
    "releaseNotes": "First release with GLPK, in Beta testing",
    "developmentStatus": "concept",
    "keywords": [
        "distributed systems",
        "glpk",
        "optimisation",
        "OR"
    ],
    "programmingLanguage": [
        "Java"
    ],
    "author": [
        {
            "@type": "Person",
            "@id": "https://orcid.org/0000-0002-9777-5560",
            "givenName": "Morane",
            "familyName": "Gruenpeter",
            "email": "morane.gg@gmail.com",
            "affiliation": {
                "@type": "Organization",
                "name": "Software Heritage"
            }
        }
    ]
}
```
### 3.1.3 CodeMeta file: an example

```json
{
    "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
    "@type": "SoftwareSourceCode",
    "license": "https://spdx.org/licenses/AGPL-3.0",
    "codeRepository": "https://github.com/moranegg/AffectationRO",
    "dateCreated": "2014-01-01",
    "dateModified": "2019-06-26",
    "name": "AffectationRO- The assignment problem",
    "version": "1.0.0",
    "description": "A java implementation for The Assignment Problem a distributed system as a set of processors that can perform tasks (or processes) in parallel. We therefore consider a set of m processors, each equipped with a certain amount of random access memory (RAM).\\r\\n We associate a cost to pay to perform this task on this processor, and each pair of tasks is associated with a communication cost. The Assignment problem works on minimizing the cost and maximizing the tasks performed.",
    "applicationCategory": "info",
    "releaseNotes": "First release with GLPK, in Beta testing",
    "developmentStatus": "concept",
    "keywords": [
        "distributed systems",
        "glpk",
        "optimisation",
        "OR"
    ],
    "programmingLanguage": [
        "Java"
    ],
    "author": [
        {
            "@type": "Person",
            "@id": "https://orcid.org/0000-0002-9777-5560",
            "givenName": "Morane",
            "familyName": "Gruenpeter",
            "email": "morane.gg@gmail.com",
            "affiliation": {
                "@type": "Organization",
                "name": "Software Heritage"
            }
        }
    ]
}
```
## 3.2 Sauvegarder le code sur Software Heritage

https://archive.softwareheritage.org/

### 3.2.1 Vérifier si l'archive est sur SWH et la mettre à jour

<figure><img src="image_33.png" /></figure>
## 3.2 Save your code on Software Heritage

https://archive.softwareheritage.org/

### 3.2.1 Verify if your code repository and the specific version you want to submit are already in Software Heritage

<figure><img src="image_43.png" /></figure>
3.2.2 Si le code n'est pas sur Software Heritage - **Soumettre** le code repository avec le **Save Code Now**:

https://save.softwareheritage.org/

<figure><img src="image_34.png" /></figure>
### 3.2.2 If your code isn't in Software Heritage- Submit the code repository url on the Save Code Now:

https://save.softwareheritage.org/

<figure><img src="image_44.png" /></figure>
## 3.3 Choisir un SWHID sur l'archive Software Heritage

<figure><img src="image_35.png" /></figure>
## 3.3 Choose a SWHID on the Software Heritage archive

<figure><img src="image_45.png" /></figure>
## 3.4 Déposer SWHID - la référence vers le contenu

* Mettre le SWHID sur le formulaire HAL

* préférer un SWHID avec contexte (pour garder le lien vers l'historique de développement)

* Si un codemeta.json existe dans le code source - la plateforme HAL pourra récupérer les métadonnées automatiquement

* Vérifier et compléter les métadonnées

* vérifier les métadonnées insérées

* compléter les métadonnées manquantes

* choisir le domaine

* vérifier les auteurs et affiliations

* Valider le dépôt

<figure><img src="image_36.png" /></figure>
## 3.4 Deposit SWHID - the reference to the content

→ Put the SWHID on the HAL form

◆ Prefer a SWHID with contextual information (to keep the link with the contextual information)

◆ If a codemeta.json is present in the root directory of the deposited SWHID - the HAL platform will pull the metadata automatically

→ Verify and complete metadata

◆ Verify inserted metadata

◆ Complete missing metadata

◆ Choose domain

◆ Verify authors and add affiliations

→ Validate deposit

<figure><img src="image_46.png" /></figure>
# Chapitre 4: Le processus de modération
# Chapitre 4:
## Behind the scenes- the moderation process
# Le processus de modération

* Dépôt en cours de modération

* Dialogue entre contributeur et modérateur

* Validation du dépôt en modération

**Guide de bonnes pratiques :**
Morane Gruenpeter, Jozefina Sadowska. La modération d'un dépôt logiciel : Bonnes pratiques et guide pour le modérateur.
[Rapport Technique] Inria; CCSD; Software Heritage. 2018. [hal-01876705](https://hal.inria.fr/01876705)

<figure><img src="image_37.png" /></figure>
## The moderation process

* Deposit in moderation

* Dialogue between contributor and moderator

* Deposit validation in moderation

### Moderation guide :

Morane Gruenpeter, Jozefina Sadowska. La modération d'un dépôt logiciel : Bonnes pratiques et guide pour le modérateur.
[Rapport Technique] Inria; CCSD; Software Heritage. 2018. [hal-01876705](https://hal.inria.fr/01876705)

<figure><img src="image_47.png" /></figure>
Chapitre 5:
La publication et les exports
Chapitre 5:
The deposit publication and exports
## 5.1 Le dépôt en cours de transfert vers SWH

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

Dépôt sources: Pendant cette première phase c'est le dossier zippé avec le code déposé qui est visible depuis Hal - pas de lien avec SWH

<figure><img src="image_39.png" /></figure>
## 5.1 The deposit is transferred to SWH

* The local method deposit is transferred to SWH with:
  * Content
  * Metadata

* The SWHID method deposit is transferred to SWH with:

* Metadata

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

When the local method deposit is transferred to SWH it will be visible on HAL without the link to SWH. When it is ingested by SWH, the link will appear on the deposit
## 5.2 Le dépôt final

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

Pour consulter le contenu
directement sur SWH

Citation et exports
## 5.2 The final deposit

<figure><img src="image_49.png" /></figure>
# 5.3 Les identifiants du dépôt logiciel

## 5.3.1 Référencer avec le SWHID
(SoftWare Heritage Identifiers)

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

* identification de l'objet logiciel

* une empreinte digitale d'une version spécifique

### Nécessaire pour :

* identifier - reproduire

* archiver

## 5.3.2 Citer avec le HAL-ID

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

* identification d'une notice

* métadonnées avec le dépôt

* auteurs et contributeurs sont vérifiés en
modération

### Nécessaire pour :

* créditer les auteurs

* indexer
## 5.3 The identifiers of the software deposit

### 5.3.1 Reference with the SWHID

(SoftWare Heritage Identifiers)

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

archived

swh:1:dir:ec4ae097465d9ea51589537ea94b2ea50e8d134d

* Identification of the software source code artifact

* A digital fingerprint specific source code content

#### Needed to :

* Identify - reproduce

* Archive

### 5.3.2 Cite with the HAL-ID

hal-02309043, version 1

* Identification of the software record

* Metadata of the deposit

* Authors and contributors are verified in the moderation process

#### Needed to :

* Give credit to the authors

* Index
## 5.4 La citation et l'export BibTeX

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

Citation accessible sur la notice

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

Export BibTeX en utilisant le type d'entrée **BibLaTeX** @software ou @softwareversion (si un numéro de version a été renseigné)

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

Export utilisé sur le rapport d'activité scientifique d'Inria depuis 2020.

### Softwares

[38] [SW] M. Frigo, M. Zucchelli, R. Deriche and S. Deslauriers-Gauthier, TALON: Tractograms As Linear Operators in Neuroimaging version 0.3.0, 19th Jan. 2021. HAL: (hal-03116143), URL: https://hal.1.archives-ouvertes.fr/hal-03116143, VCS: https://gitlab.inria.fr/cobcom/talon, SWHID: (swh:1:dir:f25157ad1b13cb20ac3457d4f6756b49ac63d079;origin=https://hal.archives-ouvertes.fr/hal-03116143;visit=swh:1:snp:465d89956196578717f4cb5155e456c279aa6a22;anchor=swh:1:rev:10247a14640a280b9140a27ce003d382d70cccac;path=/).

```json
@softwareversion{frigo:hal-03116143v1,
TITLE = {{TALON: Tractograms As Linear Operators in Neuroimaging}},
AUTHOR = {Frigo, Matteo and Zucchelli, Mauro and Deriche, Rachid and Deslauriers-Gauthier, Samuel},
URL = {https://hal.archives-ouvertes.fr/hal-03116143},
NOTE = {},
YEAR = {2021},
MONTH = Jan,
SWHID =
{swh:1:dir:f25157ad1b13cb20ac3457d4f6756b49ac63d079;origin= hps://hal.archives-ouvertes.fr/hal-03116143;visit=swh:1 :snp:465d89956196578717f4cb5155e456c279aa6a22;anchor=swh:1 :rev:10247a14640a280b9140a27ce003d382d70cccac;path=/ },
VERSION = {0.3.0},
REPOSITORY = {https://gitlab.inria.fr/cobcom/talon},
LICENSE = {MIT License},
KEYWORDS = {diffusion MRI ; dMRI ; tractography ; python ; optimization},
FILE =
{https://hal.archives-ouvertes.fr/hal-03116143/file/talon- source.zip},
HAL_ID = {hal-03116143},
HAL_VERSION = {v1},
}
```
## 5.4 The citation and the BibTeX export

* The citation is accessible on the HAL record

* Export BibTeX using the format **BibLaTeX** @software or @softwareversion (if a version property was submitted)

* Export used in activity reports for scientific outputs at Inria since 2020.

### Softwares

[38] [SW] M. Frigo, M. Zucchelli, R. Deriche and S. Deslauriers-Gauthier, TALON: Tractograms As Linear Operators in Neuroimaging version 0.3.0, 19th Jan. 2021. HAL: (hal-03116143), URL: https://hal.l archives-ouvertes.fr/hal-03116143, VCS: https://gitlab.inria.fr/cobcom/talon, SWHID: (swh:1:dir:f25157ad1b13cb20ac3457d4f6756b49ac63d079;origin=https://hal.archives-ouvertes.fr/hal-03116143;visit=swh:1: snp:465d89956196578717f4cb5155e456c279aa6a22;anchor=swh:1: rev:10247a14640a280b9140a27ce003d382d70cccac;pa th=/).

## HAL's citation format

Matteo Frigo, Mauro Zucchelli, Rachid Deriche, Samuel Deslauriers-Gauthier. TALON: Tractograms As Linear Operators in Neuroimaging. 2021, (swh:1:dir:f25157ad1b13cb20ac3457d4f6756b49ac63d079;origin=h tps://hal.archives-ouvertes.fr/hal-03116143;visit=swh:1:snp:465d89 956196578717f4cb5155e456c279aa6a22;anchor=swh:1:rev:10247 a14640a280b9140a27ce003d382d70cccac;path=/). (hal-03116143)

@softwareversion{frigo:hal-03116143v1, TITLE = {{TALON: Tractograms As Linear Operators in Neuroimaging}}, AUTHOR = {Frigo, Matteo and Zucchelli, Mauro and Deriche, Rachid and Deslauriers-Gauthier, Samuel}, URL = {https://hal.archives-ouvertes.fr/hal-03116143}, NOTE = {}, YEAR = {2021}, MONTH = Jan, SWHID = {swh:1:dir:f25157ad1b13cb20ac3457d4f6756b49ac63d079;origin =https://hal.archives-ouvertes.fr/hal-03116143;visit=swh:1: snp:465d89956196578717f4cb5155e456c279aa6a22;anchor=swh:1: rev:10247a14640a280b9140a27ce003d382d70cccac;path=/}, VERSION = {0.3.0}, REPOSITORY = {https://gitlab.inria.fr/cobcom/talon}, LICENSE = {MIT License}, KEYWORDS = {diffusion MRI ; dMRI ; tractography ; python ; optimization}, FILE = {https://hal.archives-ouvertes.fr/hal-03116143/file/talon-source.zip}, HAL_ID = {hal-03116143}, HAL_VERSION = {v1}, }
Références

❖ Y. Barborini, R. Di Cosmo, Antoine R. Dumont, M. Gruenpeter, B. Marmol, A. Monteil, J. Sadowska.. La création du nouveau type de dépôt scientifique - Le logiciel. *ISO 2018 - 7es journées Science Ouverte Couperin : 100 % open access : initiatives pour une transition réussie*, Jan 2018, Paris, France. 2018. [hal-01688726](https://hal.inra.fr/01688726)

❖ R. Di Cosmo, M. Gruenpeter, B. Marmol, A. Monteil, L. Romary, J. Sadowska. *Curated Archiving of Research Software Artifacts: lessons learned from the French open archive*. IJDC. 2020 [10.2218/ijdc.v15i1.698](https://doi.org/10.2218/ijdc.v15i1.698). [hal-02475835](https://hal.inra.fr/02475835)

❖ R. Di Cosmo, M. Gruenpeter, S. Zacchiroli *Referencing Source Code Artifacts: a Separate Concern in Software Citation*, CiSE, IEEE, pp.1-9. 2020. [10.1109/MCSE.2019.2963148](https://doi.org/10.1109/MCSE.2019.2963148) [hal-02446202](https://hal.inra.fr/02446202)

❖ P. Alliez, R. Di Cosmo, B. Guedj, A. Girault, M.-S. Hacid, et al.. Attributing and Referencing (Research) Software: Best Practices and Outlook from Inria. Computing in Science and Engineering, Institute of Electrical and Electronics Engineers, 2019, pp.1-14. [10.1109/MCSE.2019.2949413](https://doi.org/10.1109/MCSE.2019.2949413). [hal-02135891](https://hal.inra.fr/02135891)

❖ A. Monteil, M. Gruenpeter, J. Sadowska, E. Nivault. Garantir la cohérence des données constitue le cœur de notre activité: entretien autour des enjeux descriptifs du code source. *Bulletin des bibliothèques de France*, Ecole Nationale Supérieure des Sciences de l'Information et des Bibliothèques (ENSSIB), 2021, Dossier BBF 2021-1 • Code source : libérer le patrimoine !. [hal-03239502](https://doi.org/10.1109/MCSE.2019.2949413)
References

❖ Y. Barborini, R. Di Cosmo, Antoine R. Dumont, M. Gruenpeter, B. Marmol, A. Monteil, J. Sadowska.. La création du nouveau type de dépôt scientifique - Le logiciel. *ISO 2018 - 7es journées Science Ouverte Couperin : 100 % open access : initiatives pour une transition réussie*, Jan 2018, Paris, France. 2018. [hal-01688726](https://hal.inra.fr/01688726)

❖ R. Di Cosmo, M. Gruenpeter, B. Marmol, A. Monteil, L. Romary, J. Sadowska. *Curated Archiving of Research Software Artifacts: lessons learned from the French open archive*. IJDC. 2020 [10.2218/ijdc.v15i1.698](https://doi.org/10.2218/ijdc.v15i1.698). [hal-02475835](https://hal.inra.fr/02475835)

❖ R. Di Cosmo, M. Gruenpeter, S. Zacchiroli *Referencing Source Code Artifacts: a Separate Concern in Software Citation*, CiSE, IEEE, pp.1-9. 2020. [10.1109/MCSE.2019.2963148](https://doi.org/10.1109/MCSE.2019.2963148) [hal-02446202](https://hal.inra.fr/02446202)

❖ P. Alliez, R. Di Cosmo, B. Guedj, A. Girault, M.-S. Hacid, et al.. Attributing and Referencing (Research) Software: Best Practices and Outlook from Inria. Computing in Science and Engineering, Institute of Electrical and Electronics Engineers, 2019, pp.1-14. [10.1109/MCSE.2019.2949413](https://doi.org/10.1109/MCSE.2019.2949413). [hal-02135891](https://hal.inra.fr/02135891)

❖ A. Monteil, M. Gruenpeter, J. Sadowska, E. Nivault. Garantir la cohérence des données constitue le cœur de notre activité: entretien autour des enjeux descriptifs du code source. *Bulletin des bibliothèques de France*, Ecole Nationale Supérieure des Sciences de l'Information et des Bibliothèques (ENSSIB), 2021, Dossier BBF 2021-1 • Code source : libérer le patrimoine !. [hal-03239502](https://doi.org/10.1109/MCSE.2019.2949413)