Contributing ============ Development Setup ----------------- Clone Repository ^^^^^^^^^^^^^^^^ .. code-block:: bash git clone ssh://git@192.168.0.82:10022/floppyrj45/bluerov-slam.git cd bluerov-slam Install Dependencies ^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash # Python (for blueos-extension, kogger-viewer) python3 -m venv venv source venv/bin/activate pip install -r blueos-extension/requirements.txt pip install -r kogger-viewer/requirements.txt # ESP32 (PlatformIO) cd esp32-sensor-hub pio run # Documentation (Sphinx) pip install sphinx sphinx-rtd-theme sphinx-autobuild Code Style ---------- Python ^^^^^^ - **Formatter:** Black (line length 100) - **Linter:** Flake8 - **Type hints:** Optional but recommended .. code-block:: bash black --line-length 100 *.py flake8 --max-line-length 100 *.py C++ (ESP32) ^^^^^^^^^^^ - **Style:** Arduino/PlatformIO conventions - **Indentation:** 4 spaces - **Comments:** Document all non-obvious logic reStructuredText (Docs) ^^^^^^^^^^^^^^^^^^^^^^^^ - **Line length:** 100 characters - **Headers:** Use ``=``, ``-``, ``^``, ``"`` hierarchy - **Code blocks:** Use ``.. code-block:: language`` Commit Guidelines ----------------- Format ^^^^^^ :: type(scope): short description Longer explanation if needed. Fixes #123 **Types:** - ``feat``: New feature - ``fix``: Bug fix - ``docs``: Documentation only - ``refactor``: Code restructure (no behavior change) - ``test``: Add or update tests - ``chore``: Build, dependencies, tooling **Examples:** .. code-block:: text feat(esp32): add EZO conductivity sensor support fix(kogger): handle BB55 wrap-around in ping assembler docs(api): document MAVLink bridge endpoints Pull Request Process --------------------- 1. Fork the repository 2. Create feature branch: ``git checkout -b feat/my-feature`` 3. Make changes with descriptive commits 4. Test thoroughly (local + hardware if applicable) 5. Update documentation (if user-facing changes) 6. Push and open Pull Request 7. Address review feedback Testing ------- Unit Tests (Python) ^^^^^^^^^^^^^^^^^^^ .. code-block:: bash pytest tests/ Hardware Testing ^^^^^^^^^^^^^^^^ - Flash ESP32 firmware - Connect all sensors - Monitor serial output - Verify dashboard displays data - Check WebSocket connections License ------- MIT License — Copyright (c) 2026 Baptiste Moulin / Flag Labs Contact ------- - **Email:** baptiste.moulin@gmail.com - **GitHub:** https://github.com/flagabat/bluerov-slam