Problem Description
The CONTRIBUTING.md file extensively references make commands for development workflow, but no Makefile exists in the repository. This creates a broken developer experience where documented commands don't work.
Current State
Missing File: No Makefile in the project root
Documented Commands (that don't work):
make help - Show all available commands
make install - Install package in development mode
make install-dev - Install development dependencies
make test - Run tests
make lint - Run linting checks
make format - Format code
make security - Run security checks
make clean - Clean build artifacts
make build - Build package
make ci - Run all CI checks locally
make pre-commit - Run pre-commit hooks on all files
Evidence from CONTRIBUTING.md:
- Lines 24, 39-40, 84, 90-99, 116, 129, 132, 135, 138 all reference
make commands
- Line 70 mentions "Make (optional, for using Makefile commands)"
Expected Behavior
Contributors should be able to use all documented make commands for a consistent development experience.
Proposed Solution
Create a comprehensive Makefile that implements all the referenced commands:
Core Development Commands
Code Quality Commands
Build & Deployment Commands
Additional Convenience Commands
Implementation Details
The Makefile should:
- Use
.PHONY targets to avoid conflicts
- Include colored output for better UX
- Have comprehensive help documentation
- Handle common development workflows
- Be cross-platform compatible
Dependencies
May require adding development dependencies to pyproject.toml:
- pytest, pytest-cov (testing)
- black, isort (formatting)
- flake8, mypy (linting)
- bandit (security)
- pre-commit (hooks)
- build, twine (packaging)
Benefits
- ✅ Fixes broken documentation references
- ✅ Standardizes development workflow
- ✅ Improves contributor onboarding experience
- ✅ Enables consistent CI/CD practices
- ✅ Reduces barrier to entry for new contributors
Note: I'm a GirlScript Summer of Code contributor and would love to work on this infrastructure improvement! 🚀
Problem Description
The
CONTRIBUTING.mdfile extensively referencesmakecommands for development workflow, but noMakefileexists in the repository. This creates a broken developer experience where documented commands don't work.Current State
Missing File: No
Makefilein the project rootDocumented Commands (that don't work):
make help- Show all available commandsmake install- Install package in development modemake install-dev- Install development dependenciesmake test- Run testsmake lint- Run linting checksmake format- Format codemake security- Run security checksmake clean- Clean build artifactsmake build- Build packagemake ci- Run all CI checks locallymake pre-commit- Run pre-commit hooks on all filesEvidence from CONTRIBUTING.md:
makecommandsExpected Behavior
Contributors should be able to use all documented
makecommands for a consistent development experience.Proposed Solution
Create a comprehensive
Makefilethat implements all the referenced commands:Core Development Commands
make help- Display available commands with descriptionsmake install- Install package in development mode (pip install -e .)make install-dev- Install with development dependenciesCode Quality Commands
make test- Run pytest with coverage reportingmake lint- Run flake8 and mypy lintingmake format- Run black and isort code formattingmake security- Run bandit security scanningBuild & Deployment Commands
make clean- Remove build artifacts, cache filesmake build- Build package for distributionmake ci- Run complete CI pipeline locallyAdditional Convenience Commands
make pre-commit- Run pre-commit hooksmake dev-check- Quick development check (format + lint + test)Implementation Details
The Makefile should:
.PHONYtargets to avoid conflictsDependencies
May require adding development dependencies to
pyproject.toml:Benefits
Note: I'm a GirlScript Summer of Code contributor and would love to work on this infrastructure improvement! 🚀