Ticket #1296: test-tahoe-debug-trial.darcs.patch

File test-tahoe-debug-trial.darcs.patch, 25.1 KB (added by davidsarah, at 2011-01-08T12:19:45Z)

Tests for 'tahoe debug trial'. refs #1296 (includes some dependency patches)

Line 
13 patches for repository http://tahoe-lafs.org/source/tahoe-lafs/trunk:
2
3Fri Jan  7 09:37:18 GMT Standard Time 2011  david-sarah@jacaranda.org
4  * src/allmydata/scripts/debug.py: add 'tahoe debug trial' command. refs #1296
5
6Sat Jan  1 19:25:59 GMT Standard Time 2011  david-sarah@jacaranda.org
7  * test_runner: add test_import_in_repl, which uses 'bin/tahoe debug repl' to import the allmydata module and checks that it comes from the right path. Also, fix a latent bug that caused test_the_right_code to incorrectly conclude that a path mismatch was due to a Unicode path (causing a skip rather than a failure). This version of the patch avoids a confusing shadowing of 'srcfile'. refs #1258
8
9Sat Jan  8 11:36:52 GMT Standard Time 2011  david-sarah@jacaranda.org
10  * Tests for 'tahoe debug trial'. refs #1296
11
12New patches:
13
14[src/allmydata/scripts/debug.py: add 'tahoe debug trial' command. refs #1296
15david-sarah@jacaranda.org**20110107093718
16 Ignore-this: 9228ffe655323aa486e88aded90983d7
17] {
18hunk ./src/allmydata/scripts/debug.py 4
19 
20 # do not import any allmydata modules at this level. Do that from inside
21 # individual functions instead.
22-import struct, time, os
23+import struct, time, os, sys
24 from twisted.python import usage, failure
25 from twisted.internet import defer
26hunk ./src/allmydata/scripts/debug.py 7
27+from twisted.scripts import trial as twisted_trial
28 
29 
30 class DumpOptions(usage.Options):
31hunk ./src/allmydata/scripts/debug.py 782
32     return code.interact()
33 
34 
35+class TrialOptions(twisted_trial.Options):
36+    def getSynopsis(self):
37+        return "Usage: tahoe debug trial [options] [[file|package|module|TestCase|testmethod]...]"
38+
39+    def parseArgs(self, *args):
40+        if not args:
41+            args = ["allmydata.test"]
42+        twisted_trial.Options.parseArgs(self, *args)
43+
44+    def getUsage(self, width=None):
45+        t = twisted_trial.Options.getUsage(self, width)
46+        t += """
47+The 'tahoe debug trial' command uses the correct imports for this instance of
48+Tahoe-LAFS. The default test suite is 'allmydata.test'.
49+"""
50+        return t
51+
52+
53+def trial(config):
54+    twisted_trial._initialDebugSetup(config)
55+    trialRunner = twisted_trial._makeRunner(config)
56+    suite = twisted_trial._getSuite(config)
57+
58+    # run the tests
59+    if config.get('until-failure'):
60+        test_result = trialRunner.runUntilFailure(suite)
61+    else:
62+        test_result = trialRunner.run(suite)
63+
64+    # write coverage data
65+    if hasattr(config, 'tracer') and config.tracer:
66+        sys.settrace(None)
67+        results = config.tracer.results()
68+        coverdir = os.path.join(config.get('temp-directory') or '_trial_temp', 'coverage')
69+        results.write_results(show_missing=1, summary=False, coverdir=coverdir)
70+
71+    if test_result.wasSuccessful():
72+        return 0  # success
73+    else:
74+        return 1  # failure
75+
76+
77 class DebugCommand(usage.Options):
78     subCommands = [
79         ["dump-share", None, DumpOptions,
80hunk ./src/allmydata/scripts/debug.py 833
81         ["catalog-shares", None, CatalogSharesOptions, "Describe all shares in node dirs."],
82         ["corrupt-share", None, CorruptShareOptions, "Corrupt a share by flipping a bit."],
83         ["repl", None, ReplOptions, "Open a Python interpreter."],
84+        ["trial", None, TrialOptions, "Run Twisted Trial with the correct imports."],
85         ]
86     def postOptions(self):
87         if not hasattr(self, 'subOptions'):
88hunk ./src/allmydata/scripts/debug.py 850
89     tahoe debug catalog-shares  Describe all shares in node dirs.
90     tahoe debug corrupt-share   Corrupt a share by flipping a bit.
91     tahoe debug repl            Open a Python interpreter.
92+    tahoe debug trial           Run Twisted Trial with the correct imports.
93 
94 Please run e.g. 'tahoe debug dump-share --help' for more details on each
95 subcommand.
96hunk ./src/allmydata/scripts/debug.py 857
97 """
98         return t
99 
100+
101 subDispatch = {
102     "dump-share": dump_share,
103     "dump-cap": dump_cap,
104hunk ./src/allmydata/scripts/debug.py 865
105     "catalog-shares": catalog_shares,
106     "corrupt-share": corrupt_share,
107     "repl": repl,
108+    "trial": trial,
109     }
110 
111 
112}
113[test_runner: add test_import_in_repl, which uses 'bin/tahoe debug repl' to import the allmydata module and checks that it comes from the right path. Also, fix a latent bug that caused test_the_right_code to incorrectly conclude that a path mismatch was due to a Unicode path (causing a skip rather than a failure). This version of the patch avoids a confusing shadowing of 'srcfile'. refs #1258
114david-sarah@jacaranda.org**20110101192559
115 Ignore-this: 332920b103412b197b21e05989e3bda0
116] {
117hunk ./src/allmydata/test/test_runner.py 6
118 
119 from twisted.python import usage, runtime
120 from twisted.internet import utils
121-import os.path, re, sys
122+import os.path, re, sys, subprocess
123 from cStringIO import StringIO
124 from allmydata.util import fileutil, pollmixin
125 from allmydata.util.encodingutil import unicode_to_argv, unicode_to_output, get_filesystem_encoding
126hunk ./src/allmydata/test/test_runner.py 17
127 
128 timeout = 240
129 
130-srcfile = allmydata.__file__
131-srcdir = os.path.dirname(os.path.dirname(os.path.normcase(os.path.realpath(srcfile))))
132+def get_root_from_file(src):
133+    srcdir = os.path.dirname(os.path.dirname(os.path.normcase(os.path.realpath(src))))
134+
135+    root = os.path.dirname(srcdir)
136+    if os.path.basename(srcdir) == 'site-packages':
137+        if re.search(r'python.+\..+', os.path.basename(root)):
138+            root = os.path.dirname(root)
139+        root = os.path.dirname(root)
140+    elif os.path.basename(root) == 'src':
141+        root = os.path.dirname(root)
142+
143+    return root
144 
145hunk ./src/allmydata/test/test_runner.py 30
146-rootdir = os.path.dirname(srcdir)
147-if os.path.basename(srcdir) == 'site-packages':
148-    if re.search(r'python.+\..+', os.path.basename(rootdir)):
149-        rootdir = os.path.dirname(rootdir)
150-    rootdir = os.path.dirname(rootdir)
151-elif os.path.basename(rootdir) == 'src':
152-    rootdir = os.path.dirname(rootdir)
153+srcfile = allmydata.__file__
154+rootdir = get_root_from_file(srcfile)
155 
156 bintahoe = os.path.join(rootdir, 'bin', 'tahoe')
157 if sys.platform == "win32":
158hunk ./src/allmydata/test/test_runner.py 57
159 
160 
161 class BinTahoe(common_util.SignalMixin, unittest.TestCase, SkipMixin):
162-    def test_the_right_code(self):
163+    def _check_right_code(self, file_to_check):
164+        root_to_check = get_root_from_file(file_to_check)
165         cwd = os.path.normcase(os.path.realpath("."))
166         root_from_cwd = os.path.dirname(cwd)
167         if os.path.basename(root_from_cwd) == 'src':
168hunk ./src/allmydata/test/test_runner.py 64
169             root_from_cwd = os.path.dirname(root_from_cwd)
170 
171-        same = (root_from_cwd == rootdir)
172+        same = (root_from_cwd == root_to_check)
173         if not same:
174             try:
175hunk ./src/allmydata/test/test_runner.py 67
176-                same = os.path.samefile(root_from_cwd, rootdir)
177+                same = os.path.samefile(root_from_cwd, root_to_check)
178             except AttributeError, e:
179                 e  # hush pyflakes
180 
181hunk ./src/allmydata/test/test_runner.py 75
182             msg = ("We seem to be testing the code at %r,\n"
183                    "(according to the source filename %r),\n"
184                    "but expected to be testing the code at %r.\n"
185-                   % (rootdir, srcfile, root_from_cwd))
186+                   % (root_to_check, file_to_check, root_from_cwd))
187 
188hunk ./src/allmydata/test/test_runner.py 77
189-            root_from_cwdu = os.path.normcase(os.path.normpath(os.getcwdu()))
190+            root_from_cwdu = os.path.dirname(os.path.normcase(os.path.normpath(os.getcwdu())))
191             if os.path.basename(root_from_cwdu) == u'src':
192                 root_from_cwdu = os.path.dirname(root_from_cwdu)
193 
194hunk ./src/allmydata/test/test_runner.py 90
195                 msg += "Please run the tests from the root of the Tahoe-LAFS distribution."
196                 self.fail(msg)
197 
198+    def test_the_right_code(self):
199+        self._check_right_code(srcfile)
200+
201+    def test_import_in_repl(self):
202+        self.skip_if_cannot_run_bintahoe()
203+
204+        p = subprocess.Popen([sys.executable, bintahoe, "debug", "repl"],
205+                             stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
206+        (out, err) = p.communicate("import allmydata; print allmydata.__file__")
207+
208+        self.failUnlessEqual(p.returncode, 0)
209+        first = out.splitlines()[0]
210+        self.failUnless(first.startswith('>>> '))
211+        self._check_right_code(first[4:])
212+
213     def test_path(self):
214         self.skip_if_cannot_run_bintahoe()
215         d = utils.getProcessOutputAndValue(bintahoe, args=["--version-and-path"], env=os.environ)
216hunk ./src/allmydata/test/test_runner.py 136
217                 else:
218                     altverstr = verstr
219 
220+            srcdir = os.path.dirname(os.path.dirname(os.path.normcase(os.path.realpath(srcfile))))
221             required_ver_and_path = "%s: %s (%s)" % (allmydata.__appname__, verstr, srcdir)
222             alt_required_ver_and_path = "%s: %s (%s)" % (allmydata.__appname__, altverstr, srcdir)
223 
224}
225[Tests for 'tahoe debug trial'. refs #1296
226david-sarah@jacaranda.org**20110108113652
227 Ignore-this: 12ef456c9da7913ee7839b3f71e479a6
228] {
229hunk ./src/allmydata/scripts/debug.py 801
230 
231 
232 def trial(config):
233+    # This is too dependent on implementation details of Twisted Trial.
234+    # <http://twistedmatrix.com/trac/ticket/4797> would make run_tests
235+    # available as a public API.
236+
237+    #if hasattr(twisted_trial, 'run_tests'):
238+    #    return twisted_trial.run_tests(config)
239+
240     twisted_trial._initialDebugSetup(config)
241     trialRunner = twisted_trial._makeRunner(config)
242     suite = twisted_trial._getSuite(config)
243hunk ./src/allmydata/test/test_cli.py 506
244         help = str(cli.AddAliasOptions())
245         self.failUnless("add-alias ALIAS DIRCAP" in help, help)
246 
247+    def test_debug_trial(self):
248+        help = str(debug.TrialOptions())
249+        self.failUnless("debug trial [options] [[file|package|module|TestCase|testmethod]...]" in help, help)
250+        self.failUnless("The 'tahoe debug trial' command uses the correct imports" in help, help)
251+
252 
253 class CreateAlias(GridTestMixin, CLITestMixin, unittest.TestCase):
254 
255hunk ./src/allmydata/test/test_runner.py 33
256 srcfile = allmydata.__file__
257 rootdir = get_root_from_file(srcfile)
258 
259-bintahoe = os.path.join(rootdir, 'bin', 'tahoe')
260-if sys.platform == "win32":
261-    bintahoe += ".pyscript"
262-    if not os.path.exists(bintahoe):
263-       alt_bintahoe = os.path.join(rootdir, 'Scripts', 'tahoe.pyscript')
264-       if os.path.exists(alt_bintahoe):
265-           bintahoe = alt_bintahoe
266+
267+if hasattr(sys, 'frozen'):
268+    bintahoe = os.path.join(rootdir, 'tahoe')
269+
270+    if sys.platform == "win32" and os.path.exists(bintahoe + '.exe'):
271+        bintahoe += '.exe'
272+else:
273+    bintahoe = os.path.join(rootdir, 'bin', 'tahoe')
274+    if sys.platform == "win32":
275+        bintahoe += '.pyscript'
276+        if not os.path.exists(bintahoe):
277+            alt_bintahoe = os.path.join(rootdir, 'Scripts', 'tahoe.pyscript')
278+            if os.path.exists(alt_bintahoe):
279+                bintahoe = alt_bintahoe
280 
281 
282 class SkipMixin:
283hunk ./src/allmydata/test/test_runner.py 66
284 class BinTahoe(common_util.SignalMixin, unittest.TestCase, SkipMixin):
285     def _check_right_code(self, file_to_check):
286         root_to_check = get_root_from_file(file_to_check)
287+        if os.path.basename(root_to_check) == 'dist':
288+            root_to_check = os.path.dirname(root_to_check)
289+
290         cwd = os.path.normcase(os.path.realpath("."))
291         root_from_cwd = os.path.dirname(cwd)
292         if os.path.basename(root_from_cwd) == 'src':
293hunk ./src/allmydata/test/test_runner.py 106
294     def test_import_in_repl(self):
295         self.skip_if_cannot_run_bintahoe()
296 
297-        p = subprocess.Popen([sys.executable, bintahoe, "debug", "repl"],
298-                             stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
299+        args = [bintahoe, "debug", "repl"]
300+        if not hasattr(sys, 'frozen'):
301+            args = [sys.executable] + args
302+
303+        p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
304         (out, err) = p.communicate("import allmydata; print allmydata.__file__")
305 
306         self.failUnlessEqual(p.returncode, 0)
307hunk ./src/allmydata/test/test_runner.py 159
308 
309     def test_unicode_arguments_and_output(self):
310         self.skip_if_cannot_run_bintahoe()
311+        if hasattr(sys, 'frozen') and sys.platform == "win32":
312+            raise unittest.SkipTest("This test can't currently be made to work for frozen executables on Windows,\ndue to lack of support for Unicode in twisted.internet.utils.getProcessOutputAndValue.")
313 
314         tricky = u"\u2621"
315         try:
316hunk ./src/allmydata/test/test_runner.py 179
317 
318     def test_run_with_python_options(self):
319         self.skip_if_cannot_run_bintahoe()
320+        if hasattr(sys, 'frozen'):
321+            raise unittest.SkipTest("This test doesn't apply to frozen executables.")
322 
323         # -t is a harmless option that warns about tabs.
324         d = utils.getProcessOutputAndValue(sys.executable, args=['-t', bintahoe, '--version'],
325hunk ./src/allmydata/test/test_system.py 1756
326 
327         return d
328 
329+    def test_debug_trial(self, *args):
330+        d = self._run_cli_in_subprocess(['debug', 'trial', 'allmydata.test.trialtest'])
331+        def _check_failure( (out, err, rc) ):
332+            self.failUnlessEqual(rc, 1)
333+            self.failUnlessIn("[SKIPPED]: allmydata.test.trialtest.Success.test_skip", out)
334+            self.failUnlessIn("[TODO]: allmydata.test.trialtest.Success.test_todo", out)
335+            self.failUnlessIn("[FAIL]: allmydata.test.trialtest.Failure.test_fail", out)
336+            self.failUnlessIn("[ERROR]: allmydata.test.trialtest.Failure.test_deferred_error", out)
337+            self.failUnlessIn("[ERROR]: allmydata.test.trialtest.Failure.test_error", out)
338+            self.failUnlessIn("FAILED", out)
339+        d.addCallback(_check_failure)
340+
341+        d.addCallback(lambda ign: self._run_cli_in_subprocess(['debug', 'trial', 'allmydata.test.trialtest.Success']))
342+        def _check_success( (out, err, rc) ):
343+            self.failUnlessEqual(rc, 0)
344+            self.failUnlessIn("[SKIPPED]: allmydata.test.trialtest.Success.test_skip", out)
345+            self.failUnlessIn("[TODO]: allmydata.test.trialtest.Success.test_todo", out)
346+            self.failUnlessIn("PASSED", out)
347+        d.addCallback(_check_success)
348+        return d
349+
350     def _run_cli(self, argv, stdin=""):
351         #print "CLI:", argv
352         stdout, stderr = StringIO(), StringIO()
353hunk ./src/allmydata/test/test_system.py 1793
354 
355         if env is None:
356             env = os.environ
357-        d = utils.getProcessOutputAndValue(sys.executable, args=[bintahoe] + argv,
358-                                           env=env)
359+        d = utils.getProcessOutputAndValue(bintahoe, argv, env=env)
360         return d
361 
362     def _test_checker(self, res):
363addfile ./src/allmydata/test/trialtest.py
364hunk ./src/allmydata/test/trialtest.py 2
365 
366+# This is a dummy test suite that we can use to check that 'tahoe debug trial'
367+# is working properly. Since the module name does not start with 'test_', it
368+# will not be run by the main test suite.
369+
370+from twisted.trial import unittest
371+from twisted.internet import defer
372+
373+
374+class Success(unittest.TestCase):
375+    def test_succeed(self):
376+        pass
377+
378+    def test_skip(self):
379+        raise unittest.SkipTest('skip')
380+
381+    def test_todo(self):
382+        self.fail('umm')
383+    test_todo.todo = 'never mind'
384+
385+
386+class Failure(unittest.TestCase):
387+    def test_fail(self):
388+        self.fail('fail')
389+
390+    def test_error(self):
391+        raise AssertionError('clang')
392+
393+    def test_deferred_error(self):
394+        return defer.fail(AssertionError('screech'))
395}
396
397Context:
398
399[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"
400zooko@zooko.com**20110104065455
401 Ignore-this: 8df0d79a062ee19854c0211bd202f606
402]
403[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
404david-sarah@jacaranda.org**20101127232650
405 Ignore-this: 42a86f3eecfdc1ea7b76a7cc68626898
406]
407[test_runner: avoid unnecessary use of non-ASCII.
408david-sarah@jacaranda.org**20110101100101
409 Ignore-this: e2ff40dce6bb3b021306f2913d4e75df
410]
411[docs/quickstart.html: fix redundant, badly nested tag. refs #1284
412david-sarah@jacaranda.org**20110102175159
413 Ignore-this: 2ae9cc0b47d2e87b9eb64a0f517c4eef
414]
415[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
416david-sarah@jacaranda.org**20110102174212
417 Ignore-this: e9dc57983974478200856651c5318fee
418]
419[NEWS: update entry for removal of Mac and Windows apps. refs #1282
420david-sarah@jacaranda.org**20101226042245
421 Ignore-this: c8099bc6e8235718d042c9a13c1e2425
422]
423[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
424david-sarah@jacaranda.org**20101226042100
425 Ignore-this: ee45f324934e1251380206dbee6346d0
426]
427[Remove unmaintained Windows GUI app, except for windows/tahoesvc.py which is moved to src/allmydata/windows. refs #1282
428david-sarah@jacaranda.org**20101226040237
429 Ignore-this: cae37b6622a7dd5940acc7d3e6a98b90
430]
431[Remove the Makefile targets relating to the Mac GUI app. refs #1282
432david-sarah@jacaranda.org**20101226025859
433 Ignore-this: 75303be783974b41138744ec62b07965
434]
435[NEWS: remove unmaintained Mac GUI app. refs #1282
436david-sarah@jacaranda.org**20101226020858
437 Ignore-this: 40474a07f4a550b48563d35350be7ab5
438]
439[Remove unmaintained Mac GUI app. fixes #1282
440david-sarah@jacaranda.org**20101226020508
441 Ignore-this: b3613bf1abfd284d542bf7c753ec557a
442]
443[Remove src/allmydata/util/find_exe.py which is no longer used. fixes #1150
444david-sarah@jacaranda.org**20101226023206
445 Ignore-this: 7436c9b53bf210aed34a1a973cd9cace
446]
447[status_web_pages_review.darcs.patch
448freestorm77@gmail.com**20110102034214
449 Ignore-this: 29f1ecb36177f10f3f846b3d56b313b2
450 
451 I make some changes on status web pages
452 
453 status.xhtml:
454 - Delete unused webform_css link
455 - Align tables on the left
456 
457 tahoe-css:
458 - Do some minor changes on code synthax
459 - changes table.status-download-events style to look like other tables
460 
461 status.py:
462 - Align table on the left
463 - Changes table header
464 - Add heading tags
465 - Modify google api graph: add image border, calculate height to feet data
466 
467 signed-off-by: zooko@zooko.com
468 fixes #1219
469]
470[test_storage.py: fix a pyflakes unused import warning.
471david-sarah@jacaranda.org**20101231220756
472 Ignore-this: df08231540cb7dff9d2b038e47ab30ee
473]
474[test_storage.py: leave at least 512 MiB free when running test_large_share. refs #1195
475david-sarah@jacaranda.org**20101231203215
476 Ignore-this: b2144c0341c3452b5d4ba219e284ea0e
477]
478[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
479zooko@zooko.com**20100910173629
480 Ignore-this: 1304f1164c661de6d5304f993eb9b27b
481]
482[fileutil: copy in the get_disk_stats() and get_available_space() functions from storage/server.py
483zooko@zooko.com**20100910173520
484 Ignore-this: 8b15569715f710f4fc5092f7ca109253
485]
486[Update foolscap version requirement to 0.6.0, to address http://foolscap.lothar.com/trac/ticket/167
487david-sarah@jacaranda.org**20101231060039
488 Ignore-this: 98d2b8086a1a500b9f4565bca5a3810
489]
490[docs/webapi.rst: typos.
491david-sarah@jacaranda.org**20101230034422
492 Ignore-this: d1f5166d72cc711f7e0d9981eac9105e
493]
494[docs/webapi.rst: capitalization, formatting of section on URL character encoding, and a correction about Internet Explorer.
495david-sarah@jacaranda.org**20101230034049
496 Ignore-this: b3b9819d2fb264b4cdc5c8afd4e8c48d
497]
498[docs: corrections and clarifications.
499david-sarah@jacaranda.org**20101227051056
500 Ignore-this: e33202858c7644c58f3f924b164294b6
501]
502[docs: more formatting cleanups and corrections. Spell webapi and wapi as web-API.
503david-sarah@jacaranda.org**20101227050533
504 Ignore-this: 18b23cbfb780df585d8a722a1ec63e94
505]
506[docs/debian.rst: bring description of building dependencies from source up-to-date, and change hostname from allmydata.com to tahoe-lafs.org.
507david-sarah@jacaranda.org**20101212222912
508 Ignore-this: f38462afc88b4475195610385a28391c
509]
510[docs/architecture.rst: correct rst syntax.
511david-sarah@jacaranda.org**20101212202003
512 Ignore-this: 3fbe12feb28bec6f1c63aedbc79aad21
513]
514[docs/architecture.rst: formatting.
515david-sarah@jacaranda.org**20101212201719
516 Ignore-this: 305fa5dfc2939355eaf6d0d2161eb1ff
517]
518[docs: linkification, wording improvements.
519david-sarah@jacaranda.org**20101212201234
520 Ignore-this: 4e67287f527a8bc728cfbd93255d2aae
521]
522[docs: formatting.
523david-sarah@jacaranda.org**20101212201115
524 Ignore-this: 2e0ed394ac7726651d3a4f2c4b0d3798
525]
526[docs/configuration.rst: more formatting tweaks; which -> that.
527david-sarah@jacaranda.org**20101212195522
528 Ignore-this: a7becb7021854ca5a90edd892b36fdd7
529]
530[docs/configuration.rst: more changes to formatting.
531david-sarah@jacaranda.org**20101212194511
532 Ignore-this: 491aac33e5f5268d224359f1447d10be
533]
534[docs/configuration.rst: changes to formatting (mainly putting commands and filenames in monospace).
535david-sarah@jacaranda.org**20101212181828
536 Ignore-this: 8a1480e2d5f43bee678476424615b50f
537]
538[scripts/backupdb.py: more accurate comment about path field.
539david-sarah@jacaranda.org**20101212170320
540 Ignore-this: 50e47a2228a85207bbcd188a78a0d4e6
541]
542[scripts/cli.py: fix missing 'put' in usage example for 'tahoe put'.
543david-sarah@jacaranda.org**20101212170207
544 Ignore-this: 2cbadf066fff611fc03d3c0ff97ce6ec
545]
546[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.
547david-sarah@jacaranda.org**20101212165800
548 Ignore-this: a123ef6b564aa8624d1e79c97068ea12
549]
550[docs/frontends/CLI.rst: Unicode arguments to 'tahoe' work on Windows as of v1.7.1.
551david-sarah@jacaranda.org**20101212063740
552 Ignore-this: 3977a99dfa86ac33a44171deaf43aaab
553]
554[docs/known_issues.rst: fix title and linkify another URL. refs #1225
555david-sarah@jacaranda.org**20101212062817
556 Ignore-this: cc91287f7fb51c23440b3d2fe79c449c
557]
558[docs/known_issues.rst: fix an external link. refs #1225
559david-sarah@jacaranda.org**20101212062435
560 Ignore-this: b8cbf12f353131756c358965c48060ec
561]
562[Fix a link from uri.rst to dirnodes.rst. refs #1225
563david-sarah@jacaranda.org**20101212054502
564 Ignore-this: af6205299f5c9a33229cab259c00f9d5
565]
566[Fix a link from webapi.rst to FTP-and-SFTP.rst. refs #1225
567david-sarah@jacaranda.org**20101212053435
568 Ignore-this: 2b9f88678c3447ea860d6b61e8799858
569]
570[More specific hyperlink to architecture.rst from helper.rst. refs #1225
571david-sarah@jacaranda.org**20101212052607
572 Ignore-this: 50424c768fca481252fabf58424852dc
573]
574[Update hyperlinks between docs, and linkify some external references. refs #1225
575david-sarah@jacaranda.org**20101212051459
576 Ignore-this: cd43a4c3d3de1f832abfa88d5fc4ace1
577]
578[docs/specifications/dirnodes.rst: fix references to mutable.rst. refs #1225
579david-sarah@jacaranda.org**20101212012720
580 Ignore-this: 6819b4b4e06e947ee48b365e840db37d
581]
582[docs/specifications/mutable.rst: correct the magic string for v1 mutable containers. refs #1225
583david-sarah@jacaranda.org**20101212011400
584 Ignore-this: 99a5fcdd40cef83dbb08f323f6cdaaca
585]
586[Move .txt files in docs/frontends and docs/specifications to .rst. refs #1225
587david-sarah@jacaranda.org**20101212010251
588 Ignore-this: 8796d35d928370f7dc6ad2dafdc1c0fe
589]
590[Convert docs/frontends and docs/specifications to reStructuredText format (not including file moves).
591david-sarah@jacaranda.org**20101212004632
592 Ignore-this: e3ceb2d832d73875abe48624ddbb5622
593]
594[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.)
595david-sarah@jacaranda.org**20101130002145
596 Ignore-this: 94c003efaa20b9eb4a83503d79844ca
597]
598[relnotes.txt: fifth -> sixth labor-of-love release
599zooko@zooko.com**20101129045647
600 Ignore-this: 21c245015268b38916e3a138d256c09d
601]
602[Makefile: BB_BRANCH is set to the empty string for trunk, not the string 'trunk'.
603david-sarah@jacaranda.org**20101128233512
604 Ignore-this: 5a7ef8eb10475636d21b91e25b56c369
605]
606[relnotes.txt: eleventh -> twelfth release.
607david-sarah@jacaranda.org**20101128223321
608 Ignore-this: 1e26410156a665271c1170803dea2c0d
609]
610[relnotes.tst: point to known_issues.rst, not known_issues.txt.
611david-sarah@jacaranda.org**20101128222918
612 Ignore-this: 60194eb4544cac446fe4f60b3e34b887
613]
614[quickstart.html: fix link to point to allmydata-tahoe-1.8.1.zip.
615david-sarah@jacaranda.org**20101128221728
616 Ignore-this: 7b3ee86f8256aa12f5d862f689f3ee29
617]
618[TAG allmydata-tahoe-1.8.1
619david-sarah@jacaranda.org**20101128212336
620 Ignore-this: 9c18bdeaef4822f590d2a0d879e00621
621]
622Patch bundle hash:
623e41bec333a7db4403389fac38c11c66ae2cf2209