Contributing to WRTKit¶
Thank you for your interest in contributing to WRTKit!
Development Setup¶
-
Clone the repository:
-
Create a virtual environment:
-
Install the package in development mode with dev dependencies:
Running Tests¶
Run the test suite:
Run tests with coverage:
Code Style¶
This project uses: - Black for code formatting - Ruff for linting - MyPy for type checking
Format your code:
Run linting:
Run type checking:
Adding New Features¶
- Create a new branch for your feature
- Write tests for your feature
- Implement the feature
- Ensure all tests pass
- Format and lint your code
- Submit a pull request
Adding New UCI Components¶
To add support for a new UCI package (e.g., system, firewall rules):
- Create a new module in
src/wrtkit/(e.g.,system.py) - Define section classes inheriting from
UCISection - Create builder classes inheriting from
BaseBuilder - Create a config manager class
- Add the new config to
UCIConfiginconfig.py - Write tests in
tests/ - Add examples in
examples/
Documentation¶
When adding new features, please update: - Docstrings in the code - README.md if needed - Example files - CHANGELOG.md
Questions?¶
Feel free to open an issue for any questions or concerns.