Thank you for considering contributing to ThriveMind! This document provides guidelines and instructions for contributing.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Run tests and linters
task test task lint
- Commit your changes (
git commit -m 'Add amazing feature'
) - Push to your branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Update the README.md with details of changes to the interface, if applicable
- Update the CHANGELOG.md with a note describing your changes
- Ensure any install or build dependencies are removed before the end of the layer
- PRs should target the
main
branch
## Description
Clear and concise description of the changes
## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
## Testing Description
Describe the tests you ran and how to reproduce
## Checklist
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
-
Install prerequisites:
- Go 1.23.4 or later
- Docker
- Task
-
Setup development environment:
task dev:setup
-
Create a branch for local development:
git checkout -b name-of-your-bugfix-or-feature
-
Make your changes and test them:
task test task lint
- Follow standard Go conventions
- Use
gofmt
for formatting - Follow project structure conventions
- Write meaningful commit messages
- Add tests for new features
- Write unit tests for new code
- Ensure all tests pass before submitting PR
- Include integration tests where appropriate
- Document test cases and scenarios
- Update documentation for new features
- Include code comments where necessary
- Update API documentation if endpoints change
- Keep README.md current
Feel free to open an issue for clarification or help.
Thank you for your contribution!