π€ Contributing¶
We welcome contributions from everyone β whether you're fixing a typo, improving tests, or building new features!
This guide will walk you through setting up the project locally and contributing with confidence. Letβs build something great together! π
βοΈ Star the repo to show your support: https://github.com/jd-35656/resumake
π How to Contribute¶
- Fork the repository
- Clone your fork locally
- Create a new branch for your feature or fix
- Make your changes
- Run tests and checks
- Push to your fork
- Open a Pull Request
Please use Conventional Commits for commit messages.
π§ͺ Development Environment Setup¶
1. Clone the Repository¶
2. Install Development Tooling¶
We use nox to automate development tasks:
3. Create a Virtual Environment¶
This sets up a virtual environment in .nox/develop-3.13.
4. Activate the Environment¶
5. Deactivate the Environment¶
Using a Different Python Version?
Run nox -l to see available Python versions (e.g., 3.9β3.13) and run:
π§ IDE Setup¶
- Open the project folder
- Press
Ctrl+Shift+Pβ βPython: Select Interpreterβ - Select
.nox/develop-3-13/bin/python -
Recommended Extensions:
- Python
- Pylance
- Ruff
- File β Settings β Project β Python Interpreter
- Add:
.nox/develop-3-13/bin/python - Apply and OK
β Verify Your Setup¶
Make sure everything is working correctly:
nox # Run tests, lint, and type checks
nox -s tests # Just run tests
nox -s lint # Run formatter and linter
nox -s check # Lint + type check
π οΈ Development Workflow¶
- Make your changes
- Run
noxto ensure all checks pass - Add a changelog entry (if needed)
- Commit using Conventional Commits
- Push to your fork
- Open a PR on GitHub
π Changelog Entries¶
For user-facing changes, add a changelog fragment using towncrier:
Types: added, changed, deprecated, removed, fixed, security
Example:
π§Ή Code Standards¶
Style Guide
- Line length: 121 characters
- Code formatting: ruff
- Type hints: Required for public APIs
- Docstrings: Google-style
- Commits: Conventional Commits
ποΈ Project Structure¶
src/resumake/
βββ __main__.py # CLI entry
βββ __version__.py # Auto-generated
βββ cli/
β βββ app.py # Typer app
βββ core/
βββ __init__.py
tests/
βββ test_cli.py
βββ test_app.py
βββ test_main.py
βββ test_version.py
βββ test_package.py
π Key Files¶
Important Files
noxfile.pyβ Dev automation (lint, tests, etc.)pyproject.tomlβ Dependencies and tool configsdocs/β MkDocs documentation.github/workflows/β CI/CD automationchangelog.d/β Changelog fragments
π οΈ Troubleshooting¶
Common Problems & Fixes
| Issue | Solution |
|---|---|
| Tests failing | nox -s tests -- -v |
| Lint errors | nox -s lint (auto-fixable with Ruff) |
| Type errors | nox -s typecheck |
| Coverage too low | Add more tests! |
| CI build fails | Check GitHub Actions logs |
π Thank You¶
Your contributions make this project better! Even small improvements make a big impact. Feel free to open an issue or start a discussion.
βοΈ Star the project: https://github.com/jd-35656/resumake