Thank you for your interest in making SourceryKit better! We welcome all contributions—whether it’s fixing a typo, reporting a bug, suggesting a feature, or submitting code.
- Report bugs: Open an issue on GitHub Issues. Include clear reproduction steps, expected vs. actual behavior, and your environment details.
- Request features: Open an issue describing your proposed feature and its use case. We encourage community discussion before starting work on large functional additions.
- Improve documentation: Contributions for clarification, typo fixes, or missing examples are always welcome.
- Submit code: Follow the development process detailed below.
- Fork the repository and create a feature branch off
main. - Write clear, maintainable code following the style guidelines below.
- Add or update unit tests to cover your changes. Bug fixes should include a regression test that fails before the fix.
- Document public interfaces with descriptive Python docstrings.
- Open a Pull Request with a concise description of your changes, your motivation, and a note on any potential breaking changes.
- Update the Changelog if your change modifies public API signatures or structural behaviors.
- Python Standard: Write clean Python matching standard PEP8 formatting patterns.
- Typing: Use explicit type hints for all parameters and return values on new or modified interfaces.
- Documentation: Keep codebase comments and inline documentation practical and concise.
- Compatibility: Ensure changes do not break backward compatibility unless explicitly approved in an underlying tracking issue.
By submitting a contribution, you agree to license your work under the project’s Business Source License 1.1. If your code includes or derives from third-party assets, clearly state the origin and ensure it complies with our license constraints.
- For major architecture shifts, please establish an open tracking issue for design proposal feedback before submitting a pull request.
- For quick setup questions, codebase ideas, or general troubleshooting help, open a thread on GitHub Discussions.