2025-2026
Créez une clé SSH en lui mettant une passphrase
Ajoutez la clé publique créée au fichier
$HOME/.ssh/authorized_keys.
Pour éviter de dévoir saisir votre passphrase à chaque utilisation de votre clé, ajoutez votre clé à l’agent SSH :
# Commencer pas tester si l'agent est lancé :
ssh-add -l
# S'il se plaint qu'il n'a pas pu se connecter à l'agent :
eval "$(ssh-agent)"
# Ajoutez votre clé à l'agent :
ssh-add ~/.ssh/votre_cle_priveessh ssh.enseirb-matmeca.fr doit fonctionner (quittez
le shell obtenu)
Configurez dans $HOME/.ssh/config un pont SSH, qui
dit que lorsqu’on souhaite se connecter en SSH à
gitlab.bordeaux-inp.fr, il faut faire passer la connexion
par ssh.enseirb-matmeca.fr :
Host ssh.enseirb-matmeca.fr
IdentityFile ~/.ssh/votre_cle_privee
Host gitlab.bordeaux-inp.fr
ProxyJump ssh.enseirb-matmeca.frDans la configuration de votre compte GitLab, ajoutez votre clé SSH publique (le rond de votre profil tout en haut à droite, Préférences, Clés SSH, Ajouter une nouvelle clé).
login-matrixeirb (en remplaçant
login par votre login ; la présence du login dans le nom du
projet nous aidera pour tard)README.md par votre login.Pas spécifique à Python : PHP, JavaScript, Java, Ruby, Rust, Go, … (mais pas universel non plus).
requirements.txt en Python,
Cargo.toml en Rust, package.json en
JavaScript, Gemfile en Ruby, …).README.md,
créez l’environnement virtuel, installez les dépendances et exécutez le
script d’exemple fourni.À faire en binôme : A va contribuer au dépôt de B.
matrixeirb.py la fonction pour multiplier
la matrice par un scalaire en faisant une typo à un
endroit (et sans ajouter de test, si jamais cette – bonne –
idée vous traverserait l’esprit).git commit --amend), mais
dans ce cas il faut forcer le push (pourquoi ? git push -f
; plus besoin de préciser vers quel remote).README.md.main du dépôt upstream en faisant un rebase.
Attention, cela modifie forcément les commits (pourquoi ?) et nécessite
donc un force-push.main, la mettre à jour avec le dépôt upstream et
ensuite mettre à jour la branche selon la méthode choisie.Note : une autre façon de contribuer à un dépôt et que le propriétaire du dépôt nous ajoute comme membre du dépôt.
Individuellement sur son propre dépôt :
Ajoutez le fichier .gitlab-ci.yml à la racine de
votre dépôt avec le contenu suivant :
tests:
image: python:3.14
script:
- python -V
- pip install -r requirements.txt # pas besoin d'environnement virtuel ici
- # à completer pour exécuter les tests.gitlab-ci.yml.Committez, pushez : explorez dans l’interface web comment la CI est exécutée.
Faites un commit qui casse les tests, committez, pushez : observez comment la CI échoue.
On reprend en binôme :
Individuellement sur son propre dépôt :
black. Ce job sera
différent du job qui exécute les tests.Mettez en place Sphinx pour générer la documentation de votre projet :
sphinx-quickstart doc
> Séparer les répertoires source et de sortie (y/n) [n]: y
> Nom du projet: MatrixEirb
> Nom(s) de(s) l'auteur(s): Toto
> Version du projet []: 0.0.1
> Langue du projet [en]: fr
Construisez la documentation :
sphinx-build -M html doc/source/ doc/build/Ajoutez des docstrings aux deux fonctions du fichier
matrixeirb.py.
Ajoutez à la fin du fichier doc/source/index.rst
(fichier au format reStructuredText) :
.. automodule:: matrixeirb
:members:Modifiez le fichier doc/source/conf.py pour qu’il
contienne :
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[2])) # indique où trouver les modules à documenter
extensions = ['sphinx.ext.autosummary'] # permet de lister automatiquement les fonctions et modules à documenterReconstruisez la documentation et affichez-la.
Ajoutez un job à la CI pour générer la documentation et la rendre disponible à l’adresse https://login.pages.bordeaux-inp.fr/login-pymatrix/
GitLab déploie comme site web ce qui se trouve dans le dossier
public/ de l’artefact du job. On va donc dire
qu’il faut conserver comme artefact le contenu de ce dossier :
artifacts:
paths:
- publiccoverage).