Thank you for considering contributing to BDEW Redispatch Parser! This document provides guidelines for contributing to the project.
By participating in this project, you agree to maintain a respectful and collaborative environment for all contributors.
Before creating bug reports, please check the existing issues to avoid duplicates. When creating a bug report, include:
- A clear and descriptive title
- Detailed steps to reproduce the issue
- Expected behavior vs. actual behavior
- Your environment (Python version, OS, etc.)
- Sample XML data if relevant (please anonymize sensitive data)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
- A clear and descriptive title
- A detailed description of the proposed enhancement
- Examples of how the enhancement would be used
- Any relevant examples from other projects
- Fork the repository and create your branch from
main - Make your changes following the code style guidelines
- Add tests for any new functionality
- Update documentation if you're changing functionality
- Ensure tests pass by running the test suite
- Write a clear commit message describing your changes
- Submit a pull request with a comprehensive description
- Clone your fork of the repository:
git clone https://github.com/YOUR_USERNAME/bdew-redispatch-parser.git
cd bdew-redispatch-parser- Create a virtual environment and install dependencies:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt- Run tests to verify your setup:
python -m pytest tests/- Follow PEP 8 style guidelines
- Use meaningful variable and function names
- Add docstrings to functions and classes
- Keep functions focused and modular
- Write clear comments for complex logic
- Write unit tests for new functionality
- Ensure all tests pass before submitting PR
- Aim for good test coverage
- Use descriptive test names
- Include both positive and negative test cases
Write clear and meaningful commit messages:
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests when relevant
Example:
Add validation for Redispatch 3.0 schema
- Implement strict XSD validation
- Add error messages for common validation failures
- Update tests to cover new validation logic
Fixes #123
If you have questions about contributing, feel free to open an issue for discussion.
Thank you for your contributions!