v0.12
The major highlights of v0.12 are some improved flexibility in commands (you can now apply "patches" to formulas for quick-n-easy configuration), and performance improvements (compression is finally enabled for most storage).
The default executor for repeatr run
is now the 'runc' system -- meaning fine-grained capabilities and security features from the Policy system introduced in v0.11 will now be impactful in the default modes.
Also, this is the first version of Repeatr built with the recently-released go 1.6! This should result in all-around performance improvements due to continuing upstream improvements to garbage collection (and some optimizations to sorting which will probably make a significant dent in our filesystem hashing as well).
Full list of notable changes:
- Feature:
repeatr run
now outputs the exit code in the structure it sends to stdout, so it can be mechanically extracted and clearly disambiguated from repeatr's own exit code. - Feature:
repeatr run
now accepts additional snippets of partial formulas with the-p
flag, and will patch them onto its main argument. This allows simple scripts to provide custom values to a run without needed to sprout a whole json/yaml parser. The fully patched values will appear in the formula emitted at the end of the run along with the output hashes, as you might expect. Use judiciously; this functionality makes sense inrepeatr run
since one-off runs are its MO, but not all upcoming features will support this particular escape valve (in particular, pipelines certainly won't). Currently only env vars are merged. - Feature
repeatr run
now accepts env vars with the-e
flag, and will patch them onto the formula. This is shorthand for doing the same with-p
. - Bugfix: When using 'tar' transports with 'http' or 'https' URLs, HTTP status codes of 404 will now be reported as
DataDNE
errors. Previously, this would be incorrectly reported as existing but corrupt data. - Change:
repeatr run
now accepts the formula file as a positional argument (you can get rid of the-i
in all your scripts). - Change: The default executor in
repeatr run
is now 'runc' instead of 'chroot'. (You can continue to use the chroot executor by flagging--executor chroot
.) - Improvement: All transports which store filesystems in tar format (this includes 'tar', 's3' and 'gc') now upload gzip compressed data by default.
- Bugfix: When using the 'git' transport, relative paths like ".." are now handled much more reasonably. (Internally, all paths are absolutized by repeatr before invoking git, to work around a series of very interesting git behaviors; however, since git metadata is already not exposed to the filesystem inside containment, this change should be quite transparent.)
- Change:
repeatr twerk
default image updated. As always, remember: you're not actually supposed to use this feature outside of experimentation and feel embarrassed if you do; changes are no-warning. - Bugfix: Subcommands with incorrect usage now exit with a status code of 1 after printing their help text. (Previously, they incorrectly exited with a zero!)