The 1.0.0 release of pex introduces a few breaking changes: `pex -r` now
takes requirements.txt files instead of requirement specs, `pex -s` has
now been removed since source specs are accepted as arguments, and
`pex -p` has been removed in favor of its alias `pex -o`.
The pex *command line interface* now adheres to semver insofar as
backwards incompatible CLI changes will invoke a major version change.
Any backwards incompatible changes to the PEX environment variable
semantics will also result in a major version change. The pex *API*
adheres to semver insofar as backwards incompatible API changes will
invoke minor version changes.
For users of the PEX API, it is recommended to add minor version ranges,
e.g. `pex>=1.0,<1.1`. For users of the PEX CLI, major version ranges
such as `pex>=1,<2` should be sufficient.
* BREAKING CHANGE: Removes the `-s` option in favor of specifying
directories directly as arguments to the pex command line.
* BREAKING CHANGE: `pex -r` now takes requirements.txt filenames and
*not* requirement specs. Requirement specs are now passed as
arguments to the pex tool. Use `--` to escape command line arguments
passed to interpreters spawned by pex.
* Adds a number of flag aliases to be more compatible with pip command
lines: `--no-index`, `-f`, `--find-links`, `--index-url`,
`--no-use-wheel`. Removes `-p` in favor of `-o` exclusively.
* Adds `--python-shebang` option to the pex tool in order to set the
`!` shebang to an exact path.
* Adds support for `PEX_PYTHON` environment variable which will cause
the pex file to re-invoke itself using the interpreter specified,
e.g. `PEX_PYTHON=python3.4` or
`PEX_PYTHON=/exact/path/to/interpreter`.
* Adds support for `PEX_PATH` environment variable which allows
merging of PEX environments at runtime. This can be used to inject
plugins or entry_points or modules from one PEX into another
without explicitly building them together.
* Consolidates documentation of `PEX_` environment variables and adds
the `--help-variables` option to the pex client.
* Adds helper method to dump a package subdirectory onto disk from
within a zipped PEX file. This can be useful for applications that
know they're running within a PEX and would prefer some static
assets dumped to disk instead of running as an unzipped PEX file.
* Now supports extras for static URLs and installable directories.
* Adds `-m` and `--entry-point` alias to the existing `-e` option for
entry points in the pex tool to evoke the similarity to `python -m`.
* Adds console script support via `-c/--script/--console-script` and
`PEX_SCRIPT`. This allows you to reference the named entry point
instead of the exact `module:name` pair. Also supports scripts
defined in the `scripts` section of setup.py.
* Adds more debugging information when encountering unresolvable
requirements.
* Bug fix: `PEX_COVERAGE` and `PEX_PROFILE` did not function correctly
when SystemExit was raised.
* Bug fix: Fixes caching in the PEX tool since we don't cache the
source distributions of installable directories.