Contributing guide#
Thank you for your interest in contributing to woom!
Reporting Issues#
Bug report:
Check existing issues first
Include: OS, Python version, error message
Provide a minimal reproducible example
Feature request:
Describe the functionality and use case
Show how you would use it
Contributing Code#
Quick start#
Fork the repository
Clone and setup:
git clone https://github.com/YOUR_USERNAME/woom.git cd woom python -m venv venv source venv/bin/activate pip install -e ".[dev,test]"
Create a branch:
git checkout -b feature/my-feature # or fix/my-fix
Make your changes and commit:
git commit -m "Add feature: clear description"
Testing#
All contributions must include tests in tests/ directory.
Example of testing function woom.util.my_func() in file tests/test_util.py:
import pytest
from woom import util
def test_my_func():
"""Test :func:`woom.util.my_func`"""
result = myfunc(10)
aassert result == 11
Run tests:
pytest # All tests
pytest tests/test_conf.py # Specific file
Usage Examples#
Add examples, either in examples/academic/ or examples/realistic/, with the following files:
README.md- what it demonstrates and how to run itConfiguration files (
workflow.cfg,tasks.cfg, etc.)Required files, if any, in
bin/,ext/, etc.
Example structure:
examples/
└── academic/
└── my_example/
├── README.md
├── workflow.cfg
├── tasks.cfg
├── bin/...
├── ext/...
└──...
Pull Requests#
Push your branch:
git push origin feature/my-feature
Create a PR on GitHub with:
Clear title and description
What changed and why
How to test
Reference related issues (e.g., “Closes #123”)
Ensure:
🗹 Tests pass
🗹 Code follows PEP 8
🗹 Documentation updated
🗹 Commit messages are clear
Code Style#
Follow PEP 8
4 spaces indentation
Max line length: 110
Use docstrings (numpy style)
Questions?#
Open an issue with the “question” label.
Thank you for contributing!