markmuetz/remake ↗
Created Dec 27, 2020 · View the markmuetz/remake repository page
Pure Python build tool.
Want this for your repo?
Render a free sample of any GitHub repo in seconds.
Contributors
1
Lines of Code
442
From
Feb 18, 2020
To
Dec 23, 2020
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.