First off, thank you for considering contributing to Inferable! We value every contribution that helps make this project better.
We accept contributions in various forms, from bug fixes and documentation improvements to major feature additions. While we welcome most contributions, please note that not all submissions may be accepted. Our team will review each contribution carefully to ensure it aligns with the project's goals and standards.
- Fork the repository
- Create a new branch for your feature (
git checkout -b feature/amazing-feature
) - Make your changes
- Run the appropriate tests for your changes
- Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Since Inferable is a polyglot repository containing multiple programming languages, you'll need to set up the appropriate development environment for the specific component you're working on. Please refer to the README in each specific directory for detailed setup instructions.
We maintain different code style guidelines for each programming language in the repository. Please follow the conventions.
- Write tests for any new features or bug fixes
- Ensure all tests pass before submitting your PR
- Include both unit tests and integration tests where appropriate
- Follow the testing conventions established in each language-specific directory
- Update the README.md with details of significant changes if applicable
- Update the documentation for any changed functionality
- Ensure your code passes all tests and linting requirements
- Add your changes to the CHANGELOG.md under the "Unreleased" section
- The PR must be reviewed and approved by at least one maintainer
- If you modify multiple languages/components, seek review from respective component owners
- Use clear and meaningful commit messages
- Start with a verb in the present tense (e.g., "Add", "Fix", "Update")
- Reference any relevant issues or PRs in the message
Example:
Fix: Resolve memory leak in function pre-processor (#123)
- Bug fixes
- Documentation improvements
- Performance optimizations
- New features aligned with the project's goals
- Test coverage improvements
- Code quality enhancements
- Breaking changes without prior discussion
- Features that significantly deviate from the project's scope
- Changes that don't follow our coding standards
- Undocumented or untested code
- Use GitHub Issues for bug reports and feature requests
- Use Pull Requests for code contributions
- Be respectful and constructive in all communications
- Tag relevant maintainers when needed
If you have questions about contributing, feel free to:
- Open an issue with your question
- Ask in the relevant Pull Request
By contributing to Inferable, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to Inferable!