Thank you for your interest in contributing to HEART! This guide outlines how you can contribute to the project and the processes in place to ensure smooth collaboration.
- Overview
- Reporting Issues
- Submitting Feature Requests
- Contributing Code
- Security Issues
- Communication
- License
This project is developed privately in a GitLab repository and released as a public stub on GitHub. While the full development occurs privately, we encourage the community to report issues, suggest features, and contribute to the project by following the guidelines below.
If you encounter any bugs or issues with the public release, please open an issue on the GitHub repository.
Before submitting an issue, please:
- Search existing issues to ensure it hasn't already been reported.
- Provide as much detail as possible, including steps to reproduce the issue, your environment, and any relevant logs.
We welcome feature requests that align with the project’s goals. To submit a feature request:
- Check for Existing Requests: Review the open issues to see if your feature has already been requested.
- Open an Issue: If your request is unique, open an issue and clearly describe the proposed feature, its use case, and why it would be beneficial.
Please note that feature requests are prioritized based on their alignment with the project’s goals and resource availability.
Given the repository’s development model, direct code contributions via pull requests are generally not accepted in the public GitHub repository. However, we welcome suggestions for improvements and patches through issue discussions.
- Fork the Repository: Start by forking the GitHub repository.
- Clone Your Fork: Clone the repository to your local machine.
- Create a Branch: Create a new branch for your work (
git checkout -b feature-name
). - Code & Commit: Make your changes, commit them, and push the branch to your fork.
- Open an Issue: Submit a detailed issue with a link to your forked branch or a description of the changes you've made.
While direct contributions are generally not merged into the public GitHub repository, we follow strict coding standards internally. If you're submitting code snippets or suggestions, please adhere to the following:
- PEP 8: Follow the PEP 8 style guide for Python code.
- Ruff for Linting: Use
ruff
to automatically lint your code. The specific linting configurations can be found in thepyproject.toml
file within the repository. Ensure your code passes all linting checks before submitting. - Docstrings: Use PEP 257 for docstrings in functions and classes.
- Type Hints: Type hints must be used for both function parameters and return types, in accordance with PEP 484
All code suggestions should be accompanied by relevant unit tests. We use pytest
for testing. Even though direct contributions are not merged, please include test cases when suggesting patches or improvements.
If you discover a security vulnerability in the project, please do not report it publicly on GitHub. Instead, post in our discussions tab to indicate that you have discovered a vulnerability (without providing any specifics). One of our team members will then reach out to gather the specifics and implement a resolution.
For general questions, feedback, or discussions about the project, you can:
- GitHub Discussions: Start a discussion in the GitHub Discussions tab.
Please note that the development team primarily works in a private GitLab repository, so some decisions and discussions may occur outside of public view.
By contributing to HEART, you agree that your contributions will be licensed under the LICENSE in this repository.
Thank you for your contributions and support!