Contributing to reviewtask¶
Thank you for your interest in contributing to reviewtask! This document provides guidelines and instructions for contributing to the project.
Code of Conduct¶
By participating in this project, you agree to abide by our code of conduct: - Be respectful and inclusive - Welcome newcomers and help them get started - Focus on constructive criticism - Respect differing viewpoints and experiences
How to Contribute¶
Reporting Issues¶
- Check if the issue already exists
- Create a new issue with a clear title and description
- Include steps to reproduce the problem
- Add relevant labels to your issue
Submitting Pull Requests¶
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature-name
) - Make your changes
- Add tests for new functionality
- Ensure all tests pass (
go test ./...
) - Commit your changes with clear messages
- Push to your fork
- Create a Pull Request
Development Guidelines¶
Code Style¶
- Follow standard Go conventions
- Run
gofmt
before committing - Use meaningful variable and function names
- Add comments for complex logic
- Keep functions small and focused
Testing¶
- Write tests for new features
- Maintain test coverage above 80%
- Run tests before submitting PR:
Commit Messages¶
Follow conventional commit format:
- feat:
New feature
- fix:
Bug fix
- docs:
Documentation changes
- test:
Test additions or modifications
- refactor:
Code refactoring
- chore:
Maintenance tasks
Example:
feat: Add support for GitLab integration
- Implement GitLab API client
- Add configuration options
- Update documentation
Release Process¶
Version Bumping with PR Labels¶
When creating a PR, add one of these labels to indicate the type of version bump:
release:major
- Breaking changes (increment X.0.0)- Use when: Removing features, changing APIs, incompatible changes
-
Example: Removing CLI commands, changing config format
-
release:minor
- New features (increment x.Y.0) - Use when: Adding new functionality, backwards-compatible changes
-
Example: New commands, new options, performance improvements
-
release:patch
- Bug fixes (increment x.y.Z) - Use when: Fixing bugs, documentation updates, small improvements
- Example: Fixing errors, typos, small optimizations
Label Guidelines¶
- One Label Per PR: Only add one release label per PR
- Add Early: Add the label when creating the PR or during review
- Automatic Release: When merged, the PR will trigger an automatic release
- Label Removal: The label is automatically removed after release
Examples¶
# PR Title: Fix error handling in PR detection
Labels: release:patch, bug
# PR Title: Add support for multiple repositories
Labels: release:minor, enhancement
# PR Title: Redesign configuration system
Labels: release:major, breaking-change
Pull Request Process¶
- Create PR with clear description
- Explain what changes you made
- Reference any related issues
-
Add appropriate labels
-
Add Release Label
- Choose one:
release:major
,release:minor
, orrelease:patch
-
Based on the type of changes
-
Wait for Review
- Address reviewer feedback
-
Keep PR up to date with main branch
-
Automatic Release
- Once merged, release is created automatically
- Version bump based on your label
- Release notes generated from commits
Getting Help¶
- Check the documentation
- Look at existing issues and PRs
- Ask questions in issues with the
question
label - Review the versioning guide
License¶
By contributing, you agree that your contributions will be licensed under the project's MIT License.