Restructuration du dépôt Git¶
État actuel du dépôt¶
Le dépôt agautheron/RT_Models contient actuellement des fichiers RST
à la racine, des dossiers thématiques physique (bloch/, diffusion/,
etc.) et les fichiers de configuration Sphinx (conf.py, _ext/,
_static/).
RT_Models/ ← état actuel
├── conf.py
├── index.rst
├── transfert_radiatif.rst
├── solutions.rst
├── bloch/
├── diffusion/
├── quantification/
├── spatial_encoding/
├── spectroscopy/
├── _ext/
├── _static/
└── .github/workflows/
Problèmes identifiés :
Les fichiers RST de contenu sont mélangés aux fichiers de configuration Sphinx à la racine.
Il n’y a pas de séparation claire entre la documentation et les sources Python/MATLAB.
Le nouveau chapitre Verilog/FPGA n’a pas de place naturelle.
Structure recommandée¶
RT_Models/ ← racine du dépôt
│
├── conf.py ← config Sphinx (reste à la racine)
├── index.rst ← toctree principal
├── requirements.txt
├── Makefile
│
├── _ext/ ← extensions Sphinx personnalisées
├── _static/ ← CSS, images globales
│
├── transfert_radiatif/ ← chapitre 1 (physique RT)
│ ├── index.rst ← toctree du chapitre
│ ├── introduction.rst
│ ├── equation_transfert.rst
│ ├── moments.rst
│ └── figures/
│
├── modeles_numeriques/ ← chapitre 2 (bloch, diffusion…)
│ ├── index.rst
│ ├── bloch.rst
│ ├── diffusion.rst
│ └── ...
│
├── verilog_fpga/ ← chapitre 3 (ce cours) ← NOUVEAU
│ ├── index.rst
│ ├── 01_introduction.rst
│ ├── 02_syntaxe.rst
│ ├── 03_logique_combinatoire.rst
│ ├── 04_logique_sequentielle.rst
│ ├── 05_xadc_analogique.rst
│ ├── 06_comparateur.rst
│ ├── 07_edge_detector.rst
│ ├── 08_diviseur.rst
│ ├── 09_top_module.rst
│ ├── 10_contraintes_xdc.rst
│ ├── 11_testbench.rst
│ └── figures/
│
├── src/ ← sources exécutables (séparés des docs)
│ ├── python/
│ │ ├── simulator.py
│ │ └── style.py
│ ├── matlab/
│ │ └── Simulator.m
│ └── verilog/ ← fichiers .v du chapitre FPGA
│ ├── xadc_wrapper.v
│ ├── comparator.v
│ ├── edge_detector.v
│ ├── freq_divider.v
│ ├── top_nexys4.v
│ ├── constraints/
│ │ └── nexys4_ddr.xdc
│ └── sim/
│ └── tb_top.v
│
└── .github/
└── workflows/
└── sphinx.yml ← CI/CD pour ReadTheDocs / GitHub Pages
Migration pas à pas¶
Voici la séquence de commandes Git pour migrer sans perdre l’historique :
# 1. Créer les nouveaux dossiers
mkdir -p verilog_fpga/figures
mkdir -p src/verilog/constraints src/verilog/sim
# 2. Déplacer les fichiers RST existants dans leur dossier
git mv transfert_radiatif.rst transfert_radiatif/
git mv solutions.rst transfert_radiatif/
# 3. Ajouter les nouveaux fichiers RST du chapitre Verilog
git add verilog_fpga/
# 4. Ajouter les sources Verilog dans src/
git add src/verilog/
# 5. Mettre à jour index.rst (utiliser la version fournie)
git add index.rst
# 6. Commit atomique
git commit -m "docs: restructure repo + add verilog_fpga chapter"
Important
Faire la migration dans un seul commit pour conserver la cohérence
de l’historique et faciliter un éventuel git bisect.
Workflow GitHub Actions recommandé¶
Ce workflow reconstruit la documentation Sphinx et la déploie sur
GitHub Pages à chaque push sur main :
name: Build & Deploy Sphinx docs
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: pip install -r requirements.txt
- name: Build HTML docs
run: make html
- name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./_build/html
Fichier requirements.txt minimal¶
sphinx>=7.0
furo
sphinxcontrib-katex
sphinx-inline-tabs
sphinx-math-dollar
sphinx-togglebutton
Conventions de nommage des fichiers RST¶
Contexte |
Convention adoptée |
Exemple |
|---|---|---|
Section principale d’un chapitre |
|
|
Index de chapitre |
|
|
Figures |
|
|
Sources exécutables |
Dossier |
|
Cette séparation entre rst (documentation) et src/verilog
(code exécutable) permet de faire tourner Vivado directement sur src/
sans mélanger les fichiers de documentation.