Avant toute ligne de code, le dépôt doit être initialisé avec une base claire :
git init -b main
Quelques fichiers structurants suffisent, placés à la racine du fichier :
.gitignore: liste ce qui ne doit pas être versionné (artefacts, données, secrets, env locaux).# Environnements et caches .venv/ __pycache__/ .pytest_cache/ .ipynb_checkpoints/ # Outils et OS .uv/ .vscode/ .DS_Store # Secrets .env !.env.example # Données lourdes (conserver uniquement les échantillons) *.parquet *.duckdb *.db data/**/* !data/samples/** # Artefacts dbt target/ logs/ dbt_packages/ .dbt/.gitattributes: normalise les fins de lignes et marque les binaires pour éviter des différences illisibles.* text=auto eol=lf *.sh text eol=lf *.bat text eol=crlf # Binaires *.parquet binary *.duckdb binary *.png binary *.pdf binaryREADME.md: explique rapidement ce qu’est le projet et comment démarrer.# Projet Djohodo Ce dépôt contient les scripts et modèles pour construire le pipeline data : extraction → transformation → analyse. ## Installation `uv sync` ## Lancer le pipeline `make run` ## Structure du dépôt ` src/ # Code Python models/ # Modèles dbt data/ # Données locales (non versionnées) data/samples/ # Jeux d'exemple légers `CONTRIBUTING.md: donne les règles minimales pour garder le dépôt propre et cohérent.# Contribuer au projet ## Branches - `main` : version stable du projet - `feat/<nom>` : nouvelle fonctionnalité ex. `feat/extract-freework` - `fix/<nom>` : correction de bug ex. `fix/path-resolution` ## Commits Des messages clairs, au format [Conventional Commits](https://www.conventionalcommits.org/). Exemples : - `feat(io): add parquet writer` - `fix(dbt): update model schema` - `docs(repo): update README` ## Bonnes pratiques - Un commit = un changement cohérent - Une branche par sujet - Pas de données lourdes ni de secrets dans Git - Une PR (pull request) par fonctionnalité, même en solo
Ces fichiers posent les règles du jeu : ce qu’on versionne, ce qu’on ignore, et comment on contribue. Le premier commit se limite à cela :
git add .gitignore .gitattributes README.md CONTRIBUTING.md
git commit -m "chore(repo): init git base files"