An open API service indexing awesome lists of open source software.

https://github.com/matthewdeanmartin/makemake

quality gates for Makefile
https://github.com/matthewdeanmartin/makemake

automation build-tools ci-cd devops makefile programming quality-gates

Last synced: about 7 hours ago
JSON representation

quality gates for Makefile

Awesome Lists containing this project

README

          

# makemake
Quality gates for Makefile

## Hello World Python Package with Comprehensive Makefile Validation

This repository contains a complete hello_world Python package with a comprehensive Makefile that includes all the tools necessary to validate a Makefile.

### Package Structure

```
.
├── hello_world/ # Python package
│ └── __init__.py # Package with hello() function
├── pyproject.toml # Modern Python packaging configuration
├── Makefile # Comprehensive validation targets
├── demo.py # Demonstration script
└── README.md # This file
```

### Makefile Validation Tools

The Makefile includes targets for all these validation tools:

- **almost-make**: Check Makefile compatibility with make alternatives
- **make2help**: Generate help documentation from Makefile
- **make-help**: Help system validation
- **make-help-helper**: Help utilities
- **makefile-checker**: Validate Makefile syntax and best practices
- **shellcheck-makefile**: Check shell scripts in Makefile with shellcheck
- **shellcheck-py**: Check Python scripts with shellcheck-py
- **mbake**: Makefile build tool validation

### Usage

1. **Quick Demo**: Run the demonstration script
```bash
python3 demo.py
```

2. **Install Package**: Install the hello_world package
```bash
make install-core # Install core tools (handles conflicts)
```

3. **Run All Validations**: Execute the complete validation pipeline
```bash
make validate-makefile
```

4. **Get Help**: See all available targets
```bash
make help
```

5. **Test Package**: Run basic package tests
```bash
make test
```

### Key Features

- **Graceful Fallbacks**: All validation tools have fallback behavior when not installed
- **Dependency Management**: Resolves conflicts between make-help and mbake through optional dependencies
- **Comprehensive Pipeline**: Single target (`validate-makefile`) runs all validation tools
- **Development Workflow**: Includes clean, build, test, and format targets
- **Self-Documenting**: Auto-generated help from target descriptions

### Available Targets

- `help` - Show help message
- `all` - Install dependencies, validate Makefile, and run tests
- `install` - Install package with all available tools
- `install-core` - Install core validation tools (no conflicts)
- `test` - Run basic package tests
- `validate-makefile` - Run all Makefile validation tools
- `clean` - Clean build artifacts
- `build` - Build the package
- `show-structure` - Display package structure

### Individual Tool Targets

Each validation tool has its own target for granular control:
- `almost-make`, `make2help`, `make-help`, `make-help-helper`
- `makefile-checker`, `shellcheck-makefile`, `shellcheck-py`, `mbake`

The Makefile demonstrates best practices for:
- Tool availability checking
- Graceful error handling
- Comprehensive documentation
- Modular validation pipeline
- Cross-platform compatibility