Contributing

Thank you for your interest in contributing to qtile-expanded!

Ways to Contribute

  • Report bugs: Contact @zordsdavini@s.arns.lt with steps to reproduce

  • Suggest features: Contact @zordsdavini@s.arns.lt with your feature request

  • Fix bugs: Submit a merge request with bug fixes

  • Add features: Submit a merge request with new features

  • Improve documentation: Help improve the docs

  • Write tests: Add more test coverage

Getting Started

  1. Clone the repository

  2. Set up a development environment

git clone https://g.arns.lt/zordsdavini/qtile-expanded.git
cd qtile-expanded
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
  1. Run the tests to make sure everything works

pytest -v --no-xephyr

Making Changes

  • Create a new branch for your changes

  • Make your changes

  • Add tests for new functionality

  • Update documentation

  • Run tests to ensure everything still works

git checkout -b my-feature
# Make changes...
pytest -v --no-xephyr
git commit -m "Add my feature"
git push origin my-feature

Submitting Changes

  1. Push your changes to the repository

  2. Contact @zordsdavini@s.arns.lt to discuss your changes

  3. Describe your changes

  4. Wait for review and address any feedback

Code Style

  • Follow PEP 8 style guidelines

  • Use type hints where appropriate

  • Write docstrings for public functions and classes

  • Keep line lengths under 100 characters

  • Use consistent naming (snake_case for functions, CamelCase for classes)

Documentation

  • Update documentation for any new features

  • Add examples where helpful

  • Use reStructuredText for documentation

  • Include API documentation using autodoc

Testing

  • Add tests for new functionality

  • Update existing tests if behavior changes

  • Run all tests before submitting

  • Aim for high test coverage

Merge Request Guidelines

  1. One feature per MR: Keep merge requests focused

  2. Descriptive title: Use a clear, descriptive title

  3. Detailed description: Explain what and why

  4. Tests included: Add tests for new functionality

  5. Docs updated: Update documentation

  6. Squash commits: Squash related commits into one

Review Process

  • All changes will be reviewed

  • Feedback will be provided

  • You may be asked to make changes

  • Once approved, changes will be merged

Code of Conduct

Please be respectful and follow standard open source contribution guidelines.

License

By contributing, you agree that your contributions will be licensed under the MIT License.