Thank you for your interest in contributing! This guide will help you get started.
# Clone the repository
git clone https://github.com/OpenRaiser/SitHub.git
cd SitHub
# Install in editable mode with dev dependencies
python3 -m pip install -e ".[dev]"
# Verify installation
sit --versionpython -m pytest tests/ -vAll tests must pass before submitting a PR. CI runs against Python 3.10, 3.11, and 3.12.
sit/
cli.py # CLI entry point and command routing
commands/ # Individual command implementations
core/ # Diff engine, versioning, report generation
runner.py # Golden test runner
schema.py # Schema parsing and comparison
tests/ # Test suite
pyproject.toml # Build config and metadata
- Fork the repository and create a branch from
main. - Make your changes. Keep commits focused and descriptive.
- Add or update tests as needed.
- Ensure
python -m pytest tests/ -vpasses. - Open a pull request against
main.
Use concise, descriptive commit messages. Prefix with a category when appropriate:
feat:new featurefix:bug fixdocs:documentation onlytest:adding or fixing testsrefactor:code change that neither fixes a bug nor adds a featurechore:tooling, CI, or dependency changes
- No unnecessary comments. Code should be self-documenting with clear naming.
- Keep functions focused. If a function does two things, split it.
- Follow existing patterns in the codebase.
Use GitHub Issues to report bugs or request features. Please use the provided issue templates.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.