Development guide¶
Complete guide for setting up the development environment and contributing to ezqt_app.
🔧 Prerequisites¶
- Python 3.11 or higher
- PySide6 6.x
- Git for version control
📝 Setup¶
Install the package in editable mode with all development dependencies:
Install pre-commit hooks:
⚙️ Development tools¶
Formatting and linting¶
Running tests¶
📋 Code standards¶
- Formatting and linting: Ruff
- Type hints required on all public API symbols
- Google-style docstrings for all public functions and classes
- Section markers used consistently across project modules:
# ///////////////////////////////////////////////////////////////
# SECTION NAME
# ///////////////////////////////////////////////////////////////
🔁 Pre-commit hooks¶
Pre-commit runs automatically on git commit and checks:
- Formatting and linting (Ruff)
- Import organization
- File hygiene (trailing whitespace, end-of-file newline, etc.)
To run manually against all files:
🏗️ Architecture notes¶
The codebase follows a hexagonal migration approach:
| Layer | Path | Role |
|---|---|---|
| Domain | domain/ |
Contracts (protocols) and domain models |
| Services | services/ |
Adapters and orchestration |
| Widgets | widgets/ |
Presentation layer |
| Kernel | kernel/ |
Legacy/infra layer (being reduced) |
Bootstrap entry points:
- Python API:
ezqt_app.main.init(...) - CLI:
ezqt init
See src/ezqt_app/services/bootstrap/ for the initialization sequence.
📁 Project structure¶
🔁 Recommended workflow¶
Before starting¶
During development¶
Before pushing¶
💻 Built-in CLI¶
The project exposes a CLI via ezqt:
See CLI Reference for the full command reference.
Troubleshooting¶
| Issue | Solution |
|---|---|
| CLI command not found | Reinstall editable package: pip install -e ".[dev]" |
| Qt import errors | Verify PySide6 environment: python -c "import PySide6" |
| Missing config files | Run ezqt init in project root |
➡️ Related¶
- Testing guide — test suite scopes and fixtures
- API reference — complete service documentation
- CLI reference — command-line interface
- QSS style guide — visual customization