repeatr run same_thing_in > same_thing_out
Repeatr is a tool for running processes repeatedly. Repeatr is designed to make task definition precise, environment setup portable, and results reproducible.
Some of Repeatr's key features and goals include:
Repeatr is not a build tool; think of it more as a workspace manager.
It's important to have a clean workspace, fill it with good tools, and keep the materials going both in and out of your workspace well-inventoried.
You can use make
, cake
, rake
, bake
, or whatever's popular this month inside Repeatr; Repeatr gives you a framework to make sure everyone plays nice.
Repeatr is just one part of an ecosystem of software called the Timeless Stack.
The Timeless Stack documentation has its own repo: https://github.com/polydawn/timeless
Much of the documentation is published in html book form: https://repeatr.io/
Other closely related projects include Rio -- this provides the filesystem snapshot and transport for Repeatr -- and Stellar -- which provides bigger-picture pipelining tools to drive around Repeatr in interesting (and more user-friendly) ways.
Repeatr is in "version 0.x" ranges. That means (technically) we are not promising backwards compatablity yet; releases may make API changes.
Despite this warning, we consider the repeatr API fairly stable, and are happy to recommend building with it. We made one set of breaking changes out of the last 2.5 years; and we expect this API to last at least twice as long as the previous one.
Binary releases are available as a bundle in the github releases page for the Timeless Stack. It's also easy to build from source if you want the absolute latest bleeding-edge features.
Git-clone, then in the repo dir:
fling init # fetch libraries
fling install-deps # build rio component (used to fetch other plugins)
fling fetch-plugins # fetch plugins
fling # build & test
Future incremental builds are just fling
-- the rest of that was all first-time setup.
Binaries go into the bin/
dir; add it to your $PATH.
Libraries are handled via git submodules. You can run fling init
again at any time to re-sync them.
Plugins are handled via rio
, another part of the Timeless Stack that Repeatr builds upon.
You can use fling -h
to see other individual build and test command options.
For example fling test
will only run tests; fling install
will not test, just build binares in bin/
.