Thank you for your interest in contributing to KindMesh! This document provides guidelines and instructions for contributing to the project.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Workflow
- Pull Request Process
- Community
This project and everyone participating in it is governed by the KindMesh Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment as described in the README.md
- Create a new branch for your contribution
Before submitting a bug report:
- Check the issue tracker to see if the issue has already been reported
- Update your software to the latest version to see if the issue persists
When submitting a bug report:
- Use the bug report template if available
- Include detailed steps to reproduce the bug
- Describe the expected behavior and what actually happened
- Include screenshots, logs, or other relevant information
- Specify the version of KindMesh you're using
Enhancement suggestions are tracked as GitHub issues. When suggesting an enhancement:
- Use the feature request template if available
- Provide a clear and detailed explanation of the feature
- Explain why this enhancement would be useful to most KindMesh users
- List possible implementation details if you have them
- Look for issues labeled "good first issue" or "help wanted"
- Comment on the issue to let others know you're working on it
- Follow the Development Workflow
- Submit a pull request with your changes
-
Install the required dependencies:
./local_setup.sh
-
Start the application in development mode:
./local_start.sh
-
Make your changes to the codebase
- Follow PEP 8 for Python code style
- Use type hints for all function parameters and return values
- Write docstrings for all functions, classes, and modules
- Keep functions small and focused on a single responsibility
- Use meaningful variable and function names
-
Write unit tests for all new functionality
-
Ensure all tests pass before submitting a pull request:
python -m unittest discover tests/unit python -m unittest discover tests/integration
-
Aim for high test coverage of your code
- Update the documentation to reflect your changes
- Document new features, options, or behavior changes
- Include examples where appropriate
- Update the CHANGELOG.md file with your changes
-
Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
or
git checkout -b fix/your-bugfix-name
-
Make your changes and commit them with clear, descriptive commit messages:
git commit -m "Add feature: description of your feature" -
Push your branch to your fork:
git push origin feature/your-feature-name
-
Submit a pull request to the main repository
- Fill out the pull request template completely
- Reference any related issues
- Describe your changes in detail
-
Address any feedback from code reviews
- Make requested changes
- Push additional commits to your branch
-
Once approved, your pull request will be merged by a maintainer
- Join our community discussions on GitHub Discussions
- Follow the project on social media for updates
- Participate in community events and meetings
Thank you for contributing to KindMesh! Your time and expertise help make this project better for everyone.