Thank you for your interest in contributing to GuvenLinux! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/guvenlinux.git - Create a feature branch:
git checkout -b feature/your-feature-name - Set up the development environment (see below)
- Debian-based Linux distribution
- Python 3.10+
- GTK4 development libraries
# Install system dependencies
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 libgtk-4-dev
# Install Python dependencies
pip install -r requirements.txt
# Run tests
pytest tests/ -v- Follow PEP 8 style guidelines
- Use type hints for all function signatures
- Write docstrings for all public modules, classes, and functions
- Keep line length under 100 characters
Use clear, descriptive commit messages:
<type>: <short description>
<optional longer description>
Types: feat, fix, docs, test, refactor, ci, chore
Example:
feat: add SSH cipher validation to ssh_auditor engine
Check for weak ciphers (3des-cbc, arcfour) and flag them as
High severity findings with recommended replacements.
- Ensure all tests pass:
pytest tests/ -v - Ensure code passes linting:
flake8 src/ tests/ - Update documentation if your change affects user-facing behavior
- Fill out the pull request template completely
- Request review from at least one maintainer
- Write unit tests for all new engine logic
- Use
pytestfixtures and mocks for system calls - Target 85%+ code coverage on new code
- Run the full suite before submitting:
pytest tests/ -v --cov=src
Open an issue using the Bug Report template and include:
- OS version
- Steps to reproduce
- Expected vs actual behavior
- Relevant log output
Open an issue using the Feature Request template. Describe:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you've considered
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License.