# Pull Request Template
## πΏ Gitflow Branch Check
**Source branch**: `[your branch name]`
**Target branch**: `[base branch]`
Please verify your branch follows gitflow conventions:
- β
`feature/*` β targets `develop`
- β
`bugfix/*` β targets `develop`
- β
`release/*` β targets `main`
- β
`hotfix/*` β targets `main`
_The gitflow workflow will automatically validate this._
---
## π Summary
Brief description of what this PR does and why.
**Type of Change** (check all that apply):
- [ ] π Bug fix (non-breaking change that fixes an issue)
- [ ] β¨ New feature (non-breaking change that adds functionality)
- [ ] π₯ Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] π Documentation update
- [ ] π§ͺ Test improvements
- [ ] π§ Refactoring (no functional changes)
- [ ] π¦ Dependencies update
- [ ] π Performance improvement
## π― Related Issues
Closes #[issue number]
Relates to #[issue number]
Fixes #[issue number]
## π§ Changes Made
### Core Changes
- List the main changes made
- Include any new MCP tools added
- Note any CLI command changes
- Describe algorithm or logic improvements
### Files Modified
- `souschef/server.py` - [description of changes]
- `souschef/cli.py` - [description of changes]
- `tests/test_*.py` - [description of test changes]
- `README.md` - [description of documentation changes]
## π§ͺ Testing
### Test Coverage
- [ ] Unit tests added/updated for new functionality
- [ ] Integration tests added/updated
- [ ] Property-based tests added if applicable
- [ ] All existing tests pass
- [ ] Code coverage maintained or improved
### Manual Testing
Describe how you tested this change:
```bash
# Commands run for testing
souschef-cli recipe examples/recipe.rb
```
**Test Results**:
```
# Paste relevant test output
Resource 1: package[nginx]
Type: package
Action: install
```
### Test Cases Covered
- [ ] Normal/happy path scenarios
- [ ] Edge cases and error conditions
- [ ] Cross-platform compatibility
- [ ] Performance with large inputs
- [ ] Integration with existing features
## π Performance Impact
If applicable, describe performance implications:
- **Memory usage**: No significant change / Reduced / Increased by X%
- **Processing time**: Benchmarks show X% improvement/regression
- **Scalability**: Handles larger cookbooks / No impact
## π Security Considerations
For changes that might have security implications:
- [ ] Input validation added/improved
- [ ] No secrets or credentials exposed
- [ ] File path validation in place
- [ ] Error messages don't leak sensitive information
- [ ] Dependencies updated to secure versions
## π Documentation
- [ ] README.md updated if needed
- [ ] CLI help text updated
- [ ] Code comments added for complex logic
- [ ] Docstrings added/updated following Google style
- [ ] Examples added or updated
## π§Ή Code Quality
### Checklist (verify before submitting)
- [ ] β
Code passes linting (`uv run ruff check .`)
- [ ] β
Code is properly formatted (`uv run ruff format .`)
- [ ] β
All tests pass (`uv run pytest`)
- [ ] β
Type hints are complete and accurate
- [ ] β
Docstrings follow Google style format
- [ ] β
No warnings introduced (zero warnings policy)
- [ ] β
Code follows existing patterns and style
- [ ] β
Error handling is comprehensive
### Code Review Areas
Please pay special attention to:
- [ ] Resource-to-task conversion logic
- [ ] ERB-to-Jinja2 template conversion
- [ ] File path handling and security
- [ ] Error messages and user experience
- [ ] Test coverage and edge cases
## π¨ UI/UX Changes
For CLI or output changes:
**Before**:
```
# Old CLI output or behavior
```
**After**:
```
# New CLI output or behavior
```
## β οΈ Breaking Changes
If this PR introduces breaking changes, describe:
1. **What breaks**: Specific functionality that changes
2. **Migration path**: How users should adapt
3. **Deprecation period**: Timeline for removing old functionality
4. **Documentation**: Where migration info is documented
## π Deployment Notes
Any special considerations for deployment:
- [ ] Database migrations required
- [ ] Configuration changes needed
- [ ] Environment variable updates
- [ ] Dependencies updated
- [ ] Version bump required
## π Additional Context
Add any additional context, screenshots, or information that reviewers should know:
- Links to related discussions or documentation
- Design decisions and trade-offs made
- Alternative approaches considered
- Future work this enables
## π Reviewer Guidance
**Focus Areas for Review**:
- Code correctness and edge case handling
- Test coverage and quality
- Documentation accuracy
- Performance implications
- Security considerations
**Questions for Reviewers**:
- Is the Chef-to-Ansible mapping accurate?
- Are there edge cases I missed?
- Is the error handling appropriate?
- Should this be split into smaller PRs?
---
## π Pre-Submit Checklist
Before submitting this PR, I have verified:
- [ ] π§ͺ All tests pass locally (`uv run pytest`)
- [ ] π¨ Code is linted and formatted (`uv run ruff check . && uv run ruff format .`)
- [ ] π Test coverage is maintained or improved
- [ ] π Documentation is updated where needed
- [ ] π I have self-reviewed my code changes
- [ ] π Complex logic has explanatory comments
- [ ] π¨ No debug code or console.log statements left
- [ ] π§ Commit messages follow conventional format
**By submitting this PR, I confirm that**:
- [ ] My contribution is made under the project's MIT license
- [ ] I have followed the project's coding standards and guidelines
- [ ] I have read and agree to the [Code of Conduct](../CODE_OF_CONDUCT.md)
---
**Thank you for contributing to SousChef!** π
Your improvements help make Chef-to-Ansible migrations easier for everyone.