datascience_workflow.md

Signaux Faibles - Data Science Workflow

Le but de ce document est de formaliser un mode de travail permettant le développement et la mise en production rapide de nouveaux modèles pour le projet Signaux Faibles.

Git Flow

Nous utilisons une version simplifiée du Git Flow:

main

dev

branches de feature

hotfix

Resumé

Ce schéma résume notre git flow (NB: l'utilisation du terme main est aujourd'hui préféré à celui, plus connoté, de main):

GitFlow simplifié

(Les branches de hotfix partent et poussent dans main).

Conventions de nommage

Le respect de certaines conventions de nommage permet de s'assurer de la bonne santée du projet.

Branches

Pour une nouvelle feature feat/<name_of_feature>

Pour un nouveau modèle model/<name_of_model>

Pour une correction de bug en production hotfix/<description>

Commits

Dans l'esprit, se référer à : conventionalcommits

Un commit doit idéalement respecter ce format:

git commit -m '{TYPE}: MESSAGE'

Il est possible de rajouter un BODY et un FOOTER à ses messages de commit

git commit -m '{TYPE}: {MESSAGE}' -m '{BODY}' -m '{FOOTER}'

Qui peuvent servir a rajouter des information utiles à l'automatisation de taches par GitHub (par exemple, fermer des issues):

git commit -m 'feat: change test train proportion' \
 -m 'move value from .5 to .75' \
 -m 'closes #17 and #19'

Outillage

Certains outils permettent de s'assurer de la pérénité et de la stabilité du code produit.

Tests

L'outil standard pour tester en R est le package testthat.

Formattage de code

L'intérêt d'utiliser un outil de formattage automatique de code est qu'il permet d'assurer une cohérence au sein du repo en termes de style et de règles. Cela permet une meilleure compréhension du code, moins d'erreurs, et des revues de code plus rapides.

Linter

Un linter s'assure que le code produit adhère aux bonnes pratiques de style et de syntaxe.

Documentation

Git Hooks

Les git hooks permettent de s'assurer que certains scripts tournent automatiquement avant un commit ou un push. Ils sont stockés dans .git/hooks/

L'évaluation du modèle peut produire un artefact "model_evaluation.json", versionné dans git avec chaque nouvelle version du modèle.

Securité et Configuration :construction_worker:



signaux-faibles/rsignauxfaibles documentation built on Dec. 2, 2020, 3:24 a.m.