What's new?
* TLS Canary is now a proper Python package. Stable releases can be installed with a simple `pip install tlscanary`.
* Run modes `performance`, `regression`, and `scan` now log into a central logging facility that stores compressed run logs in `~/.tlscanary/log`. Producing a report now requires a separate call to `tlscanary`. To generate the legacy HTML report, use a variation of `tlscanary log -a htmlreport`.
* Introduced a new run mode called `log` for maintaining the run log database and generating reports. See `tlscanary log --help` for details.
* Introduced a new JSON-based log format, produced by `tlscanary log -a json`.
* The `-t/--test` and `-b/--base` arguments now also take paths to Firefox package files or build trees.
* You can now set prefs in the test candidates using the `-p/-p1/p2` arguments, just like in good old [ssl_compat](/mwobensmith/ssl_compat/) days.
* Much more metadata is collected about the test candidates and stored in the run log.
* Windows PowerShell is now a fully supported platform.
* Introduced a `srcupdate` run mode for updating host databases. See `tlscanary srcupdate --help` and the [README](README.md) for details.
* Command line now takes "run modes" as first positional argument. Internally the argument parser employs subparsers for this, thus shared arguments like `--workdir` and `--debug` must now be given before the run mode argument.
* Scans are temporarily limited to 100k hosts per default. This hotfix was introduced to work around instabilities on some machines that do not have sufficient amount of swap memory. You can override this by setting `-l 500000`, but your results may vary.
* Introduced several internal architecture changes that made all those new features possible.