docs: Restructure main README and extract CONTRIBUTING.md.#204
Conversation
There was a problem hiding this comment.
Pull request overview
Refactors the root documentation to make the main README.md shorter and move detailed guidance into dedicated docs, aligning driver references and usage guidance with the current repo layout.
Changes:
- Restructures
README.mdinto an overview with a drivers/components table, quick start, and links to testing/contributing docs. - Adds contribution guidelines in
CONTRIBUTING.md(driver structure, conventions, CI, workflow). - Adds testing guide in
tests/TESTING.MD(running mock/hardware tests and reports).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
README.md |
Replaced long per-driver sections with a components table, quick start, install guidance, and links to new docs. |
tests/TESTING.MD |
New testing guide describing how to run tests and generate reports. |
CONTRIBUTING.md |
New contribution guide extracted from README, documenting conventions and workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
nedseb
left a comment
There was a problem hiding this comment.
La direction est bonne (split README → CONTRIBUTING.md + TESTING.md) mais il y a pas mal de problèmes de cohérence et de qualité. On sent que le contenu a été en grande partie généré par un LLM et copié-collé sans relecture attentive. Prends le temps de relire chaque ligne généré par ton LLM et de vérifier que ce que tu écris correspond à la réalité du code car au final c'est toi qui en porte la responsabilité.
🔴 Problèmes bloquants
1. Le fichier s'appelle tests/TESTING.MD — le .MD est en majuscules
Sur un système case-sensitive (Linux, CI), [tests/TESTING.md](tests/TESTING.md) dans le README pointe vers TESTING.md mais le fichier s'appelle TESTING.MD. Le lien est cassé. Convention du projet : les extensions sont en minuscules (.md, .py, .yaml). Renomme en tests/TESTING.md.
2. Les deux fichiers n'ont pas de newline finale
CONTRIBUTING.md et TESTING.MD se terminent sans \n. C'est visible dans le diff : \ No newline at end of file. Ça provoque des warnings Git et peut casser certains outils. Ajoute une ligne vide à la fin de chaque fichier.
3. Le README perd le newline final aussi
La dernière ligne du README (- [mpremote Documentation]...) n'a plus de newline. Même problème.
4. Référence issue incorrecte
La PR dit Closes #199. L'issue #199 demande de restructurer le README principal ET de créer des liens vers les README de drivers. Tu fais la restructuration mais vérifie que toutes les demandes de l'issue sont bien couvertes. Si l'issue demandait aussi l'extraction du CONTRIBUTING, vérifie que c'était bien dans le scope.
🟡 Problèmes de cohérence avec le projet
5. CONTRIBUTING.md — arbre des fichiers incorrect
lib/
├── <driver_name>/
| ├── <driver_name>
| | ├── __init__.py
| | ├── device.py
| | ├── exceptions.py ← N'EXISTE PAS FORCEMENT
| | └── const.py
Quasi aucun driver du projet n'a de fichier exceptions.py. De plus, les barres verticales utilisent | au lieu de │ (caractère Unicode box-drawing), ce qui rend l'arbre visuellement moche.
Compare avec la structure réelle :
lib/<component>/
├── README.md
├── manifest.py
├── <module_name>/
│ ├── __init__.py
│ ├── const.py
│ └── device.py
└── examples/
└── *.py
Note aussi que le README.md est au niveau du driver, pas à l'intérieur du sous-dossier.
6. CONTRIBUTING.md — exemples de commits FAUX
feat: add ism330dl driver ← NE RESPECTE PAS LE FORMAT
fix: correct pressure conversion ← PAREIL
Le format du projet est <scope>: <Description avec majuscule et point final.>. Pas feat: comme scope. Le scope est le nom du driver ou du domaine (ism330dl, docs, tests...). Tes exemples ne commencent pas par une majuscule et n'ont pas de point final. De plus, la section "Types" (feat, fix, docs, refactor, test) n'existe pas dans les conventions du projet — c'est du Conventional Commits, qui n'est pas le format utilisé ici.
Tes propres commits respectent le bon format (tests: Add mock scenarios for mcp23009e driver.) — utilise-les comme exemples !
7. CONTRIBUTING.md — ruff format n'est pas utilisé
ruff check . --fixLe projet utilise ruff check uniquement. La commande ruff format n'est pas configurée ni utilisée.
8. CONTRIBUTING.md — section "Types" inventée
La section qui liste feat, fix, docs, refactor, test comme types de commits est une invention. Le CI valide uniquement le pattern ^[^!]+: [A-Za-z]+.+ .+\.$ — il n'y a aucune liste de types prédéfinis. Le scope est libre (nom du driver, docs, tests, ci...).
9. CONTRIBUTING.md — workflow propose de "Fork" systématiquement
1. Fork the repository
2. Create a branch for your feature
Si tu travaille directement sur le repo steamicc/micropython-steami-lib, le workflow est plutôt : créer une branche depuis main, pas forker. N'oublie pas que le document de contribution est le même que tu sois membre de l'organisation ou pas.
🟡 Problèmes de style et de rédaction
10. README — section "Quick start" manque d'explication
pip install mpremote
mpremote mount lib/ism330dl run lib/ism330dl/examples/basic_read.pyL'ancien README expliquait les étapes (installer mpremote, connecter la carte, monter le driver). Le nouveau README donne juste 2 commandes sans contexte. Un débutant ne comprendra pas. La phrase "Use mpremote to quickly run a driver example without installing anything on the board." est vague — sur quel board ? comment le connecter ?
11. README — la section Installation a des formulations redondantes
### Method 1: Using mpremote (temporary)
Use this method during development to run drivers without copying them to the board. (recommended for development)
puis juste en dessous :
This mounts the repository on the board filesystem so you can import and test drivers instantly.
3 phrases qui disent la même chose. Garde-en une seule claire.
12. README — section Testing trop minimaliste
Run the full test suite (mock + hardware):
pytest
pytest tout court ne fonctionne pas pour les tests hardware (il faut --port). Et pytest tout court ne filtre pas mock vs hardware. L'ancien README était bien plus utile avec les différentes commandes. Soit tu gardes les détails dans le README, soit tu renvoies vers TESTING.md mais avec une phrase qui explique la différence mock/hardware.
13. TESTING.md — séparateurs --- superflus
Les --- entre chaque section rendent le document lourd visuellement. En Markdown, les titres ## et ### suffisent à structurer le document. Les --- sont utilisés pour les thematic breaks, pas comme séparateurs de section. Ça ressemble à du contenu généré par LLM qui met des séparateurs partout.
14. CONTRIBUTING.md — double espace vide
Il y a deux lignes vides consécutives après la section "Coding conventions" et après la section "Continuous Integration". Une seule ligne vide entre les sections suffit.
💡 Contenu manquant
15. Table des drivers — liens vers des READMEs inexistants
La table pointe vers lib/bme280/README.md, lib/gc9a01/README.md, lib/im34dt05/README.md — ces fichiers n'existent pas. C'est correct de les lister dans la table (ce sont des composants de la carte) mais les liens seront des 404. Ajoute une note ou retire les liens pour les drivers pas encore implémentés.
16. HTS221 et WSEN-HIDS partagent l'adresse 0x5F
Résumé
| # | Problème | Sévérité |
|---|---|---|
| 1 | TESTING.MD en majuscules |
🔴 Bloquant |
| 2 | Pas de newline finale (2 fichiers) | 🔴 Bloquant |
| 3 | README perd newline finale | 🔴 Bloquant |
| 4 | Vérifier scope issue #199 | 🟡 À vérifier |
| 5 | exceptions.py inventé + arbre cassé |
🔴 Bloquant |
| 6 | Exemples commits faux | 🔴 Bloquant |
| 7 | ruff format pas utilisé |
🟡 Incorrect |
| 8 | Section "Types" inventée | 🔴 Bloquant |
| 9 | Fork vs branche directe | 🟡 À vérifier |
| 10 | Quick start trop brusque | 🟡 Qualité |
| 11 | Formulations redondantes | 🟡 Style |
| 12 | Section Testing minimaliste | 🟡 Qualité |
| 13 | --- séparateurs superflus |
🟡 Style |
| 14 | Double espaces vides | 🟡 Style |
| 15 | Liens vers READMEs inexistants | 🟡 À traiter |
| 16 | HTS221/WSEN-HIDS même adresse | 💡 Clarification |
Note supplémentaire sur la qualité de relectureCharly, regarde les commentaires automatiques de Copilot sur cette PR. Le bot a trouvé 6 problèmes sans même exécuter le code :
Si un robot détecte autant d'erreurs, c'est que la relecture humaine n'a pas eu lieu. Avant de soumettre une PR, prends l'habitude de :
Le travail de fond est bon (la restructuration en 3 fichiers est la bonne approche), mais la qualité d'exécution doit monter d'un cran. Chaque PR que tu soumets est relue par d'autres personnes — respecte leur temps en faisant ta propre revue d'abord. |
|
@Charly-sketch Pense à documenter tes changements STP |
|
|
Charly, voici le suivi point par point de la revue initiale (16 points) : Points bloquants de la revue
Points de cohérence
RésuméSur les 6 points bloquants, 2 sont corrigés (newlines) et 4 ne le sont pas :
Tu as listé dans ta réponse "Correct commit examples format" mais les exemples dans le fichier n'ont pas changé. Relis le diff de ton propre commit pour vérifier que tes modifications sont bien enregistrées. |
|
4641446 to
9c4b32d
Compare
|
J'ai corrigé directement les points restants de ma revue qui n'avaient pas été traités (commit 004f3ca) : Corrigé :
La PR est prête à merger. |
|
🎉 This PR is included in version 0.0.2 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Closes #199
Description
Refactor the main
README.mdto improve clarity and maintainability by splitting it into dedicated documents.tests/TESTING.mdCONTRIBUTING.mdREADME.mdwith overview, drivers table, quick start, and linksNo content removed — existing information has been reorganized into appropriate files.
Checklist
mcp23009should bemcp23009e(wrong directory name)vl53l1cxshould bevl53l1x(wrong directory name)wsen_hidsshould bewsen-hids(directory uses hyphen, not underscore)wsen_padsshould bewsen-pads(same)Missing drivers in the tree:
hts221,gc9a01,bme280,steami_configAPI snippets use wrong class/method names (e.g.
MCP23009instead ofMCP23009E,pads.pressure_hpa()instead ofpads.pressure())machine.I2C(0)should bemachine.I2C(1)(STeaMi uses I2C bus 1)CONTRIBUTING.mdcreated with contribution guidelines extracted from READMETESTING.mdcreated with testing guide extracted from READMEREADME.mdrestructured: overview, drivers table, quick start, linksAll inaccuracies fixed (wrong names, missing drivers, wrong bus number)
Links between files work (README links to CONTRIBUTING.md and TESTING.md)
No content lost — everything from the old README is in one of the 3 files