Thank you for your interest in contributing to Hatch-Validator! This guide will help you get started with our development workflow and contribution standards.
We use Conventional Commits for automated versioning and changelog generation.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
- feat: New features (triggers minor version bump)
- fix: Bug fixes (triggers patch version bump)
- docs: Documentation changes
- refactor: Code refactoring without functional changes
- test: Adding or updating tests
- chore: Maintenance tasks, dependency updates
- ci: Changes to CI/CD configuration
- perf: Performance improvements
- style: Code style changes (formatting, etc.)
# Good commit messages
feat: add support for schema version 1.3.0
fix: resolve validation error for empty dependencies
docs: update API documentation for package validator
refactor: simplify dependency resolution logic
test: add integration tests for schema validation
chore: update dependencies to latest versions
# Breaking changes (use sparingly until v1.0.0)
feat!: change validation API interface
fix!: remove deprecated validation methods
# With scope
feat(validator): add new validation rules
fix(schema): resolve schema loading timeout
docs(api): update validation method documentationFor guided commit messages, use commitizen:
# Install dependencies first
npm install
# Use commitizen for guided commits
npm run commit
# or
npx czThis will prompt you through creating a properly formatted commit message.
git clone https://github.com/YOUR_USERNAME/Hatch-Validator.git
cd Hatch-Validator# Install Python dependencies
pip install -e .
# Install Node.js dependencies for semantic-release
npm installgit checkout -b feat/your-feature-name
# or
git checkout -b fix/your-bug-fix- Write code following existing patterns
- Add tests for new functionality
- Update documentation as needed
- Follow PEP 8 style guidelines
# Run basic import test
python -c "import hatch_validator; print('Package imports successfully')"
# Add more comprehensive tests when available# Use commitizen for guided commits
npm run commit
# Or commit manually with conventional format
git commit -m "feat: add your feature description"git push origin feat/your-feature-nameThen create a pull request on GitHub.
Use conventional commit format for PR titles:
feat: add new validation functionalityfix: resolve schema parsing issuedocs: update installation guide
Include in your PR description:
- What: Brief description of changes
- Why: Reason for the changes
- How: Implementation approach (if complex)
- Testing: How you tested the changes
- Breaking Changes: Any breaking changes (if applicable)
- Code follows existing style and patterns
- Tests added for new functionality
- Documentation updated (if needed)
- Commit messages follow conventional format
- All tests pass
- No breaking changes (unless intentional and documented)
- Follow PEP 8 style guidelines
- Use type hints where appropriate
- Write docstrings for public functions and classes
- Keep functions focused and small
- Use meaningful variable and function names
- Update relevant documentation for changes
- Use clear, concise language
- Include code examples where helpful
- Keep README.md up to date
# Basic import test
python -c "import hatch_validator; print('Package imports successfully')"
# Add comprehensive test commands when test suite is available- Add tests for new features
- Test edge cases and error conditions
- Use descriptive test names
- Follow existing test patterns
Releases are fully automated using semantic-release:
- Commits are analyzed for conventional commit format
- Version is calculated based on commit types
- Changelog is generated from commit messages
- Version files are updated (pyproject.toml, CHANGELOG.md)
- Changes are committed back to repository using GitHub App
- GitHub release is created with release notes and tags
feat:commits → Minor version (0.7.1 → 0.8.0)fix:commits → Patch version (0.7.1 → 0.7.2)feat!:orBREAKING CHANGE:→ Major version (0.7.1 → 1.0.0)- Other types → No release
- Issues: Report bugs or request features via GitHub Issues
- Discussions: Ask questions in GitHub Discussions
- Documentation: Check existing documentation for guidance
- Code: Look at existing code for patterns and examples
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Follow GitHub's community guidelines
Thank you for contributing to Hatch-Validator! 🚀