Skip to content

Add Missing Makefile for Development Commands #11

Description

@Tejeswar001

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

  • make help - Display available commands with descriptions
  • make install - Install package in development mode (pip install -e .)
  • make install-dev - Install with development dependencies

Code Quality Commands

  • make test - Run pytest with coverage reporting
  • make lint - Run flake8 and mypy linting
  • make format - Run black and isort code formatting
  • make security - Run bandit security scanning

Build & Deployment Commands

  • make clean - Remove build artifacts, cache files
  • make build - Build package for distribution
  • make ci - Run complete CI pipeline locally

Additional Convenience Commands

  • make pre-commit - Run pre-commit hooks
  • make dev-check - Quick development check (format + lint + test)

Implementation Details

The Makefile should:

  1. Use .PHONY targets to avoid conflicts
  2. Include colored output for better UX
  3. Have comprehensive help documentation
  4. Handle common development workflows
  5. 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! 🚀

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions