6 patches for repository davidsarah@dev.allmydata.org:/home/darcs/tahoe/trunk: Mon Jan 10 06:23:14 GMT Standard Time 2011 david-sarah@jacaranda.org * src/allmydata/scripts/debug.py: add 'tahoe debug trial' command. refs #1296 Mon Jan 10 06:28:31 GMT Standard Time 2011 david-sarah@jacaranda.org * Tests for 'tahoe debug trial'. refs #1296 Mon Jan 10 06:30:35 GMT Standard Time 2011 david-sarah@jacaranda.org * Make 'setup.py trial' and 'setup.py test' use 'bin/tahoe debug trial instead of setuptools_trial. Mon Jan 10 06:33:06 GMT Standard Time 2011 david-sarah@jacaranda.org * Remove setuptools_trial egg. Mon Jan 10 06:34:19 GMT Standard Time 2011 david-sarah@jacaranda.org * Add documentation for 'tahoe debug trial'. Mon Jan 10 06:37:02 GMT Standard Time 2011 david-sarah@jacaranda.org * Makefile: use the same method of running bin/tahoe consistently, and use 'tahoe debug trial' to run tests. Set TEST to allmydata.test rather than allmydata. New patches: [src/allmydata/scripts/debug.py: add 'tahoe debug trial' command. refs #1296 david-sarah@jacaranda.org**20110110062314 Ignore-this: ea898abe8dfccb158684b48f1ec2271b ] { hunk ./src/allmydata/scripts/debug.py 4 # do not import any allmydata modules at this level. Do that from inside # individual functions instead. -import struct, time, os +import struct, time, os, sys from twisted.python import usage, failure from twisted.internet import defer hunk ./src/allmydata/scripts/debug.py 7 +from twisted.scripts import trial as twisted_trial class DumpOptions(usage.Options): hunk ./src/allmydata/scripts/debug.py 782 return code.interact() +class TrialOptions(twisted_trial.Options): + def getSynopsis(self): + return "Usage: tahoe debug trial [options] [[file|package|module|TestCase|testmethod]...]" + + def parseArgs(self, *args): + self.no_args = not args + + def getUsage(self, width=None): + t = twisted_trial.Options.getUsage(self, width) + t += """ +The 'tahoe debug trial' command uses the correct imports for this instance of +Tahoe-LAFS. The default test suite is 'allmydata.test'. +""" + return t + + +def trial(config): + sys.argv = ['trial'] + sys.argv[3:] + if config.no_args: + sys.argv += ['allmydata.test'] + + # This does not return. + twisted_trial.run() + + class DebugCommand(usage.Options): subCommands = [ ["dump-share", None, DumpOptions, hunk ./src/allmydata/scripts/debug.py 816 ["catalog-shares", None, CatalogSharesOptions, "Describe all shares in node dirs."], ["corrupt-share", None, CorruptShareOptions, "Corrupt a share by flipping a bit."], ["repl", None, ReplOptions, "Open a Python interpreter."], + ["trial", None, TrialOptions, "Run Twisted Trial with the correct imports."], ] def postOptions(self): if not hasattr(self, 'subOptions'): hunk ./src/allmydata/scripts/debug.py 833 tahoe debug catalog-shares Describe all shares in node dirs. tahoe debug corrupt-share Corrupt a share by flipping a bit. tahoe debug repl Open a Python interpreter. + tahoe debug trial Run Twisted Trial with the correct imports. Please run e.g. 'tahoe debug dump-share --help' for more details on each subcommand. hunk ./src/allmydata/scripts/debug.py 847 "catalog-shares": catalog_shares, "corrupt-share": corrupt_share, "repl": repl, + "trial": trial, } } [Tests for 'tahoe debug trial'. refs #1296 david-sarah@jacaranda.org**20110110062831 Ignore-this: 7ba12fd9e2e707627a6dff44a9d89be7 ] { hunk ./src/allmydata/test/test_cli.py 506 help = str(cli.AddAliasOptions()) self.failUnless("add-alias ALIAS DIRCAP" in help, help) + def test_debug_trial(self): + help = str(debug.TrialOptions()) + self.failUnless("debug trial [options] [[file|package|module|TestCase|testmethod]...]" in help, help) + self.failUnless("The 'tahoe debug trial' command uses the correct imports" in help, help) + class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase): hunk ./src/allmydata/test/test_system.py 1756 return d + def test_debug_trial(self, *args): + d = self._run_cli_in_subprocess(['debug', 'trial', 'allmydata.test.trialtest']) + def _check_failure( (out, err, rc) ): + self.failUnlessEqual(rc, 1) + self.failUnlessIn("[SKIPPED]: allmydata.test.trialtest.Success.test_skip", out) + self.failUnlessIn("[TODO]: allmydata.test.trialtest.Success.test_todo", out) + self.failUnlessIn("[FAIL]: allmydata.test.trialtest.Failure.test_fail", out) + self.failUnlessIn("[ERROR]: allmydata.test.trialtest.Failure.test_deferred_error", out) + self.failUnlessIn("[ERROR]: allmydata.test.trialtest.Failure.test_error", out) + self.failUnlessIn("FAILED", out) + d.addCallback(_check_failure) + + d.addCallback(lambda ign: self._run_cli_in_subprocess(['debug', 'trial', 'allmydata.test.trialtest.Success'])) + def _check_success( (out, err, rc) ): + self.failUnlessEqual(rc, 0) + self.failUnlessIn("[SKIPPED]: allmydata.test.trialtest.Success.test_skip", out) + self.failUnlessIn("[TODO]: allmydata.test.trialtest.Success.test_todo", out) + self.failUnlessIn("PASSED", out) + d.addCallback(_check_success) + return d + def _run_cli(self, argv, stdin=""): #print "CLI:", argv stdout, stderr = StringIO(), StringIO() addfile ./src/allmydata/test/trialtest.py hunk ./src/allmydata/test/trialtest.py 2 +# This is a dummy test suite that we can use to check that 'tahoe debug trial' +# is working properly. Since the module name does not start with 'test_', it +# will not be run by the main test suite. + +from twisted.trial import unittest +from twisted.internet import defer + + +class Success(unittest.TestCase): + def test_succeed(self): + pass + + def test_skip(self): + raise unittest.SkipTest('skip') + + def test_todo(self): + self.fail('umm') + test_todo.todo = 'never mind' + + +class Failure(unittest.TestCase): + def test_fail(self): + self.fail('fail') + + def test_error(self): + raise AssertionError('clang') + + def test_deferred_error(self): + return defer.fail(AssertionError('screech')) } [Make 'setup.py trial' and 'setup.py test' use 'bin/tahoe debug trial instead of setuptools_trial. david-sarah@jacaranda.org**20110110063035 Ignore-this: 12c9c0291d01c147b1ede02e8911af1 ] { hunk ./setup.py 67 install_requires = adglobals['install_requires'] __requires__ = install_requires[:] -if 'trial' in sys.argv or 'test' in sys.argv: - if version is not None: - __requires__.append(APPNAME + '==' + version) - else: - __requires__.append(APPNAME) egg = os.path.realpath(glob.glob('setuptools-*.egg')[0]) sys.path.insert(0, egg) hunk ./setup.py 132 # http://pypi.python.org/pypi/darcsver setup_requires.append('darcsver >= 1.7.1') -# Nevow requires Twisted to setup, but doesn't declare that requirement in a -# way that enables setuptools to satisfy that requirement before Nevow's -# setup.py tried to "import twisted". Fortunately we require setuptools_trial -# to setup and setuptools_trial requires Twisted to install, so hopefully -# everything will work out until the Nevow issue is fixed: -# http://divmod.org/trac/ticket/2629 setuptools_trial is needed if you want -# "./setup.py trial" or "./setup.py test" to execute the tests (and in order -# to make sure Twisted is installed early enough -- see the paragraph above). -# http://pypi.python.org/pypi/setuptools_trial -setup_requires.extend(['setuptools_trial >= 0.5']) - # setuptools_darcs is required to produce complete distributions (such as # with "sdist" or "bdist_egg") (unless there is a PKG-INFO file present which # shows that this is itself a source distribution). For simplicity, and hunk ./setup.py 140 # to setup_requires. http://pypi.python.org/pypi/setuptools_darcs setup_requires.append('setuptools_darcs >= 1.1.0') -# trialcoverage is required if you want the "trial" unit test runner to have a -# "--reporter=bwverbose-coverage" option which produces code-coverage results. -# The required version is 0.3.3, because that is the latest version that only -# depends on a version of pycoverage for which binary packages are available. -if "--reporter=bwverbose-coverage" in sys.argv: - setup_requires.append('trialcoverage >= 0.3.3') - # stdeb is required to produce Debian files with the "sdist_dsc" command. if "sdist_dsc" in sys.argv: setup_requires.append('stdeb >= 0.3') hunk ./setup.py 225 import test_mac_diskimage return test_mac_diskimage.test_mac_diskimage('Allmydata', version=self.distribution.metadata.version) +class Trial(Command): + # This is just a subset of the most useful options, for compatibility. + # Use 'bin/tahoe debug trial' for the full set of trial options. + user_options = [ ("rterrors", "e", "Print out tracebacks as soon as they occur."), + ("reporter=", None, "The reporter to use for this test run."), + ("suite=", "s", "Specify the test suite."), + ] + def initialize_options(self): + self.rterrors = False + self.reporter = None + self.suite = "allmydata.test" + def finalize_options(self): + pass + def run(self): + args = [sys.executable, os.path.join('bin', 'tahoe.pyscript'), 'debug', 'trial'] + if self.rterrors: + args += ['--rterrors'] + if self.reporter: + args += [self.reporter] + if self.suite: + args += [self.suite] + rc = subprocess.call(args) + sys.exit(rc) + class CheckAutoDeps(Command): user_options = [] def initialize_options(self): hunk ./setup.py 270 def run(self): bin_tahoe_template = os.path.join("bin", "tahoe-script.template") - if sys.platform == 'win32': - # 'tahoe' script is needed for cygwin - script_names = ["tahoe.pyscript", "tahoe"] - else: - script_names = ["tahoe"] + # tahoe.pyscript is really only necessary for Windows, but we also + # create it on Unix for consistency. + script_names = ["tahoe.pyscript", "tahoe"] # Create the tahoe script file under the 'bin' directory. This # file is exactly the same as the 'tahoe-script.template' script hunk ./setup.py 370 "run_with_pythonpath": RunWithPythonPath, "check_auto_deps": CheckAutoDeps, "test_mac_diskimage": TestMacDiskImage, + "trial": Trial, "make_executable": MakeExecutable, "sdist": MySdist, }, } [Remove setuptools_trial egg. david-sarah@jacaranda.org**20110110063306 Ignore-this: 329f5062db0c7914464c547a3957c596 ] { hunk ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/COPYING.SPL.txt 1 -Permission is hereby granted to any person obtaining a copy of this work to -deal in this work without restriction (including the rights to use, modify, -distribute, sublicense, and/or sell copies). rmfile ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/COPYING.SPL.txt hunk ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/README.txt 1 - -setuptools_trial Manual -======================= - -About ------ - -This is a plugin for setuptools that integrates Twisted trial. Once -installed, "python ./setup.py trial" will run the package's unit tests -using Twisted trial. The package can also optionally be configured so -that "python ./setup.py test" will use Twisted trial instead of pyunit -a.k.a. unittest. - - -Installation ------------- - -With easy_install: - - easy_install setuptools_trial - -Alternative manual installation: - - tar -zxvf setuptools_trial-X.Y.Z.tar.gz - cd setuptools_trial-X.Y.Z - python setup.py install - -Where X.Y.Z is a version number. - -Alternative to make a specific package use setuptools_trial without -installing setuptools_trial into the system: - - Put "setup_requires=['setuptools_trial']" in the call to setup() in - the package's setup.py file. - - -Usage ------ - -To use this plugin, you must first package your python module with -`setup.py` and use setuptools. The former is well documented in the -distutils manual: - - http://docs.python.org/dist/dist.html - -To use setuptools instead of distutils, just edit `setup.py` and -change - - from distutils.core import setup - -to - - from setuptools import setup - -Once setuptools_trial is installed (either into the system or just for -the current package), then "python ./setup.py trial" will run trial on -the package. - -You can then make "python ./setup.py test" use trial instead of pyunit -(unittest) by adding the following stanza to your project's setup.py: - - [aliases] - test = trial - -See also the output of "python ./setup.py trial --help" for usage -options. - - -References ----------- - -How to distribute Python modules with Distutils: - - http://docs.python.org/dist/dist.html - - -Setuptools complete manual: - - http://peak.telecommunity.com/DevCenter/setuptools - - -Thanks to Yannick Gingras for providing the prototype for this -README.txt. rmfile ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial/README.txt rmdir ./setuptools_trial-0.5.9.egg/share/doc/python-setuptools_trial rmdir ./setuptools_trial-0.5.9.egg/share/doc rmdir ./setuptools_trial-0.5.9.egg/share rmfile ./setuptools_trial-0.5.9.egg/setuptools_trial/__init__.py hunk ./setuptools_trial-0.5.9.egg/setuptools_trial/_version.py 1 - -# This is the version of this tree, as created by setup.py darcsver from the Darcs patch -# information: the main version number is taken from the most recent release -# tag. If some patches have been added since the last release, this will have a -# -NN "build number" suffix, or else a -rNN "revision number" suffix. Please see -# pyutil.version_class for a description of what the different fields mean. - -verstr = "0.5.9" -try: - from pyutil.version_class import Version as pyutil_Version - __version__ = pyutil_Version(verstr) -except (ImportError, ValueError): - # Maybe there is no pyutil installed, or this may be an older version of - # pyutil.version_class which does not support SVN-alike revision numbers. - from distutils.version import LooseVersion as distutils_Version - __version__ = distutils_Version(verstr) rmfile ./setuptools_trial-0.5.9.egg/setuptools_trial/_version.py hunk ./setuptools_trial-0.5.9.egg/setuptools_trial/setuptools_trial.py 1 -import sys - -from setuptools.command import test - - -class TrialTest(test.test): - """ - Twisted Trial setuptools command - """ - - user_options = test.test.user_options + [ - ('rterrors', 'e', "Realtime errors: print out tracebacks as soon as they occur."), - ('debug-stacktraces', 'B', "Report Deferred creation and callback stack traces."), - ('coverage','c', "Report coverage data."), - ('reactor=','r', "which reactor to use"), - ('reporter=', None, "Customize Trial's output with a Reporter plugin."), - ('until-failure','u', "Repeat test until it fails."), - ] - - boolean_options = ['coverage', 'debug-stacktraces', 'rterrors'] - - def initialize_options(self): - test.test.initialize_options(self) - self.coverage = None - self.debug_stacktraces = None - self.reactor = None - self.reporter = None - self.rterrors = None - self.until_failure = None - - def finalize_options(self): - if self.test_suite is None: - if self.test_module is None: - self.test_suite = self.distribution.test_suite - else: - self.test_suite = self.test_module - elif self.test_module: - raise DistutilsOptionError( - "You may specify a module or a suite, but not both" - ) - - self.test_args = self.test_suite - - def run_tests(self): - # We do the import from Twisted inside the function instead of the top - # of the file because since Twisted is a setup_requires, we can't - # assume that Twisted will be installed on the user's system prior - # to using Tahoe, so if we don't do the import here, then importing - # from this plugin will fail. - from twisted.scripts import trial - - # Handle parsing the trial options passed through the setuptools - # trial command. - cmd_options = [] - if self.reactor is not None: - cmd_options.extend(['--reactor', self.reactor]) - else: - # Cygwin requires the poll reactor to work at all. Linux requires the poll reactor - # to avoid twisted bug #3218. In general, the poll reactor is better than the - # select reactor, but it is not available on all platforms. According to exarkun on - # IRC, it is available but buggy on some versions of Mac OS X, so just because you - # can install it doesn't mean we want to use it on every platform. - # Unfortunately this leads to this error with some combinations of tools: - # twisted.python.usage.UsageError: The specified reactor cannot be used, failed with error: reactor already installed. - if sys.platform in ("cygwin"): - cmd_options.extend(['--reactor', 'poll']) - if self.reporter is not None: - cmd_options.extend(['--reporter', self.reporter]) - if self.rterrors is not None: - cmd_options.append('--rterrors') - if self.debug_stacktraces is not None: - cmd_options.append('--debug-stacktraces') - config = trial.Options() - config.parseOptions(cmd_options) - - - args = self.test_args - if type(args) == str: - args = [args,] - - config['tests'] = args - - if self.coverage: - config.opt_coverage() - - trial._initialDebugSetup(config) - trialRunner = trial._makeRunner(config) - suite = trial._getSuite(config) - - # run the tests - if self.until_failure: - test_result = trialRunner.runUntilFailure(suite) - else: - test_result = trialRunner.run(suite) - - # write coverage data - if config.tracer: - sys.settrace(None) - results = config.tracer.results() - results.write_results(show_missing=1, summary=False, - coverdir=config.coverdir) - - if test_result.wasSuccessful(): - sys.exit(0) # success - else: - sys.exit(1) # failure rmfile ./setuptools_trial-0.5.9.egg/setuptools_trial/setuptools_trial.py rmdir ./setuptools_trial-0.5.9.egg/setuptools_trial hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/PKG-INFO 1 -Metadata-Version: 1.0 -Name: setuptools-trial -Version: 0.5.9 -Summary: Setuptools plugin that makes unit tests execute with trial instead of pyunit. -Home-page: http://allmydata.org/trac/setuptools_trial -Author: Chris Galvan -Author-email: cgalvan@enthought.com -License: BSD -Description: UNKNOWN -Keywords: distutils setuptools trial setuptools_plugin -Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta -Classifier: License :: OSI Approved :: BSD License -Classifier: License :: DFSG approved -Classifier: Intended Audience :: Developers -Classifier: Operating System :: OS Independent -Classifier: Natural Language :: English -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.4 -Classifier: Programming Language :: Python :: 2.5 -Classifier: Programming Language :: Python :: 2.6 -Classifier: Topic :: Utilities -Classifier: Topic :: Software Development :: Libraries -Classifier: Framework :: Setuptools Plugin rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/PKG-INFO hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/SOURCES.txt 2 -COPYING.SPL.txt -README.txt -setup.py -setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/PKG-INFO -setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/SOURCES.txt -setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/dependency_links.txt -setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/entry_points.txt -setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/not-zip-safe -setuptools_darcs-1.2.11-py2.6.egg/EGG-INFO/top_level.txt -setuptools_darcs-1.2.11-py2.6.egg/setuptools_darcs/__init__.py -setuptools_darcs-1.2.11-py2.6.egg/setuptools_darcs/_version.py -setuptools_darcs-1.2.11-py2.6.egg/setuptools_darcs/setuptools_darcs.py -setuptools_darcs-1.2.11-py2.6.egg/share/doc/python-setuptools_darcs/README.txt -setuptools_trial/__init__.py -setuptools_trial/_version.py -setuptools_trial/setuptools_trial.py -setuptools_trial.egg-info/PKG-INFO -setuptools_trial.egg-info/SOURCES.txt -setuptools_trial.egg-info/dependency_links.txt -setuptools_trial.egg-info/entry_points.txt -setuptools_trial.egg-info/not-zip-safe -setuptools_trial.egg-info/requires.txt -setuptools_trial.egg-info/top_level.txt rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/SOURCES.txt hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/dependency_links.txt 1 - rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/dependency_links.txt hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/entry_points.txt 1 -[distutils.commands] -trial = setuptools_trial.setuptools_trial:TrialTest - rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/entry_points.txt hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/not-zip-safe 1 - rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/not-zip-safe hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/requires.txt 1 -Twisted >= 2.4.0 + rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/requires.txt hunk ./setuptools_trial-0.5.9.egg/EGG-INFO/top_level.txt 1 -setuptools_trial rmfile ./setuptools_trial-0.5.9.egg/EGG-INFO/top_level.txt rmdir ./setuptools_trial-0.5.9.egg/EGG-INFO rmdir ./setuptools_trial-0.5.9.egg } [Add documentation for 'tahoe debug trial'. david-sarah@jacaranda.org**20110110063419 Ignore-this: 7121889200e052570a709e3cf4d14df1 ] { hunk ./docs/frontends/CLI.rst 549 Debugging ========= -For a list of all debugging commands, use "``tahoe debug``". +For a list of all debugging commands, use "``tahoe debug``". For more detailed +help on any of these commands, use "``tahoe debug COMMAND --help``". "``tahoe debug find-shares STORAGEINDEX NODEDIRS..``" will look through one or more storage nodes for the share files that are providing storage for the hunk ./docs/frontends/CLI.rst 584 sharefile. This can be used to test the client-side verification/repair code. Obviously, this command should not be used during normal operation. +"``tahoe debug trial [OPTIONS] [TESTSUITE]``" will run the tests specified by +TESTSUITE (defaulting to the whole Tahoe test suite), using Twisted Trial. } [Makefile: use the same method of running bin/tahoe consistently, and use 'tahoe debug trial' to run tests. Set TEST to allmydata.test rather than allmydata. david-sarah@jacaranda.org**20110110063702 Ignore-this: 56338f6a663434ed0e8c2744a216be53 ] { hunk ./Makefile 14 PP=$(shell $(PYTHON) setup.py -q show_pythonpath) RUNPP=$(PYTHON) setup.py run_with_pythonpath +TAHOE=$(PYTHON) bin/tahoe.pyscript .PHONY: make-version build hunk ./Makefile 107 # you can use 'make test TEST=allmydata.test.test_introducer' to run just # test_introducer. TEST=allmydata.test.test_client.Basic.test_permute works # too. -TEST=allmydata +TEST=allmydata.test # use 'make test TRIALARGS=--reporter=bwverbose' from buildbot, to # suppress the ansi color sequences hunk ./Makefile 120 test-coverage: build src/allmydata/_version.py rm -f .coverage - $(PYTHON) setup.py trial --reporter=bwverbose-coverage -s $(TEST) + $(TAHOE) debug trial --reporter=bwverbose-coverage $(TEST) quicktest: hunk ./Makefile 123 - $(PYTHON) misc/build_helpers/run-with-pythonpath.py trial $(TRIALARGS) $(TEST) + $(TAHOE) debug trial $(TRIALARGS) $(TEST) # code-coverage: install the "coverage" package from PyPI, do "make # quicktest-coverage" to do a unit test run with coverage-gathering enabled, hunk ./Makefile 133 quicktest-coverage: rm -f .coverage - $(PYTHON) misc/build_helpers/run-with-pythonpath.py trial --reporter=bwverbose-coverage $(TEST) + $(TAHOE) debug trial --reporter=bwverbose-coverage $(TEST) # on my laptop, "quicktest" takes 239s, "quicktest-coverage" takes 304s # --include appeared in coverage-3.4 hunk ./Makefile 223 check-speed: .built if [ -z '$(TESTCLIENTDIR)' ]; then exit 1; fi @echo "stopping any leftover client code" - -$(PYTHON) bin/tahoe stop $(TESTCLIENTDIR) - $(PYTHON) bin/tahoe start $(TESTCLIENTDIR) + -$(TAHOE) stop $(TESTCLIENTDIR) + $(TAHOE) start $(TESTCLIENTDIR) sleep 5 $(PYTHON) src/allmydata/test/check_speed.py $(TESTCLIENTDIR) hunk ./Makefile 227 - $(PYTHON) bin/tahoe stop $(TESTCLIENTDIR) + $(TAHOE) stop $(TESTCLIENTDIR) # The check-grid target also uses a pre-established client node, along with a # long-term directory that contains some well-known files. See the docstring hunk ./Makefile 242 # 'make repl' is a simple-to-type command to get a Python interpreter loop # from which you can type 'import allmydata' repl: - $(RUNPP) -p + $(TAHOE) debug repl test-darcs-boringfile: $(MAKE) } Context: [Makefile: Fix uploading of tarballs on trunk builds. david-sarah@jacaranda.org**20110109065851 Ignore-this: 864b06e39103f46dbb6ccb74e1e333d3 ] [docs/frontends/CLI.rst: fix the rst syntax to be as actually intended :-) david-sarah@jacaranda.org**20110109014057 Ignore-this: c11331670ba89d8601ba3782ffc4f32c ] [docs/frontends/CLI.rst: really fix rst syntax error this time. david-sarah@jacaranda.org**20110109013914 Ignore-this: 59550154c9ab41488ddfdee8938d7bda ] [docs/frontends/CLI.rst: fix rst syntax error. david-sarah@jacaranda.org**20110109010943 Ignore-this: 427444f5572115059c75fa1bd8371d51 ] [docs/frontends/CLI.rst: discuss commandline/output quoting issues and wildcards. refs #1135 david-sarah@jacaranda.org**20110109010119 Ignore-this: 533938d89be878b404a8540aebdf68ad ] [setup.py: add Python 2.7 trove classifier. david-sarah@jacaranda.org**20110108211212 Ignore-this: b479c0a1adf9b7a2d1fdc54abc6582e6 ] [docs/FTP-and-SFTP.rst: document issue in ref #1297. Remove known issue #1045 which is fixed. Also some cosmetic changes. david-sarah@jacaranda.org**20110108061038 Ignore-this: 8d9aa2e33f1054545f7bed47bf0e647d ] [misc/build_helpers/show-tool-versions.py: remove attempts to show stdout.encoding and stderr.encoding that always printed None due to redirection. Also remove code to show os.path.supports_unicode_filenames which is not useful. refs #1251 david-sarah@jacaranda.org**20110103015144 Ignore-this: 45e11431f7e2e0cebcb58e1841485cf8 ] [NEWS: 'top' for node processes, WUI formatting, removal of GUI apps, documentation updates, foolscap dependency. refs #174, #1219, #1225 david-sarah@jacaranda.org**20110106005727 Ignore-this: f61ac58b4d10e635feb6f7391b1b48fe ] [Makefile: update 'clean' target for files in bin/ david-sarah@jacaranda.org**20110103052738 Ignore-this: 2bdbc4a50e13e508b66d0f65718c79b2 ] [docs: update performance.rst to describe the difference between already-uploaded and not-already-uploaded, to parameterize segment size, and to use "~A" to mean "approximately A" zooko@zooko.com**20110104065455 Ignore-this: 8df0d79a062ee19854c0211bd202f606 ] [bin/tahoe-script.template: On non-Windows, invoke support/bin/tahoe directly as a script (rather than via python), so that 'top' for example will show it as 'tahoe'. On Windows, simplify some code that set argv[0], which is never used. fixes #174 david-sarah@jacaranda.org**20101127232650 Ignore-this: 42a86f3eecfdc1ea7b76a7cc68626898 ] [test_runner: avoid unnecessary use of non-ASCII. david-sarah@jacaranda.org**20110101100101 Ignore-this: e2ff40dce6bb3b021306f2913d4e75df ] [docs/quickstart.html: fix redundant, badly nested tag. refs #1284 david-sarah@jacaranda.org**20110102175159 Ignore-this: 2ae9cc0b47d2e87b9eb64a0f517c4eef ] [docs/quickstart.html: information about 'troublesome dependencies' and 'verified systems' de-emphasized by smaller italic font. Re-wrap so that the HTML source is readable (just about) as text. Minor wording tweaks. Improve organization by adding 'Windows Caveats' subsection. fixes #1284 david-sarah@jacaranda.org**20110102174212 Ignore-this: e9dc57983974478200856651c5318fee ] [NEWS: update entry for removal of Mac and Windows apps. refs #1282 david-sarah@jacaranda.org**20101226042245 Ignore-this: c8099bc6e8235718d042c9a13c1e2425 ] [Move dependency imports from windows/depends.py (which has gone away) into src/allmydata/windows/tahoesvc.py. Also fix a pyflakes warning, and change the service display name from 'Allmydata Tahoe Node' to 'Tahoe-LAFS node'. refs #1282 david-sarah@jacaranda.org**20101226042100 Ignore-this: ee45f324934e1251380206dbee6346d0 ] [Remove unmaintained Windows GUI app, except for windows/tahoesvc.py which is moved to src/allmydata/windows. refs #1282 david-sarah@jacaranda.org**20101226040237 Ignore-this: cae37b6622a7dd5940acc7d3e6a98b90 ] [Remove the Makefile targets relating to the Mac GUI app. refs #1282 david-sarah@jacaranda.org**20101226025859 Ignore-this: 75303be783974b41138744ec62b07965 ] [NEWS: remove unmaintained Mac GUI app. refs #1282 david-sarah@jacaranda.org**20101226020858 Ignore-this: 40474a07f4a550b48563d35350be7ab5 ] [Remove unmaintained Mac GUI app. fixes #1282 david-sarah@jacaranda.org**20101226020508 Ignore-this: b3613bf1abfd284d542bf7c753ec557a ] [Remove src/allmydata/util/find_exe.py which is no longer used. fixes #1150 david-sarah@jacaranda.org**20101226023206 Ignore-this: 7436c9b53bf210aed34a1a973cd9cace ] [status_web_pages_review.darcs.patch freestorm77@gmail.com**20110102034214 Ignore-this: 29f1ecb36177f10f3f846b3d56b313b2 I make some changes on status web pages status.xhtml: - Delete unused webform_css link - Align tables on the left tahoe-css: - Do some minor changes on code synthax - changes table.status-download-events style to look like other tables status.py: - Align table on the left - Changes table header - Add heading tags - Modify google api graph: add image border, calculate height to feet data signed-off-by: zooko@zooko.com fixes #1219 ] [test_storage.py: fix a pyflakes unused import warning. david-sarah@jacaranda.org**20101231220756 Ignore-this: df08231540cb7dff9d2b038e47ab30ee ] [test_storage.py: leave at least 512 MiB free when running test_large_share. refs #1195 david-sarah@jacaranda.org**20101231203215 Ignore-this: b2144c0341c3452b5d4ba219e284ea0e ] [storage: use fileutil's version of get_disk_stats() and get_available_space(), use mockery/fakery in tests, enable large share test on platforms with sparse files and if > 4 GiB of disk space is currently available zooko@zooko.com**20100910173629 Ignore-this: 1304f1164c661de6d5304f993eb9b27b ] [fileutil: copy in the get_disk_stats() and get_available_space() functions from storage/server.py zooko@zooko.com**20100910173520 Ignore-this: 8b15569715f710f4fc5092f7ca109253 ] [Update foolscap version requirement to 0.6.0, to address http://foolscap.lothar.com/trac/ticket/167 david-sarah@jacaranda.org**20101231060039 Ignore-this: 98d2b8086a1a500b9f4565bca5a3810 ] [docs/webapi.rst: typos. david-sarah@jacaranda.org**20101230034422 Ignore-this: d1f5166d72cc711f7e0d9981eac9105e ] [docs/webapi.rst: capitalization, formatting of section on URL character encoding, and a correction about Internet Explorer. david-sarah@jacaranda.org**20101230034049 Ignore-this: b3b9819d2fb264b4cdc5c8afd4e8c48d ] [docs: corrections and clarifications. david-sarah@jacaranda.org**20101227051056 Ignore-this: e33202858c7644c58f3f924b164294b6 ] [docs: more formatting cleanups and corrections. Spell webapi and wapi as web-API. david-sarah@jacaranda.org**20101227050533 Ignore-this: 18b23cbfb780df585d8a722a1ec63e94 ] [docs/debian.rst: bring description of building dependencies from source up-to-date, and change hostname from allmydata.com to tahoe-lafs.org. david-sarah@jacaranda.org**20101212222912 Ignore-this: f38462afc88b4475195610385a28391c ] [docs/architecture.rst: correct rst syntax. david-sarah@jacaranda.org**20101212202003 Ignore-this: 3fbe12feb28bec6f1c63aedbc79aad21 ] [docs/architecture.rst: formatting. david-sarah@jacaranda.org**20101212201719 Ignore-this: 305fa5dfc2939355eaf6d0d2161eb1ff ] [docs: linkification, wording improvements. david-sarah@jacaranda.org**20101212201234 Ignore-this: 4e67287f527a8bc728cfbd93255d2aae ] [docs: formatting. david-sarah@jacaranda.org**20101212201115 Ignore-this: 2e0ed394ac7726651d3a4f2c4b0d3798 ] [docs/configuration.rst: more formatting tweaks; which -> that. david-sarah@jacaranda.org**20101212195522 Ignore-this: a7becb7021854ca5a90edd892b36fdd7 ] [docs/configuration.rst: more changes to formatting. david-sarah@jacaranda.org**20101212194511 Ignore-this: 491aac33e5f5268d224359f1447d10be ] [docs/configuration.rst: changes to formatting (mainly putting commands and filenames in monospace). david-sarah@jacaranda.org**20101212181828 Ignore-this: 8a1480e2d5f43bee678476424615b50f ] [scripts/backupdb.py: more accurate comment about path field. david-sarah@jacaranda.org**20101212170320 Ignore-this: 50e47a2228a85207bbcd188a78a0d4e6 ] [scripts/cli.py: fix missing 'put' in usage example for 'tahoe put'. david-sarah@jacaranda.org**20101212170207 Ignore-this: 2cbadf066fff611fc03d3c0ff97ce6ec ] [docs/frontends/CLI.rst: changes to formatting (mainly putting commands and filenames in monospace), and to command syntax to reflect that DIRCAP/... is accepted. Clarify the syntax of 'tahoe put' and other minor corrections. Tahoe -> Tahoe-LAFS. david-sarah@jacaranda.org**20101212165800 Ignore-this: a123ef6b564aa8624d1e79c97068ea12 ] [docs/frontends/CLI.rst: Unicode arguments to 'tahoe' work on Windows as of v1.7.1. david-sarah@jacaranda.org**20101212063740 Ignore-this: 3977a99dfa86ac33a44171deaf43aaab ] [docs/known_issues.rst: fix title and linkify another URL. refs #1225 david-sarah@jacaranda.org**20101212062817 Ignore-this: cc91287f7fb51c23440b3d2fe79c449c ] [docs/known_issues.rst: fix an external link. refs #1225 david-sarah@jacaranda.org**20101212062435 Ignore-this: b8cbf12f353131756c358965c48060ec ] [Fix a link from uri.rst to dirnodes.rst. refs #1225 david-sarah@jacaranda.org**20101212054502 Ignore-this: af6205299f5c9a33229cab259c00f9d5 ] [Fix a link from webapi.rst to FTP-and-SFTP.rst. refs #1225 david-sarah@jacaranda.org**20101212053435 Ignore-this: 2b9f88678c3447ea860d6b61e8799858 ] [More specific hyperlink to architecture.rst from helper.rst. refs #1225 david-sarah@jacaranda.org**20101212052607 Ignore-this: 50424c768fca481252fabf58424852dc ] [Update hyperlinks between docs, and linkify some external references. refs #1225 david-sarah@jacaranda.org**20101212051459 Ignore-this: cd43a4c3d3de1f832abfa88d5fc4ace1 ] [docs/specifications/dirnodes.rst: fix references to mutable.rst. refs #1225 david-sarah@jacaranda.org**20101212012720 Ignore-this: 6819b4b4e06e947ee48b365e840db37d ] [docs/specifications/mutable.rst: correct the magic string for v1 mutable containers. refs #1225 david-sarah@jacaranda.org**20101212011400 Ignore-this: 99a5fcdd40cef83dbb08f323f6cdaaca ] [Move .txt files in docs/frontends and docs/specifications to .rst. refs #1225 david-sarah@jacaranda.org**20101212010251 Ignore-this: 8796d35d928370f7dc6ad2dafdc1c0fe ] [Convert docs/frontends and docs/specifications to reStructuredText format (not including file moves). david-sarah@jacaranda.org**20101212004632 Ignore-this: e3ceb2d832d73875abe48624ddbb5622 ] [scripts/cli.py: remove the disclaimer in the help for 'tahoe cp' that it does not handle non-ASCII filenames well. (At least, we intend to handle them.) david-sarah@jacaranda.org**20101130002145 Ignore-this: 94c003efaa20b9eb4a83503d79844ca ] [relnotes.txt: fifth -> sixth labor-of-love release zooko@zooko.com**20101129045647 Ignore-this: 21c245015268b38916e3a138d256c09d ] [Makefile: BB_BRANCH is set to the empty string for trunk, not the string 'trunk'. david-sarah@jacaranda.org**20101128233512 Ignore-this: 5a7ef8eb10475636d21b91e25b56c369 ] [relnotes.txt: eleventh -> twelfth release. david-sarah@jacaranda.org**20101128223321 Ignore-this: 1e26410156a665271c1170803dea2c0d ] [relnotes.tst: point to known_issues.rst, not known_issues.txt. david-sarah@jacaranda.org**20101128222918 Ignore-this: 60194eb4544cac446fe4f60b3e34b887 ] [quickstart.html: fix link to point to allmydata-tahoe-1.8.1.zip. david-sarah@jacaranda.org**20101128221728 Ignore-this: 7b3ee86f8256aa12f5d862f689f3ee29 ] [TAG allmydata-tahoe-1.8.1 david-sarah@jacaranda.org**20101128212336 Ignore-this: 9c18bdeaef4822f590d2a0d879e00621 ] Patch bundle hash: bb1cb2c12ad545ed1181282518ba2524f82851d4