Use YAML templates for setting up Python and running tests.
Use matrix instead of separate jobs for Windows 32-bit and 64-bit runs.
Change --debugpy-logs to --debugpy-log-dir with explicit destination, and use that to capture and publish test logs in CI.
Delete logs for passed tests by default, and add --debugpy-log-passed to opt out.
Fix launcher not propagating debuggee exit code.
Fix attach-by-PID without explicit --log-dir overriding PTVSD_LOG_DIR (and disabling logging).
Improve test logging, with a separate directory for every test.
Various test fixes.
Move docstrings to top-level package, and update them to reflect the current behavior.
Remove unused code in ptvsd.common.log.
Move sys.path/prefix/site_packages logging into ptvsd.common.log, and log it from adapter and server to the same level of detail as the tests.
Fix injected code snipped for attach-by-PID.
Fix some Unicode issues in adapter and tests.
Refactor Timeline, debug.Session, and start methods.
Implement per-test-runner out-of-process watchdog for processes spawned by tests.
Add file logging for tests and watchdog.
Improve stdio capture in debug.Session when test fails.
Remove redundant logging in debug.Session.
Fix various bugs around handling of disconnect in JsonIOStream and JsonMessageChannel.
Fix handling of DAP "terminated" event in debug.Session.
Add --ptvsd-logs and --pydevd-logs switches to pytest.
Improve message logging to fully capture the raw message data in the logs if deserialization fails.
Log all debuggee environment variables in debug.Session, and improve log readability.