Porter Runtime Architecture

The Porter “runtime” refers to the embedded copy of the porter-runtime binary that is inside every single Porter bundle, located at /cnab/app/porter-runtime.

Bundle Output

When a bundle is executed by Porter, the output generated by the Porter runtime is directed to STDERR. Output generated by the mixins may be sent to either STDOUT or STDERR depending on the behavior of the tool that the mixin calls.

For example, a bash script that uses “echo” will have its output sent to STDOUT. Other mixins may send some output to STDOUT and some to STDERR depending on the message severity.

If you want to exclude Porter’s output from your bundle output, do not pass the –debug flag to the corresponding porter command, such as porter install or porter upgrade. When a bundle is run in “debug mode”, Porter will print additional output about how the bundle and mixins were run to STDERR.