Development Guide¶
Complete guide for setting up development workflow and contributing to ezqt_app.
Prerequisites¶
- Python: 3.10 or higher
- PySide6: 6.x
- Git: for version control
Setup¶
Development Tools¶
Code Formatting¶
- Ruff for formatting and linting
- Type checking with
pyrightandty
Development Commands¶
Project test runner shortcuts:
python tests/run_tests.py --type unit
python tests/run_tests.py --type integration
python tests/run_tests.py --type robustness
python tests/run_tests.py --coverage
Quality Tooling¶
Type checks configured in pyproject.toml:
pyrightty
Code Standards¶
- formatting/linting with Ruff
- type hints required on public API
- Google-style docstrings
- section markers used across project modules
Section Markers¶
# ///////////////////////////////////////////////////////////////
# SECTION NAME
# ///////////////////////////////////////////////////////////////
Pre-commit Hooks¶
Installation¶
Automatic Checks¶
- formatting and linting
- import organization
- file hygiene checks
Architecture Notes¶
Current codebase follows a hexagonal migration approach:
domain/: contracts and domain modelsservices/: adapters and orchestrationwidgets/: presentation layerkernel/: legacy/infra layer being reduced
Bootstrap Entry Points¶
- Python API:
ezqt_app.main.init(...) - CLI:
ezqt init
See src/ezqt_app/services/bootstrap/ for initialization sequence.
Tests¶
Test Structure¶
Running Tests¶
Built-in CLI¶
The project exposes a CLI via ezqt:
Recommended Workflow¶
1. Before Starting¶
2. During Development¶
3. Before Pushing¶
Project Structure¶
Troubleshooting¶
| Issue | Solution |
|---|---|
| CLI command not found | Reinstall editable package |
| Qt import errors | Verify PySide6 environment |
| Missing config files | Run ezqt init in project root |
Resources¶
- API Reference -- Complete widget documentation
- Testing Guide -- Testing guidelines and best practices
- QSS Style Guide -- Visual customization
- CLI Reference -- Command-line interface