diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -45,14 +45,25 @@ python3 -m venv .venv --clear source .venv/bin/activate # Toutes les dépendances sont déclarées dans les pyproject.toml — un seul pip install suffit -pip install -e packages/meshbay-common -e packages/meshbay-hub -e packages/meshbay-node -pip install pytest pytest-asyncio aiosqlite # extras dev +pip install -e "packages/meshbay-common[dev]" -e "packages/meshbay-hub[dev]" \ + -e "packages/meshbay-node[dev]" ``` Les deps clés (aioquic, watchdog, fastapi, blake3, etc.) sont dans les `pyproject.toml` et installées automatiquement. Ne pas ajouter manuellement des packages sans les déclarer dans le bon `pyproject.toml`. +> **L'extra `[dev]`, pas une liste à la main.** Cette ligne a longtemps été +> `pip install pytest pytest-asyncio aiosqlite`, ce qui contredisait la règle +> ci-dessus et coûtait trois choses invisibles. Sans `piexif`, +> `test_enrich_photo.py` échoue à l'import et **toute la suite du nœud s'arrête à +> la collecte**. Sans `pytest-timeout`, le `timeout = 60` du `pyproject.toml` est +> une option inconnue : la protection que son propre commentaire décrit — « un +> test bloqué ne doit pas coincer le run » — n'existe pas, et pytest ne le dit que +> dans un warning parmi d'autres. Sans `ruff`, le linter du projet n'est pas là. +> `aiosqlite` n'avait pas à être cité : c'est une dépendance de runtime du hub et +> du nœud, déjà installée par les `-e`. + > **Ne jamais copier `.venv/` entre machines d'OS différents.** Si rsync depuis Fedora vers Ubuntu, > exclure `.venv/` et recréer sur la cible avec `python3 -m venv .venv --clear`. > Sans `--clear`, `certifi.where()` pointe vers un chemin Fedora inexistant sur Ubuntu → `FileNotFoundError`. |