Skip to content

yam: yet another make

tests license pypi downloads code style: black build automation: yam Lint: ruff

yam offers an alternative tool to control the housekeeping tasks of a project, as well as the creation of executables and non-source files from source files. It's inspired from GNU make, but offers more flexibility with regular expressions and phony targets.

Features

Phony timestamps

Makefiles are nowadays used more and more often to execute phony targets as with interpreted languages, there is no compiled file as output. The prerequisites are often other phony targets, which can add unnecessary rebuilds. yam can keep the track if there is a need to rebuild the phony target, and avoid them.

Regex recipes

GNU make targets can only have only a single % in a pattern. This is rather restrictive, especially in web development. yam allows a prerequisite or a target to be a regex, allowing much more flexibility.

Variety of configuration files

yam allows a multiple file types to configure it, to fit your needs: toml, yaml, and json files are all welcome here.

Local overrides

We realise that the modern development is a team sport, and that developers need the freedom to configure something that isn't optimal for their environment. Following the great UNIX tradition, everything in a cookbook can be locally overridden by files with the same extension inside a directory named <cookbook_filename>.d/.