github.com/markmuetz/remake

Pure Python build tool.

Open this visualization on its own page →

Contributors

1

Lines of Code

442

From

2020-02-18

To

2020-12-23

About markmuetz/remake

Remake is a Python-based build tool designed as a modern alternative to Make, specifically tailored for file-based task automation. It allows developers to define complex task graphs using pure Python by subclassing a TaskRule class, where each task can depend on outputs from previous tasks. The tool uses filename formatters to elegantly specify inputs and outputs for each task, making it straightforward to construct intricate workflows without complex configuration files.

The tool is content-aware, meaning it tracks file and task contents to determine which tasks need rerunning. If a task's code or any of its input files change, Remake will automatically rerun that task and any dependent tasks. This smart invalidation system makes Remake particularly well-suited for scientific workflows, where reliably recreating specific output files by running only necessary computations is crucial. It can also generate detailed reports showing how any particular file was produced, providing full traceability through the build process.

Remake can be used either interactively within a Python shell or as a command-line tool, providing flexibility in how users integrate it into their workflows. The project includes comprehensive documentation and demonstrates good software engineering practices with automated testing and code coverage tracking.

Share this video