Skip to content

Examples

Ready-made profiles live in examples/. Each profile pairs a wrapper Makefile with a matching makefiles.config. The wrapper is a copy of templates/Makefile except where noted below.

Wrapper Config skills update_wrapper Use when
Makefile.versioning-only makefiles.config.versioning-only (empty) yes Version bumps only
Makefile.python makefiles.config.python python no Python package / app
Makefile.python-docs makefiles.config.python-docs python mkdocs no Python project with MkDocs
Makefile.bash-project makefiles.config.bash-project bash yes Shell-script repositories
Makefile.ruby makefiles.config.ruby ruby yes Ruby gem / library projects
Makefile.perl makefiles.config.perl perl yes Perl scripts and modules
Makefile.php makefiles.config.php php yes PHP applications and libraries

Copy the wrapper to ./Makefile and the matching config to ./makefiles.config, or copy only templates/Makefile and edit makefiles.config after make init.

Python examples and wrapper refresh

Makefile.python and Makefile.python-docs append a CI alias overlay (lint, check, test, …) for reusable-python-makefile-ci. That overlay would be wiped if make update refreshed the wrapper, so their configs set update_wrapper = no. Skills still update normally.

Versioning only

makefiles.config.versioning-only:

skills =
update_wrapper = yes
cp examples/Makefile.versioning-only ./Makefile
cp examples/makefiles.config.versioning-only ./makefiles.config
# add .makefiles/ to .gitignore
make init
make doctor
make bump-patch
# or, to start a -devN pre-release cycle instead: make bump-dev

Python

makefiles.config.python:

skills = python
update_wrapper = no
cp examples/Makefile.python ./Makefile
cp examples/makefiles.config.python ./makefiles.config
make init
make python-install-dev
make python-check

Python + MkDocs

makefiles.config.python-docs:

skills = python mkdocs
update_wrapper = no
cp examples/Makefile.python-docs ./Makefile
cp examples/makefiles.config.python-docs ./makefiles.config
make init
make python-check
make mkdocs-serve MKDOCS_PORT=8000

Bash

makefiles.config.bash-project:

skills = bash
update_wrapper = yes
cp examples/Makefile.bash-project ./Makefile
cp examples/makefiles.config.bash-project ./makefiles.config
make init
make bash-list-scripts
make bash-check

Ruby

makefiles.config.ruby:

skills = ruby
update_wrapper = yes
cp examples/Makefile.ruby ./Makefile
cp examples/makefiles.config.ruby ./makefiles.config
make init
make ruby-bundle
make ruby-check

Perl

makefiles.config.perl:

skills = perl
update_wrapper = yes
cp examples/Makefile.perl ./Makefile
cp examples/makefiles.config.perl ./makefiles.config
make init
make perl-doctor
make perl-check

PHP

makefiles.config.php:

skills = php
update_wrapper = yes
cp examples/Makefile.php ./Makefile
cp examples/makefiles.config.php ./makefiles.config
make init
make php-doctor
make php-check

Ignore the clone

Consumer projects should ignore .makefiles/ (see examples/.gitignore). Commit the wrapper Makefile and makefiles.config; do not commit the clone.