Terrarium no longer interfaces with pip and virtualenv as libraries - instead, all interfacing occurs at the command level
Terrarium no longer creates a virtualenv bootstrap script (which was hella janky, tbh)
Previously: A terrarium environment archive consisted of a nearly complete virtualenv, which had to be made relocatable
Now: When building a new environment archive, terrarium will use or build wheels for every requirement. The archive is just the complete set of wheel files, plus the requirements.txt file
Now: When installing a terrarium environment archive, a brand new virtualenv is created every time. Then the wheels are installed using the contained requirements.txt. Downloads from the pypi index and cache dir are disabled.
Improved logging, including changing the meaning of --quiet, which now will completely silence all logging
Improved error handling
Improved parsing of requirements.txt files, include handling -r or --requirement options for including other requirements files: terrarium will create a flattened requirement structure
Fixed S3 retry logic so it actually retries - previously, it would stop after the first failure.
--quiet
, which now will completely silence all logging