Essential Files
CONTRIBUTING.md
# Contributing
## Development Setup
git clone https://github.com/user/package.git
cd package
uv sync --extra dev
pre-commit install
pytest
## Making Changes
- Create a branch:
git checkout -b feature/name - Make changes, add tests
- Run:
make test && make lint - Commit and open a PR
Commit Messages
Add:new featureFix:bug fixUpdate:enhancementDocs:documentation
### CODE_OF_CONDUCT.md
Use [Contributor Covenant](https://www.contributor-covenant.org/) - the standard for open source.
## Issue Templates
**.github/ISSUE_TEMPLATE/bug_report.md:**
```markdown
---
name: Bug Report
labels: 'bug'
---
## Description
## To Reproduce
## Expected vs Actual Behavior
## Environment (OS, Python version, package version)
## Minimal Reproducible Example
.github/ISSUE_TEMPLATE/feature_request.md:
---
name: Feature Request
labels: 'enhancement'
---
## Problem Statement
## Proposed Solution
## Example Usage
PR Template
.github/PULL_REQUEST_TEMPLATE.md:
## Description
## Related Issue (Fixes #)
## Checklist
- [ ] Tests added
- [ ] Documentation updated
- [ ] CHANGELOG entry added
GitHub Actions Automation
# .github/workflows/welcome.yml
on:
pull_request_target:
types: [opened]
jobs:
welcome:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
pr-message: "Thanks for your first PR! 🎉"
Labels
good first issue- Newcomer-friendlyhelp wanted- Extra attention neededbug,enhancement,documentation
For detailed templates, see:
- TEMPLATES.md - Full issue/PR templates
- GOVERNANCE.md - Project governance guide
Checklist
Initial Setup:
- [ ] CONTRIBUTING.md
- [ ] CODE_OF_CONDUCT.md
- [ ] Issue templates
- [ ] PR template
- [ ] Labels defined
Ongoing:
- [ ] Respond to issues within 48h
- [ ] Review PRs within 1 week
- [ ] Maintain good first issues
- [ ] Recognize contributors
Learn More
This skill is based on the Maintenance section of the Guide to Developing High-Quality Python Libraries by Will McGinnis. See these posts for deeper coverage: