Rewrote in Twisted, which lets us read/scan/print all log lines in
realtime. The output is now correctly interleaved (as well as
maintaining the stdout-vs-stderr of each message). The renamed
--warnings= logfile records all relevant lines from *both* stdout and
stderr (i.e. any that includes "DeprecationWarning"), which handles a
change (perhaps in recent Twisteds?) that emits these warnings on stdout
instead of stderr.
This runs trial against the latest (git) Twisted and Foolscap, to give
us an early warning about anything we're currently doing that will
become deprecated in their next releases.
Tox doesn't run shell pipelines, and is unhappy about running tools that
it didn't install itself (including non-python things like "make"). So
this adds misc/build_helpers/run-deprecations.py, a python script that
runs a given command (i.e. trial) and writes stdout into a separate file
where the buildbot can see it, and counts the "DeprecationWarning" lines
from the file to decide the returncode.
This ought to improve the status display on the buildbot "test
deprecations" step.
The udpprot.transport.connect() fails if we don't have a network
connection, but the port is still listening, so trial gives us a
DirtyReactorError. The fix is a "finally:" which does
port.stopListening() even in this case.
Closes ticket:2769
We only really need "Twisted >= 13.0.0", but we must add "[tls]" because
otherwise pip won't install it when Foolscap asks for it later, and we
need ">= 15.1.0" because that's the first version that provided "[tls]".
Fixes ticket:2760.
Also add a comment to docs/index.rst, pointing folks who are browsing
the source tree (locally, with an editor) at the formatted version on
readthedocs.org .
Also it avoids the failure mode where a user forgets to activate the
virtualenv, types the recommended "pip install" command, and installs
stuff directly to their system instead of safely confined inside the
virtualenv.
This is only useful when running "setup.py install" directly, and is not
consulted when following our recommended "pip install .".
Platform-specific directories of wheels (that we, Tahoe, host ourselves)
are available for some platforms: these are described in
docs/INSTALL.rst and must be provided as a pip argument, not a
setup.cfg/easy_install configuration:
pip install --find-links=https://tahoe-lafs.org/deps/
This also removes our involvement with eggs (which, I believe, are
usually downloaded insecurely by easy_install).
* use correct fixed-width-font markup
* fix hyperlinks to neighboring (github-side) .rst files
* refer to python-2.7.11 consistently (thanks to PRab for the catch)
Thanks to dstufft for the suggestion. I know this can make it slightly
easier to run tahoe in some funny environments (where an appropriate
"python" is on your path but the generated "tahoe" executable is not).