Ticket #1400: NEWS-restification-1.darcs.patch

File NEWS-restification-1.darcs.patch, 139.6 KB (added by zooko, at 2011-05-13T22:05:57Z)
Line 
11 patch for repository /Users/zooko/playground/tahoe-lafs/1.8.2:
2
3Fri May 13 16:02:50 MDT 2011  zooko@zooko.com
4  * docs: convert NEWS to NEWS.rst and change all references to it
5  This only converts the top few releases in NEWS.rst. Patrick McDonald has volunteered to convert the rest.
6
7New patches:
8
9[docs: convert NEWS to NEWS.rst and change all references to it
10zooko@zooko.com**20110513220250
11 Ignore-this: b1898e1c0e4a2d5aa8e735a3dd1428bb
12 This only converts the top few releases in NEWS.rst. Patrick McDonald has volunteered to convert the rest.
13] {
14move ./NEWS ./NEWS.rst
15hunk ./NEWS.rst 1
16-User visible changes in Tahoe-LAFS.  -*- outline; coding: utf-8 -*-
17+.. -*- coding: utf-8 -*-
18 
19hunk ./NEWS.rst 3
20-* Release 1.8.2 (2011-01-30)
21+==================================
22+User-Visible Changes in Tahoe-LAFS
23+==================================
24 
25hunk ./NEWS.rst 7
26-** Compatibility and Dependencies
27+Release 1.8.2 (2011-01-30)
28+--------------------------
29 
30hunk ./NEWS.rst 10
31- - Tahoe is now compatible with Twisted-10.2 (released last month), as well
32-   as with earlier versions. The previous Tahoe-1.8.1 release failed to run
33-   against Twisted-10.2, raising an AttributeError on
34-   StreamServerEndpointService (#1286)
35- - Tahoe now depends upon the "mock" testing library, and the foolscap
36-   dependency was raised to 0.6.1 . It no longer requires pywin32 (which
37-   was used only on windows). Future developers should note that
38-   reactor.spawnProcess and derivatives may no longer be used inside
39-   Tahoe code.
40+Compatibility and Dependencies
41+''''''''''''''''''''''''''''''
42 
43hunk ./NEWS.rst 13
44-** Other Changes
45+- Tahoe is now compatible with Twisted-10.2 (released last month), as
46+  well as with earlier versions. The previous Tahoe-1.8.1 release
47+  failed to run against Twisted-10.2, raising an AttributeError on
48+  StreamServerEndpointService (`#1286`_)
49+- Tahoe now depends upon the "mock" testing library, and the foolscap
50+  dependency was raised to 0.6.1 . It no longer requires pywin32
51+  (which was used only on windows). Future developers should note that
52+  reactor.spawnProcess and derivatives may no longer be used inside
53+  Tahoe code.
54 
55hunk ./NEWS.rst 23
56- - the default reserved_space value for new storage nodes is 1 GB (#1208)
57- - documentation is now in reStructuredText (.rst) format
58- - "tahoe cp" should now handle non-ASCII filenames
59- - the unmaintained Mac/Windows GUI applications have been removed (#1282)
60- - tahoe processes should appear in top and ps as "tahoe", not "python",
61-   on some unix platforms. (#174)
62- - "tahoe debug trial" can be used to run the test suite (#1296)
63- - the SFTP frontend now reports unknown sizes as "0" instead of "?",
64-   to improve compatibility with clients like FileZilla (#1337)
65- - "tahoe --version" should now report correct values in situations where
66-   1.8.1 might have been wrong (#1287)
67+Other Changes
68+'''''''''''''
69 
70hunk ./NEWS.rst 26
71+- the default reserved_space value for new storage nodes is 1 GB
72+  (`#1208`_)
73+- documentation is now in reStructuredText (.rst) format
74+- "tahoe cp" should now handle non-ASCII filenames
75+- the unmaintained Mac/Windows GUI applications have been removed
76+  (`#1282`_)
77+- tahoe processes should appear in top and ps as "tahoe", not
78+  "python", on some unix platforms. (`#174`_)
79+- "tahoe debug trial" can be used to run the test suite (`#1296`_)
80+- the SFTP frontend now reports unknown sizes as "0" instead of "?",
81+  to improve compatibility with clients like FileZilla (`#1337`_)
82+- "tahoe --version" should now report correct values in situations
83+  where 1.8.1 might have been wrong (`#1287`_)
84 
85hunk ./NEWS.rst 40
86-* Release 1.8.1 (2010-10-28)
87+.. _`#174`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/174
88+.. _`#1208`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1208
89+.. _`#1282`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1282
90+.. _`#1286`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1286
91+.. _`#1287`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1287
92+.. _`#1296`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1296
93+.. _`#1337`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1337
94 
95hunk ./NEWS.rst 48
96-** Bugfixes and Improvements
97 
98hunk ./NEWS.rst 49
99- - Allow the repairer to improve the health of a file by uploading
100-   some shares, even if it cannot achieve the configured happiness
101-   threshold. This fixes a regression introduced between v1.7.1 and
102-   v1.8.0. (#1212)
103- - Fix a memory leak in the ResponseCache which is used during mutable
104-   file/directory operations. (#1045)
105- - Fix a regression and add a performance improvement in the downloader.
106-   This issue caused repair to fail in some special cases. (#1223)
107- - Fix a bug that caused 'tahoe cp' to fail for a grid-to-grid copy
108-   involving a non-ASCII filename. (#1224)
109- - Fix a rarely-encountered bug involving printing large strings to
110-   the console on Windows. (#1232)
111- - Perform ~ expansion in the --exclude-from filename argument to
112-   'tahoe backup'. (#1241)
113- - The CLI's 'tahoe mv' and 'tahoe ln' commands previously would try
114-   to use an HTTP proxy if the HTTP_PROXY environment variable was set.
115-   These now always connect directly to the WAPI, thus avoiding giving
116-   caps to the HTTP proxy (and also avoiding failures in the case that
117-   the proxy is failing or requires authentication). (#1253)
118- - The CLI now correctly reports failure in the case that 'tahoe mv'
119-   fails to unlink the file from its old location. (#1255)
120- - 'tahoe start' now gives a more positive indication that the node
121-   has started. (#71)
122- - The arguments seen by 'ps' or other tools for node processes are
123-   now more useful (in particular, they include the path of the
124-   'tahoe' script, rather than an obscure tool named 'twistd'). (#174)
125+Release 1.8.1 (2010-10-28)
126+--------------------------
127 
128hunk ./NEWS.rst 52
129-** Removed Features
130+Bugfixes and Improvements
131+'''''''''''''''''''''''''
132 
133hunk ./NEWS.rst 55
134- - The tahoe start/stop/restart and node creation commands no longer
135-   accept the -m or --multiple option, for consistency between platforms.
136-   (#1262)
137+- Allow the repairer to improve the health of a file by uploading some
138+  shares, even if it cannot achieve the configured happiness
139+  threshold. This fixes a regression introduced between v1.7.1 and
140+  v1.8.0. (`#1212`_)
141+- Fix a memory leak in the ResponseCache which is used during mutable
142+  file/directory operations. (`#1045`_)
143+- Fix a regression and add a performance improvement in the
144+  downloader.  This issue caused repair to fail in some special
145+  cases. (`#1223`_)
146+- Fix a bug that caused 'tahoe cp' to fail for a grid-to-grid copy
147+  involving a non-ASCII filename. (`#1224`_)
148+- Fix a rarely-encountered bug involving printing large strings to the
149+  console on Windows. (`#1232`_)
150+- Perform ~ expansion in the --exclude-from filename argument to
151+  'tahoe backup'. (`#1241`_)
152+- The CLI's 'tahoe mv' and 'tahoe ln' commands previously would try to
153+  use an HTTP proxy if the HTTP_PROXY environment variable was set.
154+  These now always connect directly to the WAPI, thus avoiding giving
155+  caps to the HTTP proxy (and also avoiding failures in the case that
156+  the proxy is failing or requires authentication). (`#1253`_)
157+- The CLI now correctly reports failure in the case that 'tahoe mv'
158+  fails to unlink the file from its old location. (`#1255`_)
159+- 'tahoe start' now gives a more positive indication that the node has
160+  started. (`#71`_)
161+- The arguments seen by 'ps' or other tools for node processes are now
162+  more useful (in particular, they include the path of the 'tahoe'
163+  script, rather than an obscure tool named 'twistd'). (`#174`_)
164 
165hunk ./NEWS.rst 83
166-** Packaging
167+Removed Features
168+''''''''''''''''
169 
170hunk ./NEWS.rst 86
171- - We now host binary packages so that users on certain operating systems
172-   can install without having a compiler.
173-   <http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-eggs/README.html>
174- - Use a newer version of a dependency if needed, even if an older
175-   version is installed. This would previously cause a VersionConflict
176-   error. (#1190)
177- - Use a precompiled binary of a dependency if one with a sufficiently
178-   high version number is available, instead of attempting to compile
179-   the dependency from source, even if the source version has a higher
180-   version number. (#1233)
181+- The tahoe start/stop/restart and node creation commands no longer
182+  accept the -m or --multiple option, for consistency between
183+  platforms.  (`#1262`_)
184 
185hunk ./NEWS.rst 90
186-** Documentation
187+Packaging
188+'''''''''
189 
190hunk ./NEWS.rst 93
191- - All current documentation in .txt format has been converted to
192-   .rst format. (#1225)
193- - Added docs/backdoors.rst declaring that we won't add backdoors to
194-   Tahoe-LAFS, or add anything to facilitate government access to data.
195-   (#1216)
196+- We now host binary packages so that users on certain operating
197+  systems can install without having a compiler.
198+  <http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-eggs/README.html>
199+- Use a newer version of a dependency if needed, even if an older
200+  version is installed. This would previously cause a VersionConflict
201+  error. (`#1190`_)
202+- Use a precompiled binary of a dependency if one with a sufficiently
203+  high version number is available, instead of attempting to compile
204+  the dependency from source, even if the source version has a higher
205+  version number. (`#1233`_)
206 
207hunk ./NEWS.rst 104
208+Documentation
209+'''''''''''''
210 
211hunk ./NEWS.rst 107
212-* Release 1.8.0 (2010-09-23)
213+- All current documentation in .txt format has been converted to .rst
214+  format. (`#1225`_)
215+- Added docs/backdoors.rst declaring that we won't add backdoors to
216+  Tahoe-LAFS, or add anything to facilitate government access to data.
217+  (`#1216`_)
218 
219hunk ./NEWS.rst 113
220-** New Features
221+.. _`#71`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/71
222+.. _`#174`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/174
223+.. _`#1212`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1212
224+.. _`#1045`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1045
225+.. _`#1190`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1190
226+.. _`#1216`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1216
227+.. _`#1223`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1223
228+.. _`#1224`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1224
229+.. _`#1225`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1225
230+.. _`#1232`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1232
231+.. _`#1233`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1233
232+.. _`#1241`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1241
233+.. _`#1253`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1253
234+.. _`#1255`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1255
235+.. _`#1262`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1262
236 
237hunk ./NEWS.rst 129
238- - A completely new downloader which improves performance and
239-   robustness of immutable-file downloads. It uses the fastest K
240-   servers to download the data in K-way parallel. It automatically
241-   fails over to alternate servers if servers fail in mid-download. It
242-   allows seeking to arbitrary locations in the file (the previous
243-   downloader which would only read the entire file sequentially from
244-   beginning to end). It minimizes unnecessary round trips and
245-   unnecessary bytes transferred to improve performance. It sends
246-   requests to fewer servers to reduce the load on servers (the
247-   previous one would send a small request to every server for every
248-   download) (#287, #288, #448, #798, #800, #990, #1170, #1191)
249 
250hunk ./NEWS.rst 130
251- - Non-ASCII command-line arguments and non-ASCII outputs now work on
252-   Windows. In addition, the command-line tool now works on 64-bit
253-   Windows. (#1074)
254+Release 1.8.0 (2010-09-23)
255+--------------------------
256 
257hunk ./NEWS.rst 133
258-** Bugfixes and Improvements
259+New Features
260+''''''''''''
261 
262hunk ./NEWS.rst 136
263- - Document and clean up the command-line options for specifying the
264-   node's base directory. (#188, #706, #715, #772, #1108)
265- - The default node directory for Windows is ".tahoe" in the user's
266-   home directory, the same as on other platforms. (#890)
267- - Fix a case in which full cap URIs could be logged. (#685, #1155)
268- - Fix bug in WUI in Python 2.5 when the system clock is set back to
269-   1969. Now you can use Tahoe-LAFS with Python 2.5 and set your
270-   system clock to 1969 and still use the WUI. (#1055)
271- - Many improvements in code organization, tests, logging,
272-   documentation, and packaging. (#983, #1074, #1108, #1127, #1129,
273-   #1131, #1166, #1175)
274+- A completely new downloader which improves performance and
275+  robustness of immutable-file downloads. It uses the fastest K
276+  servers to download the data in K-way parallel. It automatically
277+  fails over to alternate servers if servers fail in mid-download. It
278+  allows seeking to arbitrary locations in the file (the previous
279+  downloader which would only read the entire file sequentially from
280+  beginning to end). It minimizes unnecessary round trips and
281+  unnecessary bytes transferred to improve performance. It sends
282+  requests to fewer servers to reduce the load on servers (the
283+  previous one would send a small request to every server for every
284+  download) (`#287`_, `#288`_, `#448`_, `#798`_, `#800`_, `#990`_,
285+  `#1170`_, `#1191`_)
286+- Non-ASCII command-line arguments and non-ASCII outputs now work on
287+  Windows. In addition, the command-line tool now works on 64-bit
288+  Windows. (`#1074`_)
289 
290hunk ./NEWS.rst 152
291-** Dependency Updates
292+Bugfixes and Improvements
293+'''''''''''''''''''''''''
294 
295hunk ./NEWS.rst 155
296- - on x86 and x86-64 platforms, pycryptopp >= 0.5.20
297- - pycrypto 2.2 is excluded due to a bug
298+- Document and clean up the command-line options for specifying the
299+  node's base directory. (`#188`_, `#706`_, `#715`_, `#772`_,
300+  `#1108`_)
301+- The default node directory for Windows is ".tahoe" in the user's
302+  home directory, the same as on other platforms. (`#890`_)
303+- Fix a case in which full cap URIs could be logged. (`#685`_,
304+  `#1155`_)
305+- Fix bug in WUI in Python 2.5 when the system clock is set back to
306+  1969. Now you can use Tahoe-LAFS with Python 2.5 and set your system
307+  clock to 1969 and still use the WUI. (`#1055`_)
308+- Many improvements in code organization, tests, logging,
309+  documentation, and packaging. (`#983`_, `#1074`_, `#1108`_,
310+  `#1127`_, `#1129`_, `#1131`_, `#1166`_, `#1175`_)
311 
312hunk ./NEWS.rst 169
313+Dependency Updates
314+''''''''''''''''''
315 
316hunk ./NEWS.rst 172
317-* Release 1.7.1 (2010-07-18)
318+- on x86 and x86-64 platforms, pycryptopp >= 0.5.20
319+- pycrypto 2.2 is excluded due to a bug
320 
321hunk ./NEWS.rst 175
322-** Bugfixes and Improvements
323+.. _`#188`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/188
324+.. _`#287`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/287
325+.. _`#288`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/288
326+.. _`#448`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/448
327+.. _`#685`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/685
328+.. _`#706`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/706
329+.. _`#715`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/715
330+.. _`#772`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/772
331+.. _`#798`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/798
332+.. _`#800`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/800
333+.. _`#890`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/890
334+.. _`#983`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/983
335+.. _`#990`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/990
336+.. _`#1055`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1055
337+.. _`#1074`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1074
338+.. _`#1108`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1108
339+.. _`#1155`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1155
340+.. _`#1170`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1170
341+.. _`#1191`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1191
342+.. _`#1127`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1127
343+.. _`#1129`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1129
344+.. _`#1131`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1131
345+.. _`#1166`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1166
346+.. _`#1175`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1175
347 
348hunk ./NEWS.rst 200
349- - Fix bug in which uploader could fail with AssertionFailure or
350-   report that it had achieved servers-of-happiness when it
351-   hadn't. (#1118)
352- - Fix bug in which servers could get into a state where they would
353-   refuse to accept shares of a certain file (#1117)
354- - Add init scripts for managing the gateway server on Debian/Ubuntu
355-   (#961)
356- - Fix bug where server version number was always 0 on the welcome
357-   page (#1067)
358- - Add new command-line command "tahoe unlink" as a synonym for "tahoe
359-   rm" (#776)
360- - The FTP frontend now encrypts its temporary files, protecting their
361-   contents from an attacker who is able to read the disk. (#1083)
362- - Fix IP address detection on FreeBSD 7, 8, and 9 (#1098)
363- - Fix minor layout issue in the Web User Interface with Internet
364-   Explorer (#1097)
365- - Fix rarely-encountered incompatibility between Twisted logging
366-   utility and the new unicode support added in v1.7.0 (#1099)
367- - Forward-compatibility improvements for non-ASCII caps (#1051)
368+Release 1.7.1 (2010-07-18)
369+--------------------------
370 
371hunk ./NEWS.rst 203
372-** Code improvements
373+Bugfixes and Improvements
374+'''''''''''''''''''''''''
375 
376hunk ./NEWS.rst 206
377- - Simplify and tidy-up directories, unicode support, test code (#923, #967,
378-   #1072)
379+- Fix bug in which uploader could fail with AssertionFailure or report
380+  that it had achieved servers-of-happiness when it hadn't. (`#1118`_)
381+- Fix bug in which servers could get into a state where they would
382+  refuse to accept shares of a certain file (`#1117`_)
383+- Add init scripts for managing the gateway server on Debian/Ubuntu
384+  (`#961`_)
385+- Fix bug where server version number was always 0 on the welcome page
386+  (`#1067`_)
387+- Add new command-line command "tahoe unlink" as a synonym for "tahoe
388+  rm" (`#776`_)
389+- The FTP frontend now encrypts its temporary files, protecting their
390+  contents from an attacker who is able to read the disk. (`#1083`_)
391+- Fix IP address detection on FreeBSD 7, 8, and 9 (`#1098`_)
392+- Fix minor layout issue in the Web User Interface with Internet
393+  Explorer (`#1097`_)
394+- Fix rarely-encountered incompatibility between Twisted logging
395+  utility and the new unicode support added in v1.7.0 (`#1099`_)
396+- Forward-compatibility improvements for non-ASCII caps (`#1051`_)
397 
398hunk ./NEWS.rst 225
399+Code improvements
400+'''''''''''''''''
401 
402hunk ./NEWS.rst 228
403-* Release 1.7.0 (2010-06-18)
404+- Simplify and tidy-up directories, unicode support, test code
405+  (`#923`_, `#967`_, `#1072`_)
406 
407hunk ./NEWS.rst 231
408-** New Features
409+.. _`#776`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/776
410+.. _`#923`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/923
411+.. _`#961`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/961
412+.. _`#967`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/967
413+.. _`#1051`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1051
414+.. _`#1067`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1067
415+.. _`#1072`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1072
416+.. _`#1083`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1083
417+.. _`#1097`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1097
418+.. _`#1098`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1098
419+.. _`#1099`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1099
420+.. _`#1117`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1117
421+.. _`#1118`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1118
422 
423hunk ./NEWS.rst 245
424-*** SFTP support
425 
426hunk ./NEWS.rst 246
427-Your Tahoe-LAFS gateway now acts like a full-fledged SFTP server.  It has been
428-tested with sshfs to provide a virtual filesystem in Linux.  Many users have
429-asked for this feature.  We hope that it serves them well! See the
430-docs/frontends/FTP-and-SFTP.txt document to get started.
431+Release 1.7.0 (2010-06-18)
432+--------------------------
433 
434hunk ./NEWS.rst 249
435-*** support for non-ASCII character encodings
436+New Features
437+''''''''''''
438 
439hunk ./NEWS.rst 252
440-Tahoe-LAFS now correctly handles filenames containing non-ASCII characters on
441-all supported platforms:
442-
443- - when reading files in from the local filesystem (such as when you run "tahoe
444-   backup" to back up your local files to a Tahoe-LAFS grid);
445-
446- - when writing files out to the local filesystem (such as when you run "tahoe
447-   cp -r" to recursively copy files out of a Tahoe-LAFS grid);
448-
449- - when displaying filenames to the terminal (such as when you run "tahoe ls"),
450-   subject to limitations of the terminal and locale;
451+- SFTP support (`#1037`_)
452+  Your Tahoe-LAFS gateway now acts like a full-fledged SFTP server. It
453+  has been tested with sshfs to provide a virtual filesystem in Linux.
454+  Many users have asked for this feature.  We hope that it serves them
455+  well! See the docs/frontends/FTP-and-SFTP.txt document to get
456+  started.
457+- support for non-ASCII character encodings (`#534`_)
458+  Tahoe-LAFS now correctly handles filenames containing non-ASCII
459+  characters on all supported platforms:
460 
461hunk ./NEWS.rst 262
462+ - when reading files in from the local filesystem (such as when you
463+   run "tahoe backup" to back up your local files to a Tahoe-LAFS
464+   grid);
465+ - when writing files out to the local filesystem (such as when you
466+   run "tahoe cp -r" to recursively copy files out of a Tahoe-LAFS
467+   grid);
468+ - when displaying filenames to the terminal (such as when you run
469+   "tahoe ls"), subject to limitations of the terminal and locale;
470  - when parsing command-line arguments, except on Windows.
471 
472hunk ./NEWS.rst 272
473-*** Servers of Happiness
474-
475-Tahoe-LAFS now measures during immutable file upload to see how well
476-distributed it is across multiple servers. It aborts the upload if the pieces
477-of the file are not sufficiently well-distributed.
478-
479-This behavior is controlled by a configuration parameter called "servers of
480-happiness". With the default settings for its erasure coding, Tahoe-LAFS
481-generates 10 shares for each file, such that any 3 of those shares are
482-sufficient to recover the file. The default value of "servers of happiness" is
483-7, which means that Tahoe-LAFS will guarantee that there are at least 7 servers
484-holding some of the shares, such that any 3 of those servers can completely
485-recover your file.
486+- Servers of Happiness (`#778`_)
487+  Tahoe-LAFS now measures during immutable file upload to see how well
488+  distributed it is across multiple servers. It aborts the upload if
489+  the pieces of the file are not sufficiently well-distributed.
490+  This behavior is controlled by a configuration parameter called
491+  "servers of happiness". With the default settings for its erasure
492+  coding, Tahoe-LAFS generates 10 shares for each file, such that any
493+  3 of those shares are sufficient to recover the file. The default
494+  value of "servers of happiness" is 7, which means that Tahoe-LAFS
495+  will guarantee that there are at least 7 servers holding some of the
496+  shares, such that any 3 of those servers can completely recover your
497+  file.  The new upload code also distributes the shares better than the
498+  previous version in some cases and takes better advantage of
499+  pre-existing shares (when a file has already been previously
500+  uploaded). See the architecture.txt document [3] for details.
501 
502hunk ./NEWS.rst 288
503-The new upload code also distributes the shares better than the previous
504-version in some cases and takes better advantage of pre-existing shares (when a
505-file has already been previously uploaded). See the architecture.txt document
506-[3] for details.
507+Bugfixes and Improvements
508+'''''''''''''''''''''''''
509 
510hunk ./NEWS.rst 291
511-** Bugfixes and Improvements
512+- Premature abort of upload if some shares were already present and
513+  some servers fail. (`#608`_)
514+- python ./setup.py install -- can't create or remove files in install
515+  directory. (`#803`_)
516+- Network failure => internal TypeError. (`#902`_)
517+- Install of Tahoe on CentOS 5.4. (`#933`_)
518+- CLI option --node-url now supports https url. (`#1028`_)
519+- HTML/CSS template files were not correctly installed under
520+  Windows. (`#1033`_)
521+- MetadataSetter does not enforce restriction on setting "tahoe"
522+  subkeys.  (`#1034`_)
523+- ImportError: No module named
524+  setuptools_darcs.setuptools_darcs. (`#1054`_)
525+- Renamed Title in xhtml files. (`#1062`_)
526+- Increase Python version dependency to 2.4.4, to avoid a critical
527+  CPython security bug. (`#1066`_)
528+- Typo correction for the munin plugin tahoe_storagespace. (`#968`_)
529+- Fix warnings found by pylint. (`#973`_)
530+- Changing format of some documentation files. (`#1027`_)
531+- the misc/ directory was tied up. (`#1068`_)
532+- The 'ctime' and 'mtime' metadata fields are no longer written except
533+  by "tahoe backup". (`#924`_)
534+- Unicode filenames in Tahoe-LAFS directories are normalized so that
535+  names that differ only in how accents are encoded are treated as the
536+  same. (`#1076`_)
537+- Various small improvements to documentation. (`#937`_, `#911`_,
538+  `#1024`_, `#1082`_)
539 
540hunk ./NEWS.rst 319
541- - Premature abort of upload if some shares were already present and some
542-   servers fail. (#608)
543- - python ./setup.py install -- can't create or remove files in install
544-   directory. (#803)
545- - Network failure => internal TypeError. (#902)
546- - Install of Tahoe on CentOS 5.4. (#933)
547- - CLI option --node-url now supports https url. (#1028)
548- - HTML/CSS template files were not correctly installed under Windows. (#1033)
549- - MetadataSetter does not enforce restriction on setting "tahoe" subkeys.
550-   (#1034)
551- - ImportError: No module named setuptools_darcs.setuptools_darcs. (#1054)
552- - Renamed Title in xhtml files. (#1062)
553- - Increase Python version dependency to 2.4.4, to avoid a critical CPython
554-   security bug. (#1066)
555- - Typo correction for the munin plugin tahoe_storagespace. (#968)
556- - Fix warnings found by pylint. (#973)
557- - Changing format of some documentation files. (#1027)
558- - the misc/ directory was tied up. (#1068)
559- - The 'ctime' and 'mtime' metadata fields are no longer written except by
560-   "tahoe backup". (#924)
561- - Unicode filenames in Tahoe-LAFS directories are normalized so that names
562-   that differ only in how accents are encoded are treated as the same. (#1076)
563- - Various small improvements to documentation. (#937, #911, #1024, #1082)
564+Removals
565+''''''''
566 
567hunk ./NEWS.rst 322
568-** Removals
569+- The 'tahoe debug consolidate' subcommand (for converting old
570+  allmydata Windows client backups to a newer format) has been
571+  removed.
572 
573hunk ./NEWS.rst 326
574-The 'tahoe debug consolidate' subcommand (for converting old allmydata Windows
575-client backups to a newer format) has been removed.
576+Dependency Updates
577+''''''''''''''''''
578 
579hunk ./NEWS.rst 329
580-** Dependency Updates
581+- the Python version dependency is raised to 2.4.4 in some cases
582+  (2.4.3 for Redhat-based Linux distributions, 2.4.2 for UCS-2 builds)
583+  (`#1066`_)
584+- pycrypto >= 2.0.1
585+- pyasn1 >= 0.0.8a
586+- mock (only required by unit tests)
587 
588hunk ./NEWS.rst 336
589-the Python version dependency is raised to 2.4.4 in some cases (2.4.3 for
590-  Redhat-based Linux distributions, 2.4.2 for UCS-2 builds) (#1066)
591-pycrypto >= 2.0.1
592-pyasn1 >= 0.0.8a
593-mock (only required by unit tests)
594+.. _`#534`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/534
595+.. _`#608`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/608
596+.. _`#778`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/778
597+.. _`#803`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/803
598+.. _`#902`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/902
599+.. _`#911`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/911
600+.. _`#924`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/924
601+.. _`#937`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/937
602+.. _`#933`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/933
603+.. _`#968`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/968
604+.. _`#973`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/973
605+.. _`#1024`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1024
606+.. _`#1027`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1027
607+.. _`#1028`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1028
608+.. _`#1033`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1033
609+.. _`#1034`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1034
610+.. _`#1037`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1037
611+.. _`#1054`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1054
612+.. _`#1062`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1062
613+.. _`#1066`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1066
614+.. _`#1068`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1068
615+.. _`#1076`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1076
616+.. _`#1082`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1082
617 
618 
619hunk ./NEWS.rst 361
620-* Release 1.6.1 (2010-02-27)
621+Release 1.6.1 (2010-02-27)
622+--------------------------
623 
624hunk ./NEWS.rst 364
625-** Bugfixes
626+Bugfixes
627+''''''''
628 
629hunk ./NEWS.rst 367
630-*** Correct handling of Small Immutable Directories
631+- Correct handling of Small Immutable Directories
632 
633hunk ./NEWS.rst 369
634-Immutable directories can now be deep-checked and listed in the web UI in
635-all cases. (In v1.6.0, some operations, such as deep-check, on a directory
636-graph that included very small immutable directories, would result in an
637-exception causing the whole operation to abort.) (#948)
638+  Immutable directories can now be deep-checked and listed in the web
639+  UI in all cases. (In v1.6.0, some operations, such as deep-check, on
640+  a directory graph that included very small immutable directories,
641+  would result in an exception causing the whole operation to abort.)
642+  (`#948`_)
643 
644hunk ./NEWS.rst 375
645-** Usability Improvements
646+Usability Improvements
647+''''''''''''''''''''''
648 
649hunk ./NEWS.rst 378
650-Improved user interface messages and error reporting. (#681, #837, #939)
651+- Improved user interface messages and error reporting. (`#681`_,
652+  `#837`_, `#939`_)
653+- The timeouts for operation handles have been greatly increased, so
654+  that you can view the results of an operation up to 4 days after it
655+  has completed. After viewing them for the first time, the results
656+  are retained for a further day. (`#577`_)
657 
658hunk ./NEWS.rst 385
659-The timeouts for operation handles have been greatly increased, so that
660-you can view the results of an operation up to 4 days after it has
661-completed. After viewing them for the first time, the results are
662-retained for a further day. (#577)
663+Release 1.6.0 (2010-02-01)
664+--------------------------
665 
666hunk ./NEWS.rst 388
667+New Features
668+''''''''''''
669 
670hunk ./NEWS.rst 391
671-* Release 1.6.0 (2010-02-01)
672+- Immutable Directories
673 
674hunk ./NEWS.rst 393
675-** New Features
676+  Tahoe-LAFS can now create and handle immutable
677+  directories. (`#607`_, `#833`_, `#931`_) These are read just like
678+  normal directories, but are "deep-immutable", meaning that all their
679+  children (and everything reachable from those children) must be
680+  immutable objects (i.e. immutable or literal files, and other
681+  immutable directories).
682 
683hunk ./NEWS.rst 400
684-*** Immutable Directories
685+  These directories must be created in a single webapi call that
686+  provides all of the children at once. (Since they cannot be changed
687+  after creation, the usual create/add/add sequence cannot be used.)
688+  They have URIs that start with "URI:DIR2-CHK:" or "URI:DIR2-LIT:",
689+  and are described on the human-facing web interface (aka the "WUI")
690+  with a "DIR-IMM" abbreviation (as opposed to "DIR" for the usual
691+  read-write directories and "DIR-RO" for read-only directories).
692 
693hunk ./NEWS.rst 408
694-Tahoe-LAFS can now create and handle immutable directories. (#607, #833, #931)
695-These are read just like normal directories, but are "deep-immutable", meaning
696-that all their children (and everything reachable from those children) must be
697-immutable objects (i.e. immutable or literal files, and other immutable
698-directories).
699+  Tahoe-LAFS releases before 1.6.0 cannot read the contents of an
700+  immutable directory. 1.5.0 will tolerate their presence in a
701+  directory listing (and display it as "unknown"). 1.4.1 and earlier
702+  cannot tolerate them: a DIR-IMM child in any directory will prevent
703+  the listing of that directory.
704 
705hunk ./NEWS.rst 414
706-These directories must be created in a single webapi call that provides all
707-of the children at once. (Since they cannot be changed after creation, the
708-usual create/add/add sequence cannot be used.) They have URIs that start with
709-"URI:DIR2-CHK:" or "URI:DIR2-LIT:", and are described on the human-facing web
710-interface (aka the "WUI") with a "DIR-IMM" abbreviation (as opposed to "DIR"
711-for the usual read-write directories and "DIR-RO" for read-only directories).
712+  Immutable directories are repairable, just like normal immutable
713+  files.
714 
715hunk ./NEWS.rst 417
716-Tahoe-LAFS releases before 1.6.0 cannot read the contents of an immutable
717-directory. 1.5.0 will tolerate their presence in a directory listing (and
718-display it as "unknown"). 1.4.1 and earlier cannot tolerate them: a DIR-IMM
719-child in any directory will prevent the listing of that directory.
720+  The webapi "POST t=mkdir-immutable" call is used to create immutable
721+  directories. See docs/frontends/webapi.txt for details.
722 
723hunk ./NEWS.rst 420
724-Immutable directories are repairable, just like normal immutable files.
725+- "tahoe backup" now creates immutable directories, backupdb has
726+  dircache
727 
728hunk ./NEWS.rst 423
729-The webapi "POST t=mkdir-immutable" call is used to create immutable
730-directories. See docs/frontends/webapi.txt for details.
731+  The "tahoe backup" command has been enhanced to create immutable
732+  directories (in previous releases, it created read-only mutable
733+  directories) (`#828`_). This is significantly faster, since it does
734+  not need to create an RSA keypair for each new directory. Also
735+  "DIR-IMM" immutable directories are repairable, unlike "DIR-RO"
736+  read-only mutable directories at present. (A future Tahoe-LAFS
737+  release should also be able to repair DIR-RO.)
738 
739hunk ./NEWS.rst 431
740-*** "tahoe backup" now creates immutable directories, backupdb has dircache
741+  In addition, the backupdb (used by "tahoe backup" to remember what
742+  it has already copied) has been enhanced to store information about
743+  existing immutable directories. This allows it to re-use directories
744+  that have moved but still contain identical contents, or that have
745+  been deleted and later replaced. (The 1.5.0 "tahoe backup" command
746+  could only re-use directories that were in the same place as they
747+  were in the immediately previous backup.)  With this change, the
748+  backup process no longer needs to read the previous snapshot out of
749+  the Tahoe-LAFS grid, reducing the network load
750+  considerably. (`#606`_)
751 
752hunk ./NEWS.rst 442
753-The "tahoe backup" command has been enhanced to create immutable directories
754-(in previous releases, it created read-only mutable directories) (#828). This
755-is significantly faster, since it does not need to create an RSA keypair for
756-each new directory. Also "DIR-IMM" immutable directories are repairable, unlike
757-"DIR-RO" read-only mutable directories at present. (A future Tahoe-LAFS release
758-should also be able to repair DIR-RO.)
759+  A "null backup" (in which nothing has changed since the previous
760+  backup) will require only two Tahoe-side operations: one to add an
761+  Archives/$TIMESTAMP entry, and a second to update the Latest/
762+  link. On the local disk side, it will readdir() all your local
763+  directories and stat() all your local files.
764 
765hunk ./NEWS.rst 448
766-In addition, the backupdb (used by "tahoe backup" to remember what it has
767-already copied) has been enhanced to store information about existing immutable
768-directories. This allows it to re-use directories that have moved but still
769-contain identical contents, or that have been deleted and later replaced. (The
770-1.5.0 "tahoe backup" command could only re-use directories that were in the
771-same place as they were in the immediately previous backup.)  With this change,
772-the backup process no longer needs to read the previous snapshot out of the
773-Tahoe-LAFS grid, reducing the network load considerably. (#606)
774+  If you've been using "tahoe backup" for a while, you will notice
775+  that your first use of it after upgrading to 1.6.0 may take a long
776+  time: it must create proper immutable versions of all the old
777+  read-only mutable directories. This process won't take as long as
778+  the initial backup (where all the file contents had to be uploaded
779+  too): it will require time proportional to the number and size of
780+  your directories. After this initial pass, all subsequent passes
781+  should take a tiny fraction of the time.
782 
783hunk ./NEWS.rst 457
784-A "null backup" (in which nothing has changed since the previous backup) will
785-require only two Tahoe-side operations: one to add an Archives/$TIMESTAMP
786-entry, and a second to update the Latest/ link. On the local disk side, it
787-will readdir() all your local directories and stat() all your local files.
788+  As noted above, Tahoe-LAFS versions earlier than 1.5.0 cannot list a
789+  directory containing an immutable subdirectory. Tahoe-LAFS versions
790+  earlier than 1.6.0 cannot read the contents of an immutable
791+  directory.
792 
793hunk ./NEWS.rst 462
794-If you've been using "tahoe backup" for a while, you will notice that your
795-first use of it after upgrading to 1.6.0 may take a long time: it must create
796-proper immutable versions of all the old read-only mutable directories. This
797-process won't take as long as the initial backup (where all the file contents
798-had to be uploaded too): it will require time proportional to the number and
799-size of your directories. After this initial pass, all subsequent passes
800-should take a tiny fraction of the time.
801+  The "tahoe backup" command has been improved to skip over unreadable
802+  objects (like device files, named pipes, and files with permissions
803+  that prevent the command from reading their contents), instead of
804+  throwing an exception and terminating the backup process. It also
805+  skips over symlinks, because these cannot be represented faithfully
806+  in the Tahoe-side filesystem. A warning message will be emitted each
807+  time something is skipped. (`#729`_, `#850`_, `#641`_)
808 
809hunk ./NEWS.rst 470
810-As noted above, Tahoe-LAFS versions earlier than 1.5.0 cannot list a directory
811-containing an immutable subdirectory. Tahoe-LAFS versions earlier than 1.6.0
812-cannot read the contents of an immutable directory.
813+- "create-node" command added, "create-client" now implies
814+  --no-storage
815 
816hunk ./NEWS.rst 473
817-The "tahoe backup" command has been improved to skip over unreadable objects
818-(like device files, named pipes, and files with permissions that prevent the
819-command from reading their contents), instead of throwing an exception and
820-terminating the backup process. It also skips over symlinks, because these
821-cannot be represented faithfully in the Tahoe-side filesystem. A warning
822-message will be emitted each time something is skipped. (#729, #850, #641)
823+  The basic idea behind Tahoe-LAFS's client+server and client-only
824+  processes is that you are creating a general-purpose Tahoe-LAFS
825+  "node" process, which has several components that can be
826+  activated. Storage service is one of these optional components, as
827+  is the Helper, FTP server, and SFTP server. Web gateway
828+  functionality is nominally on this list, but it is always active; a
829+  future release will make it optional. There are three special
830+  purpose servers that can't currently be run as a component in a
831+  node: introducer, key-generator, and stats-gatherer.
832 
833hunk ./NEWS.rst 483
834-*** "create-node" command added, "create-client" now implies --no-storage
835+  So now "tahoe create-node" will create a Tahoe-LAFS node process,
836+  and after creation you can edit its tahoe.cfg to enable or disable
837+  the desired services. It is a more general-purpose replacement for
838+  "tahoe create-client".  The default configuration has storage
839+  service enabled. For convenience, the "--no-storage" argument makes
840+  a tahoe.cfg file that disables storage service. (`#760`_)
841 
842hunk ./NEWS.rst 490
843-The basic idea behind Tahoe-LAFS's client+server and client-only processes is
844-that you are creating a general-purpose Tahoe-LAFS "node" process, which has
845-several components that can be activated. Storage service is one of these
846-optional components, as is the Helper, FTP server, and SFTP server. Web gateway
847-functionality is nominally on this list, but it is always active; a future
848-release will make it optional. There are three special purpose servers that
849-can't currently be run as a component in a node: introducer, key-generator,
850-and stats-gatherer.
851+  "tahoe create-client" has been changed to create a Tahoe-LAFS node
852+  without a storage service. It is equivalent to "tahoe create-node
853+  --no-storage". This helps to reduce the confusion surrounding the
854+  use of a command with "client" in its name to create a storage
855+  *server*. Use "tahoe create-client" to create a purely client-side
856+  node. If you want to offer storage to the grid, use "tahoe
857+  create-node" instead.
858 
859hunk ./NEWS.rst 498
860-So now "tahoe create-node" will create a Tahoe-LAFS node process, and after
861-creation you can edit its tahoe.cfg to enable or disable the desired
862-services. It is a more general-purpose replacement for "tahoe create-client".
863-The default configuration has storage service enabled. For convenience, the
864-"--no-storage" argument makes a tahoe.cfg file that disables storage
865-service. (#760)
866+  In the future, other services will be added to the node, and they
867+  will be controlled through options in tahoe.cfg . The most important
868+  of these services may get additional --enable-XYZ or --disable-XYZ
869+  arguments to "tahoe create-node".
870 
871hunk ./NEWS.rst 503
872-"tahoe create-client" has been changed to create a Tahoe-LAFS node without a
873-storage service. It is equivalent to "tahoe create-node --no-storage". This
874-helps to reduce the confusion surrounding the use of a command with "client" in
875-its name to create a storage *server*. Use "tahoe create-client" to create a
876-purely client-side node. If you want to offer storage to the grid, use
877-"tahoe create-node" instead.
878+- Performance Improvements
879 
880hunk ./NEWS.rst 505
881-In the future, other services will be added to the node, and they will be
882-controlled through options in tahoe.cfg . The most important of these
883-services may get additional --enable-XYZ or --disable-XYZ arguments to
884-"tahoe create-node".
885+  Download of immutable files begins as soon as the downloader has
886+  located the K necessary shares (`#928`_, `#287`_). In both the
887+  previous and current releases, a downloader will first issue queries
888+  to all storage servers on the grid to locate shares before it begins
889+  downloading the shares. In previous releases of Tahoe-LAFS, download
890+  would not begin until all storage servers on the grid had replied to
891+  the query, at which point K shares would be chosen for download from
892+  among the shares that were located. In this release, download begins
893+  as soon as any K shares are located. This means that downloads start
894+  sooner, which is particularly important if there is a server on the
895+  grid that is extremely slow or even hung in such a way that it will
896+  never respond. In previous releases such a server would have a
897+  negative impact on all downloads from that grid. In this release,
898+  such a server will have no impact on downloads, as long as K shares
899+  can be found on other, quicker, servers.  This also means that
900+  downloads now use the "best-alacrity" servers that they talk to, as
901+  measured by how quickly the servers reply to the initial query. This
902+  might cause downloads to go faster, especially on grids with
903+  heterogeneous servers or geographical dispersion.
904 
905hunk ./NEWS.rst 525
906-** Performance Improvements
907+Minor Changes
908+'''''''''''''
909 
910hunk ./NEWS.rst 528
911-Download of immutable files begins as soon as the downloader has located the K
912-necessary shares (#928, #287). In both the previous and current releases, a
913-downloader will first issue queries to all storage servers on the grid to
914-locate shares before it begins downloading the shares. In previous releases of
915-Tahoe-LAFS, download would not begin until all storage servers on the grid had
916-replied to the query, at which point K shares would be chosen for download from
917-among the shares that were located. In this release, download begins as soon as
918-any K shares are located. This means that downloads start sooner, which is
919-particularly important if there is a server on the grid that is extremely slow
920-or even hung in such a way that it will never respond. In previous releases
921-such a server would have a negative impact on all downloads from that grid. In
922-this release, such a server will have no impact on downloads, as long as K
923-shares can be found on other, quicker, servers.  This also means that
924-downloads now use the "best-alacrity" servers that they talk to, as measured by
925-how quickly the servers reply to the initial query. This might cause downloads
926-to go faster, especially on grids with heterogeneous servers or geographical
927-dispersion.
928+- The webapi acquired a new "t=mkdir-with-children" command, to create
929+  and populate a directory in a single call. This is significantly
930+  faster than using separate "t=mkdir" and "t=set-children" operations
931+  (it uses one gateway-to-grid roundtrip, instead of three or
932+  four). (`#533`_)
933 
934hunk ./NEWS.rst 534
935-** Minor Changes
936+- The t=set-children (note the hyphen) operation is now documented in
937+  docs/frontends/webapi.txt, and is the new preferred spelling of the
938+  old t=set_children (with an underscore). The underscore version
939+  remains for backwards compatibility. (`#381`_, `#927`_)
940 
941hunk ./NEWS.rst 539
942-The webapi acquired a new "t=mkdir-with-children" command, to create and
943-populate a directory in a single call. This is significantly faster than
944-using separate "t=mkdir" and "t=set-children" operations (it uses one
945-gateway-to-grid roundtrip, instead of three or four). (#533)
946+- The tracebacks produced by errors in CLI tools should now be in
947+  plain text, instead of HTML (which is unreadable outside of a
948+  browser). (`#646`_)
949 
950hunk ./NEWS.rst 543
951-The t=set-children (note the hyphen) operation is now documented in
952-docs/frontends/webapi.txt, and is the new preferred spelling of the old
953-t=set_children (with an underscore). The underscore version remains for
954-backwards compatibility. (#381, #927)
955+- The [storage]reserved_space configuration knob (which causes the
956+  storage server to refuse shares when available disk space drops
957+  below a threshold) should work on Windows now, not just
958+  UNIX. (`#637`_)
959 
960hunk ./NEWS.rst 548
961-The tracebacks produced by errors in CLI tools should now be in plain text,
962-instead of HTML (which is unreadable outside of a browser). (#646)
963+- "tahoe cp" should now exit with status "1" if it cannot figure out a
964+  suitable target filename, such as when you copy from a bare
965+  filecap. (`#761`_)
966 
967hunk ./NEWS.rst 552
968-The [storage]reserved_space configuration knob (which causes the storage
969-server to refuse shares when available disk space drops below a threshold)
970-should work on Windows now, not just UNIX. (#637)
971+- "tahoe get" no longer creates a zero-length file upon
972+  error. (`#121`_)
973 
974hunk ./NEWS.rst 555
975-"tahoe cp" should now exit with status "1" if it cannot figure out a suitable
976-target filename, such as when you copy from a bare filecap. (#761)
977+- "tahoe ls" can now list single files. (`#457`_)
978 
979hunk ./NEWS.rst 557
980-"tahoe get" no longer creates a zero-length file upon error. (#121)
981+- "tahoe deep-check --repair" should tolerate repair failures now,
982+  instead of halting traversal. (`#874`_, `#786`_)
983 
984hunk ./NEWS.rst 560
985-"tahoe ls" can now list single files. (#457)
986+- "tahoe create-alias" no longer corrupts the aliases file if it had
987+  previously been edited to have no trailing newline. (`#741`_)
988 
989hunk ./NEWS.rst 563
990-"tahoe deep-check --repair" should tolerate repair failures now, instead of
991-halting traversal. (#874, #786)
992+- Many small packaging improvements were made to facilitate the
993+  "tahoe-lafs" package being included in Ubuntu. Several mac/win32
994+  binary libraries were removed, some figleaf code-coverage files were
995+  removed, a bundled copy of darcsver-1.2.1 was removed, and
996+  additional licensing text was added.
997 
998hunk ./NEWS.rst 569
999-"tahoe create-alias" no longer corrupts the aliases file if it had
1000-previously been edited to have no trailing newline. (#741)
1001+- Several DeprecationWarnings for python2.6 were silenced. (`#859`_)
1002 
1003hunk ./NEWS.rst 571
1004-Many small packaging improvements were made to facilitate the "tahoe-lafs"
1005-package being included in Ubuntu. Several mac/win32 binary libraries were
1006-removed, some figleaf code-coverage files were removed, a bundled copy of
1007-darcsver-1.2.1 was removed, and additional licensing text was added.
1008+- The checker --add-lease option would sometimes fail for shares
1009+  stored on old (Tahoe v1.2.0) servers. (`#875`_)
1010 
1011hunk ./NEWS.rst 574
1012-Several DeprecationWarnings for python2.6 were silenced. (#859)
1013-
1014-The checker --add-lease option would sometimes fail for shares stored
1015-on old (Tahoe v1.2.0) servers. (#875)
1016-
1017-The documentation for installing on Windows (docs/install.html) has been
1018-improved. (#773)
1019+- The documentation for installing on Windows (docs/install.html)
1020+  has been improved. (`#773`_)
1021 
1022 For other changes not mentioned here, see
1023 <http://tahoe-lafs.org/trac/tahoe/query?milestone=1.6.0&keywords=!~news-done>.
1024hunk ./NEWS.rst 582
1025 To include the tickets mentioned above, go to
1026 <http://tahoe-lafs.org/trac/tahoe/query?milestone=1.6.0>.
1027 
1028+.. _`#121`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/121
1029+.. _`#287`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/287
1030+.. _`#381`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/381
1031+.. _`#457`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/457
1032+.. _`#533`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/533
1033+.. _`#577`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/577
1034+.. _`#606`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/606
1035+.. _`#607`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/607
1036+.. _`#637`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/637
1037+.. _`#641`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/641
1038+.. _`#646`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/646
1039+.. _`#681`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/681
1040+.. _`#729`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/729
1041+.. _`#741`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/741
1042+.. _`#760`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/760
1043+.. _`#761`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/761
1044+.. _`#768`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/768
1045+.. _`#773`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/773
1046+.. _`#786`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/786
1047+.. _`#828`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/828
1048+.. _`#833`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/833
1049+.. _`#859`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/859
1050+.. _`#874`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/874
1051+.. _`#875`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/875
1052+.. _`#931`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/931
1053+.. _`#837`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/837
1054+.. _`#850`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/850
1055+.. _`#927`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/927
1056+.. _`#928`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/928
1057+.. _`#939`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/939
1058+.. _`#948`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/948
1059 
1060hunk ./NEWS.rst 614
1061-* Release 1.5.0 (2009-08-01)
1062+Release 1.5.0 (2009-08-01)
1063+--------------------------
1064 
1065hunk ./NEWS.rst 617
1066-** Improvements
1067+Improvements
1068+''''''''''''
1069 
1070hunk ./NEWS.rst 620
1071-Uploads of immutable files now use pipelined writes, improving upload speed
1072-slightly (10%) over high-latency connections. (#392)
1073+- Uploads of immutable files now use pipelined writes, improving
1074+  upload speed slightly (10%) over high-latency connections. (`#392`_)
1075 
1076hunk ./NEWS.rst 623
1077-Processing large directories has been sped up, by removing a O(N^2) algorithm
1078-from the dirnode decoding path and retaining unmodified encrypted entries.
1079-(#750, #752)
1080+- Processing large directories has been sped up, by removing a O(N^2)
1081+  algorithm from the dirnode decoding path and retaining unmodified
1082+  encrypted entries.  (`#750`_, `#752`_)
1083 
1084hunk ./NEWS.rst 627
1085-The human-facing web interface (aka the "WUI") received a significant CSS
1086-makeover by Kevin Reid, making it much prettier and easier to read. The WUI
1087-"check" and "deep-check" forms now include a "Renew Lease" checkbox,
1088-mirroring the CLI --add-lease option, so leases can be added or renewed from
1089-the web interface.
1090+- The human-facing web interface (aka the "WUI") received a
1091+  significant CSS makeover by Kevin Reid, making it much prettier and
1092+  easier to read. The WUI "check" and "deep-check" forms now include a
1093+  "Renew Lease" checkbox, mirroring the CLI --add-lease option, so
1094+  leases can be added or renewed from the web interface.
1095 
1096hunk ./NEWS.rst 633
1097-The CLI "tahoe mv" command now refuses to overwrite directories. (#705)
1098+- The CLI "tahoe mv" command now refuses to overwrite
1099+  directories. (`#705`_)
1100 
1101hunk ./NEWS.rst 636
1102-The CLI "tahoe webopen" command, when run without arguments, will now bring
1103-up the "Welcome Page" (node status and mkdir/upload forms).
1104+- The CLI "tahoe webopen" command, when run without arguments, will
1105+  now bring up the "Welcome Page" (node status and mkdir/upload
1106+  forms).
1107 
1108hunk ./NEWS.rst 640
1109-The 3.5MB limit on mutable files was removed, so it should be possible to
1110-upload arbitrarily-sized mutable files. Note, however, that the data format
1111-and algorithm remains the same, so using mutable files still requires
1112-bandwidth, computation, and RAM in proportion to the size of the mutable file.
1113-(#694)
1114+- The 3.5MB limit on mutable files was removed, so it should be
1115+  possible to upload arbitrarily-sized mutable files. Note, however,
1116+  that the data format and algorithm remains the same, so using
1117+  mutable files still requires bandwidth, computation, and RAM in
1118+  proportion to the size of the mutable file.  (`#694`_)
1119 
1120hunk ./NEWS.rst 646
1121-This version of Tahoe-LAFS will tolerate directory entries that contain filecap
1122-formats which it does not recognize: files and directories from the future.
1123-This should improve the user experience (for 1.5.0 users) when we add new cap
1124-formats in the future. Previous versions would fail badly, preventing the user
1125-from seeing or editing anything else in those directories. These unrecognized
1126-objects can be renamed and deleted, but obviously not read or written. Also
1127-they cannot generally be copied. (#683)
1128+- This version of Tahoe-LAFS will tolerate directory entries that
1129+  contain filecap formats which it does not recognize: files and
1130+  directories from the future.  This should improve the user
1131+  experience (for 1.5.0 users) when we add new cap formats in the
1132+  future. Previous versions would fail badly, preventing the user from
1133+  seeing or editing anything else in those directories. These
1134+  unrecognized objects can be renamed and deleted, but obviously not
1135+  read or written. Also they cannot generally be copied. (`#683`_)
1136 
1137hunk ./NEWS.rst 655
1138-** Bugfixes
1139+Bugfixes
1140+''''''''
1141 
1142hunk ./NEWS.rst 658
1143-deep-check-and-repair now tolerates read-only directories, such as the ones
1144-produced by the "tahoe backup" CLI command. Read-only directories and mutable
1145-files are checked, but not repaired. Previous versions threw an exception
1146-when attempting the repair and failed to process the remaining contents. We
1147-cannot yet repair these read-only objects, but at least this version allows
1148-the rest of the check+repair to proceed. (#625)
1149+- deep-check-and-repair now tolerates read-only directories, such as
1150+  the ones produced by the "tahoe backup" CLI command. Read-only
1151+  directories and mutable files are checked, but not
1152+  repaired. Previous versions threw an exception when attempting the
1153+  repair and failed to process the remaining contents. We cannot yet
1154+  repair these read-only objects, but at least this version allows the
1155+  rest of the check+repair to proceed. (`#625`_)
1156 
1157hunk ./NEWS.rst 666
1158-A bug in 1.4.1 which caused a server to be listed multiple times (and
1159-frequently broke all connections to that server) was fixed. (#653)
1160+- A bug in 1.4.1 which caused a server to be listed multiple times
1161+  (and frequently broke all connections to that server) was
1162+  fixed. (`#653`_)
1163 
1164hunk ./NEWS.rst 670
1165-The plaintext-hashing code was removed from the Helper interface, removing
1166-the Helper's ability to mount a partial-information-guessing attack. (#722)
1167+- The plaintext-hashing code was removed from the Helper interface,
1168+  removing the Helper's ability to mount a
1169+  partial-information-guessing attack. (`#722`_)
1170 
1171hunk ./NEWS.rst 674
1172-** Platform/packaging changes
1173+Platform/packaging changes
1174+''''''''''''''''''''''''''
1175 
1176hunk ./NEWS.rst 677
1177-Tahoe-LAFS now runs on NetBSD, OpenBSD, ArchLinux, and NixOS, and on an
1178-embedded system based on an ARM CPU running at 266 MHz.
1179+- Tahoe-LAFS now runs on NetBSD, OpenBSD, ArchLinux, and NixOS, and on
1180+  an embedded system based on an ARM CPU running at 266 MHz.
1181 
1182hunk ./NEWS.rst 680
1183-Unit test timeouts have been raised to allow the tests to complete on
1184-extremely slow platforms like embedded ARM-based NAS boxes, which may take
1185-several hours to run the test suite. An ARM-specific data-corrupting bug in
1186-an older version of Crypto++ (5.5.2) was identified: ARM-users are encouraged
1187-to use recent Crypto++/pycryptopp which avoids this problem.
1188+- Unit test timeouts have been raised to allow the tests to complete
1189+  on extremely slow platforms like embedded ARM-based NAS boxes, which
1190+  may take several hours to run the test suite. An ARM-specific
1191+  data-corrupting bug in an older version of Crypto++ (5.5.2) was
1192+  identified: ARM-users are encouraged to use recent
1193+  Crypto++/pycryptopp which avoids this problem.
1194 
1195hunk ./NEWS.rst 687
1196-Tahoe-LAFS now requires a SQLite library, either the sqlite3 that comes
1197-built-in with python2.5/2.6, or the add-on pysqlite2 if you're using
1198-python2.4. In the previous release, this was only needed for the "tahoe backup"
1199-command: now it is mandatory.
1200+- Tahoe-LAFS now requires a SQLite library, either the sqlite3 that
1201+  comes built-in with python2.5/2.6, or the add-on pysqlite2 if you're
1202+  using python2.4. In the previous release, this was only needed for
1203+  the "tahoe backup" command: now it is mandatory.
1204 
1205hunk ./NEWS.rst 692
1206-Several minor documentation updates were made.
1207+- Several minor documentation updates were made.
1208 
1209hunk ./NEWS.rst 694
1210-To help get Tahoe-LAFS into Linux distributions like Fedora and Debian,
1211-packaging improvements are being made in both Tahoe-LAFS and related libraries
1212-like pycryptopp and zfec.
1213+- To help get Tahoe-LAFS into Linux distributions like Fedora and
1214+  Debian, packaging improvements are being made in both Tahoe-LAFS and
1215+  related libraries like pycryptopp and zfec.
1216 
1217hunk ./NEWS.rst 698
1218-The Crypto++ library included in the pycryptopp package has been upgraded to
1219-version 5.6.0 of Crypto++, which includes a more efficient implementation of
1220-SHA-256 in assembly for x86 or amd64 architectures.
1221+- The Crypto++ library included in the pycryptopp package has been
1222+  upgraded to version 5.6.0 of Crypto++, which includes a more
1223+  efficient implementation of SHA-256 in assembly for x86 or amd64
1224+  architectures.
1225 
1226hunk ./NEWS.rst 703
1227-** dependency updates
1228+dependency updates
1229+''''''''''''''''''
1230 
1231hunk ./NEWS.rst 706
1232- foolscap-0.4.1
1233- no python-2.4.0 or 2.4.1 (2.4.2 is good)
1234-  (they contained a bug in base64.b32decode)
1235- avoid python-2.6 on windows with mingw: compiler issues
1236- python2.4 requires pysqlite2 (2.5,2.6 does not)
1237- no python-3.x
1238- pycryptopp-0.5.15
1239+- foolscap-0.4.1
1240+- no python-2.4.0 or 2.4.1 (2.4.2 is good) (they contained a bug in base64.b32decode)
1241+- avoid python-2.6 on windows with mingw: compiler issues
1242+- python2.4 requires pysqlite2 (2.5,2.6 does not)
1243+- no python-3.x
1244+- pycryptopp-0.5.15
1245 
1246hunk ./NEWS.rst 713
1247+Release 1.4.1 (2009-04-13)
1248+--------------------------
1249 
1250hunk ./NEWS.rst 716
1251-* Release 1.4.1 (2009-04-13)
1252+Garbage Collection
1253+''''''''''''''''''
1254 
1255hunk ./NEWS.rst 719
1256-** Garbage Collection
1257+- The big feature for this release is the implementation of garbage
1258+  collection, allowing Tahoe storage servers to delete shares for old
1259+  deleted files. When enabled, this uses a "mark and sweep" process:
1260+  clients are responsible for updating the leases on their shares
1261+  (generally by running "tahoe deep-check --add-lease"), and servers
1262+  are allowed to delete any share which does not have an up-to-date
1263+  lease. The process is described in detail in
1264+  docs/garbage-collection.txt .
1265 
1266hunk ./NEWS.rst 728
1267-The big feature for this release is the implementation of garbage collection,
1268-allowing Tahoe storage servers to delete shares for old deleted files. When
1269-enabled, this uses a "mark and sweep" process: clients are responsible for
1270-updating the leases on their shares (generally by running "tahoe deep-check
1271---add-lease"), and servers are allowed to delete any share which does not
1272-have an up-to-date lease. The process is described in detail in
1273-docs/garbage-collection.txt .
1274+  The server must be configured to enable garbage-collection, by
1275+  adding directives to the [storage] section that define an age limit
1276+  for shares. The default configuration will not delete any shares.
1277 
1278hunk ./NEWS.rst 732
1279-The server must be configured to enable garbage-collection, by adding
1280-directives to the [storage] section that define an age limit for shares. The
1281-default configuration will not delete any shares.
1282+  Both servers and clients should be upgraded to this release to make
1283+  the garbage-collection as pleasant as possible. 1.2.0 servers have
1284+  code to perform the update-lease operation but it suffers from a
1285+  fatal bug, while 1.3.0 servers have update-lease but will return an
1286+  exception for unknown storage indices, causing clients to emit an
1287+  Incident for each exception, slowing the add-lease process down to a
1288+  crawl. 1.1.0 servers did not have the add-lease operation at all.
1289 
1290hunk ./NEWS.rst 740
1291-Both servers and clients should be upgraded to this release to make the
1292-garbage-collection as pleasant as possible. 1.2.0 servers have code to
1293-perform the update-lease operation but it suffers from a fatal bug, while
1294-1.3.0 servers have update-lease but will return an exception for unknown
1295-storage indices, causing clients to emit an Incident for each exception,
1296-slowing the add-lease process down to a crawl. 1.1.0 servers did not have the
1297-add-lease operation at all.
1298+Security/Usability Problems Fixed
1299+'''''''''''''''''''''''''''''''''
1300 
1301hunk ./NEWS.rst 743
1302-** Security/Usability Problems Fixed
1303+- A super-linear algorithm in the Merkle Tree code was fixed, which
1304+  previously caused e.g. download of a 10GB file to take several hours
1305+  before the first byte of plaintext could be produced. The new
1306+  "alacrity" is about 2 minutes. A future release should reduce this
1307+  to a few seconds by fixing ticket `#442`_.
1308 
1309hunk ./NEWS.rst 749
1310-A super-linear algorithm in the Merkle Tree code was fixed, which previously
1311-caused e.g. download of a 10GB file to take several hours before the first
1312-byte of plaintext could be produced. The new "alacrity" is about 2 minutes. A
1313-future release should reduce this to a few seconds by fixing ticket #442.
1314+- The previous version permitted a small timing attack (due to our use
1315+  of strcmp) against the write-enabler and lease-renewal/cancel
1316+  secrets. An attacker who could measure response-time variations of
1317+  approximatly 3ns against a very noisy background time of about 15ms
1318+  might be able to guess these secrets. We do not believe this attack
1319+  was actually feasible. This release closes the attack by first
1320+  hashing the two strings to be compared with a random secret.
1321 
1322hunk ./NEWS.rst 757
1323-The previous version permitted a small timing attack (due to our use of
1324-strcmp) against the write-enabler and lease-renewal/cancel secrets. An
1325-attacker who could measure response-time variations of approximatly 3ns
1326-against a very noisy background time of about 15ms might be able to guess
1327-these secrets. We do not believe this attack was actually feasible. This
1328-release closes the attack by first hashing the two strings to be compared
1329-with a random secret.
1330+webapi changes
1331+''''''''''''''
1332 
1333hunk ./NEWS.rst 760
1334-** webapi changes
1335+- In most cases, HTML tracebacks will only be sent if an "Accept:
1336+  text/html" header was provided with the HTTP request. This will
1337+  generally cause browsers to get an HTMLized traceback but send
1338+  regular text/plain tracebacks to non-browsers (like the CLI
1339+  clients). More errors have been mapped to useful HTTP error codes.
1340 
1341hunk ./NEWS.rst 766
1342-In most cases, HTML tracebacks will only be sent if an "Accept: text/html"
1343-header was provided with the HTTP request. This will generally cause browsers
1344-to get an HTMLized traceback but send regular text/plain tracebacks to
1345-non-browsers (like the CLI clients). More errors have been mapped to useful
1346-HTTP error codes.
1347+- The streaming webapi operations (deep-check and manifest) now have a
1348+  way to indicate errors (an output line that starts with "ERROR"
1349+  instead of being legal JSON). See docs/frontends/webapi.txt for
1350+  details.
1351 
1352hunk ./NEWS.rst 771
1353-The streaming webapi operations (deep-check and manifest) now have a way to
1354-indicate errors (an output line that starts with "ERROR" instead of being
1355-legal JSON). See docs/frontends/webapi.txt for details.
1356+- The storage server now has its own status page (at /storage), linked
1357+  from the Welcome page. This page shows progress and results of the
1358+  two new share-crawlers: one which merely counts shares (to give an
1359+  estimate of how many files/directories are being stored in the
1360+  grid), the other examines leases and reports how much space would be
1361+  freed if GC were enabled. The page also shows how much disk space is
1362+  present, used, reserved, and available for the Tahoe server, and
1363+  whether the server is currently running in "read-write" mode or
1364+  "read-only" mode.
1365 
1366hunk ./NEWS.rst 781
1367-The storage server now has its own status page (at /storage), linked from the
1368-Welcome page. This page shows progress and results of the two new
1369-share-crawlers: one which merely counts shares (to give an estimate of how
1370-many files/directories are being stored in the grid), the other examines
1371-leases and reports how much space would be freed if GC were enabled. The page
1372-also shows how much disk space is present, used, reserved, and available for
1373-the Tahoe server, and whether the server is currently running in "read-write"
1374-mode or "read-only" mode.
1375+- When a directory node cannot be read (perhaps because of insufficent
1376+  shares), a minimal webapi page is created so that the "more-info"
1377+  links (including a Check/Repair operation) will still be accessible.
1378 
1379hunk ./NEWS.rst 785
1380-When a directory node cannot be read (perhaps because of insufficent shares),
1381-a minimal webapi page is created so that the "more-info" links (including a
1382-Check/Repair operation) will still be accessible.
1383+- A new "reliability" page was added, with the beginnings of work on a
1384+  statistical loss model. You can tell this page how many servers you
1385+  are using and their independent failure probabilities, and it will
1386+  tell you the likelihood that an arbitrary file will survive each
1387+  repair period. The "numpy" package must be installed to access this
1388+  page. A partial paper, written by Shawn Willden, has been added to
1389+  docs/proposed/lossmodel.lyx .
1390 
1391hunk ./NEWS.rst 793
1392-A new "reliability" page was added, with the beginnings of work on a
1393-statistical loss model. You can tell this page how many servers you are using
1394-and their independent failure probabilities, and it will tell you the
1395-likelihood that an arbitrary file will survive each repair period. The
1396-"numpy" package must be installed to access this page. A partial paper,
1397-written by Shawn Willden, has been added to docs/proposed/lossmodel.lyx .
1398+CLI changes
1399+'''''''''''
1400 
1401hunk ./NEWS.rst 796
1402-** CLI changes
1403+- "tahoe check" and "tahoe deep-check" now accept an "--add-lease"
1404+  argument, to update a lease on all shares. This is the "mark" side
1405+  of garbage collection.
1406 
1407hunk ./NEWS.rst 800
1408-"tahoe check" and "tahoe deep-check" now accept an "--add-lease" argument, to
1409-update a lease on all shares. This is the "mark" side of garbage collection.
1410+- In many cases, CLI error messages have been improved: the ugly
1411+  HTMLized traceback has been replaced by a normal python traceback.
1412 
1413hunk ./NEWS.rst 803
1414-In many cases, CLI error messages have been improved: the ugly HTMLized
1415-traceback has been replaced by a normal python traceback.
1416+- "tahoe deep-check" and "tahoe manifest" now have better error
1417+  reporting.  "tahoe cp" is now non-verbose by default.
1418 
1419hunk ./NEWS.rst 806
1420-"tahoe deep-check" and "tahoe manifest" now have better error reporting.
1421-"tahoe cp" is now non-verbose by default.
1422+- "tahoe backup" now accepts several "--exclude" arguments, to ignore
1423+  certain files (like editor temporary files and version-control
1424+  metadata) during backup.
1425 
1426hunk ./NEWS.rst 810
1427-"tahoe backup" now accepts several "--exclude" arguments, to ignore certain
1428-files (like editor temporary files and version-control metadata) during
1429-backup.
1430+- On windows, the CLI now accepts local paths like "c:\dir\file.txt",
1431+  which previously was interpreted as a Tahoe path using a "c:" alias.
1432 
1433hunk ./NEWS.rst 813
1434-On windows, the CLI now accepts local paths like "c:\dir\file.txt", which
1435-previously was interpreted as a Tahoe path using a "c:" alias.
1436+- The "tahoe restart" command now uses "--force" by default (meaning
1437+  it will start a node even if it didn't look like there was one
1438+  already running).
1439 
1440hunk ./NEWS.rst 817
1441-The "tahoe restart" command now uses "--force" by default (meaning it will
1442-start a node even if it didn't look like there was one already running).
1443+- The "tahoe debug consolidate" command was added. This takes a series
1444+  of independent timestamped snapshot directories (such as those
1445+  created by the allmydata.com windows backup program, or a series of
1446+  "tahoe cp -r" commands) and creates new snapshots that used shared
1447+  read-only directories whenever possible (like the output of "tahoe
1448+  backup"). In the most common case (when the snapshots are fairly
1449+  similar), the result will use significantly fewer directories than
1450+  the original, allowing "deep-check" and similar tools to run much
1451+  faster. In some cases, the speedup can be an order of magnitude or
1452+  more.  This tool is still somewhat experimental, and only needs to
1453+  be run on large backups produced by something other than "tahoe
1454+  backup", so it was placed under the "debug" category.
1455 
1456hunk ./NEWS.rst 830
1457-The "tahoe debug consolidate" command was added. This takes a series of
1458-independent timestamped snapshot directories (such as those created by the
1459-allmydata.com windows backup program, or a series of "tahoe cp -r" commands)
1460-and creates new snapshots that used shared read-only directories whenever
1461-possible (like the output of "tahoe backup"). In the most common case (when
1462-the snapshots are fairly similar), the result will use significantly fewer
1463-directories than the original, allowing "deep-check" and similar tools to run
1464-much faster. In some cases, the speedup can be an order of magnitude or more.
1465-This tool is still somewhat experimental, and only needs to be run on large
1466-backups produced by something other than "tahoe backup", so it was placed
1467-under the "debug" category.
1468+- "tahoe cp -r --caps-only tahoe:dir localdir" is a diagnostic tool
1469+  which, instead of copying the full contents of files into the local
1470+  directory, merely copies their filecaps. This can be used to verify
1471+  the results of a "consolidation" operation.
1472 
1473hunk ./NEWS.rst 835
1474-"tahoe cp -r --caps-only tahoe:dir localdir" is a diagnostic tool which,
1475-instead of copying the full contents of files into the local directory,
1476-merely copies their filecaps. This can be used to verify the results of a
1477-"consolidation" operation.
1478+other fixes
1479+'''''''''''
1480 
1481hunk ./NEWS.rst 838
1482-** other fixes
1483+- The codebase no longer rauses RuntimeError as a kind of
1484+  assert(). Specific exception classes were created for each previous
1485+  instance of RuntimeError.
1486 
1487hunk ./NEWS.rst 842
1488-The codebase no longer rauses RuntimeError as a kind of assert(). Specific
1489-exception classes were created for each previous instance of RuntimeError.
1490+ -Many unit tests were changed to use a non-network test harness,
1491+  speeding them up considerably.
1492 
1493hunk ./NEWS.rst 845
1494-Many unit tests were changed to use a non-network test harness, speeding them
1495-up considerably.
1496+- Deep-traversal operations (manifest and deep-check) now walk
1497+  individual directories in alphabetical order. Occasional turn breaks
1498+  are inserted to prevent a stack overflow when traversing directories
1499+  with hundreds of entries.
1500 
1501hunk ./NEWS.rst 850
1502-Deep-traversal operations (manifest and deep-check) now walk individual
1503-directories in alphabetical order. Occasional turn breaks are inserted to
1504-prevent a stack overflow when traversing directories with hundreds of
1505-entries.
1506+- The experimental SFTP server had its path-handling logic changed
1507+  slightly, to accomodate more SFTP clients, although there are still
1508+  issues (`#645`_).
1509 
1510hunk ./NEWS.rst 854
1511-The experimental SFTP server had its path-handling logic changed slightly, to
1512-accomodate more SFTP clients, although there are still issues (#645).
1513 
1514hunk ./NEWS.rst 855
1515+Release 1.3.0 (2009-02-13)
1516+--------------------------
1517 
1518hunk ./NEWS.rst 858
1519-* Release 1.3.0 (2009-02-13)
1520+Checker/Verifier/Repairer
1521+'''''''''''''''''''''''''
1522 
1523hunk ./NEWS.rst 861
1524-** Checker/Verifier/Repairer
1525+- The primary focus of this release has been writing a checker /
1526+  verifier / repairer for files and directories.  "Checking" is the
1527+  act of asking storage servers whether they have a share for the
1528+  given file or directory: if there are not enough shares available,
1529+  the file or directory will be unrecoverable. "Verifying" is the act
1530+  of downloading and cryptographically asserting that the server's
1531+  share is undamaged: it requires more work (bandwidth and CPU) than
1532+  checking, but can catch problems that simple checking
1533+  cannot. "Repair" is the act of replacing missing or damaged shares
1534+  with new ones.
1535 
1536hunk ./NEWS.rst 872
1537-The primary focus of this release has been writing a checker / verifier /
1538-repairer for files and directories.  "Checking" is the act of asking storage
1539-servers whether they have a share for the given file or directory: if there
1540-are not enough shares available, the file or directory will be
1541-unrecoverable. "Verifying" is the act of downloading and cryptographically
1542-asserting that the server's share is undamaged: it requires more work
1543-(bandwidth and CPU) than checking, but can catch problems that simple
1544-checking cannot. "Repair" is the act of replacing missing or damaged shares
1545-with new ones.
1546+- This release includes a full checker, a partial verifier, and a
1547+  partial repairer. The repairer is able to handle missing shares: new
1548+  shares are generated and uploaded to make up for the missing
1549+  ones. This is currently the best application of the repairer: to
1550+  replace shares that were lost because of server departure or
1551+  permanent drive failure.
1552 
1553hunk ./NEWS.rst 879
1554-This release includes a full checker, a partial verifier, and a partial
1555-repairer. The repairer is able to handle missing shares: new shares are
1556-generated and uploaded to make up for the missing ones. This is currently the
1557-best application of the repairer: to replace shares that were lost because of
1558-server departure or permanent drive failure.
1559+- The repairer in this release is somewhat able to handle corrupted
1560+  shares. The limitations are:
1561 
1562hunk ./NEWS.rst 882
1563-The repairer in this release is somewhat able to handle corrupted shares. The
1564-limitations are:
1565+ - Immutable verifier is incomplete: not all shares are used, and not
1566+   all fields of those shares are verified. Therefore the immutable
1567+   verifier has only a moderate chance of detecting corrupted shares.
1568+ - The mutable verifier is mostly complete: all shares are examined,
1569+   and most fields of the shares are validated.
1570+ - The storage server protocol offers no way for the repairer to
1571+   replace or delete immutable shares. If corruption is detected, the
1572+   repairer will upload replacement shares to other servers, but the
1573+   corrupted shares will be left in place.
1574+ - read-only directories and read-only mutable files must be repaired
1575+   by someone who holds the write-cap: the read-cap is
1576+   insufficient. Moreover, the deep-check-and-repair operation will
1577+   halt with an error if it attempts to repair one of these read-only
1578+   objects.
1579+ - Some forms of corruption can cause both download and repair
1580+   operations to fail. A future release will fix this, since download
1581+   should be tolerant of any corruption as long as there are at least
1582+   'k' valid shares, and repair should be able to fix any file that is
1583+   downloadable.
1584 
1585hunk ./NEWS.rst 902
1586- * Immutable verifier is incomplete: not all shares are used, and not all
1587-   fields of those shares are verified. Therefore the immutable verifier has
1588-   only a moderate chance of detecting corrupted shares.
1589- * The mutable verifier is mostly complete: all shares are examined, and most
1590-   fields of the shares are validated.
1591- * The storage server protocol offers no way for the repairer to replace or
1592-   delete immutable shares. If corruption is detected, the repairer will
1593-   upload replacement shares to other servers, but the corrupted shares will
1594-   be left in place.
1595- * read-only directories and read-only mutable files must be repaired by
1596-   someone who holds the write-cap: the read-cap is insufficient. Moreover,
1597-   the deep-check-and-repair operation will halt with an error if it attempts
1598-   to repair one of these read-only objects.
1599- * Some forms of corruption can cause both download and repair operations to
1600-   fail. A future release will fix this, since download should be tolerant of
1601-   any corruption as long as there are at least 'k' valid shares, and repair
1602-   should be able to fix any file that is downloadable.
1603+- If the downloader, verifier, or repairer detects share corruption,
1604+  the servers which provided the bad shares will be notified (via a
1605+  file placed in the BASEDIR/storage/corruption-advisories directory)
1606+  so their operators can manually delete the corrupted shares and
1607+  investigate the problem. In addition, the "incident gatherer"
1608+  mechanism will automatically report share corruption to an incident
1609+  gatherer service, if one is configured. Note that corrupted shares
1610+  indicate hardware failures, serious software bugs, or malice on the
1611+  part of the storage server operator, so a corrupted share should be
1612+  considered highly unusual.
1613 
1614hunk ./NEWS.rst 913
1615-If the downloader, verifier, or repairer detects share corruption, the
1616-servers which provided the bad shares will be notified (via a file placed in
1617-the BASEDIR/storage/corruption-advisories directory) so their operators can
1618-manually delete the corrupted shares and investigate the problem. In
1619-addition, the "incident gatherer" mechanism will automatically report share
1620-corruption to an incident gatherer service, if one is configured. Note that
1621-corrupted shares indicate hardware failures, serious software bugs, or malice
1622-on the part of the storage server operator, so a corrupted share should be
1623-considered highly unusual.
1624+- By periodically checking/repairing all files and directories,
1625+  objects in the Tahoe filesystem remain resistant to recoverability
1626+  failures due to missing and/or broken servers.
1627 
1628hunk ./NEWS.rst 917
1629-By periodically checking/repairing all files and directories, objects in the
1630-Tahoe filesystem remain resistant to recoverability failures due to missing
1631-and/or broken servers.
1632+- This release includes a wapi mechanism to initiate checks on
1633+  individual files and directories (with or without verification, and
1634+  with or without automatic repair). A related mechanism is used to
1635+  initiate a "deep-check" on a directory: recursively traversing the
1636+  directory and its children, checking (and/or verifying/repairing)
1637+  everything underneath. Both mechanisms can be run with an
1638+  "output=JSON" argument, to obtain machine-readable check/repair
1639+  status results. These results include a copy of the filesystem
1640+  statistics from the "deep-stats" operation (including total number
1641+  of files, size histogram, etc). If repair is possible, a "Repair"
1642+  button will appear on the results page.
1643 
1644hunk ./NEWS.rst 929
1645-This release includes a wapi mechanism to initiate checks on individual
1646-files and directories (with or without verification, and with or without
1647-automatic repair). A related mechanism is used to initiate a "deep-check" on
1648-a directory: recursively traversing the directory and its children, checking
1649-(and/or verifying/repairing) everything underneath. Both mechanisms can be
1650-run with an "output=JSON" argument, to obtain machine-readable check/repair
1651-status results. These results include a copy of the filesystem statistics
1652-from the "deep-stats" operation (including total number of files, size
1653-histogram, etc). If repair is possible, a "Repair" button will appear on the
1654-results page.
1655+- The client web interface now features some extra buttons to initiate
1656+  check and deep-check operations. When these operations finish, they
1657+  display a results page that summarizes any problems that were
1658+  encountered. All long-running deep-traversal operations, including
1659+  deep-check, use a start-and-poll mechanism, to avoid depending upon
1660+  a single long-lived HTTP connection. docs/frontends/webapi.txt has
1661+  details.
1662 
1663hunk ./NEWS.rst 937
1664-The client web interface now features some extra buttons to initiate check
1665-and deep-check operations. When these operations finish, they display a
1666-results page that summarizes any problems that were encountered. All
1667-long-running deep-traversal operations, including deep-check, use a
1668-start-and-poll mechanism, to avoid depending upon a single long-lived HTTP
1669-connection. docs/frontends/webapi.txt has details.
1670+Efficient Backup
1671+''''''''''''''''
1672 
1673hunk ./NEWS.rst 940
1674-** Efficient Backup
1675+- The "tahoe backup" command is new in this release, which creates
1676+  efficient versioned backups of a local directory. Given a local
1677+  pathname and a target Tahoe directory, this will create a read-only
1678+  snapshot of the local directory in $target/Archives/$timestamp. It
1679+  will also create $target/Latest, which is a reference to the latest
1680+  such snapshot. Each time you run "tahoe backup" with the same source
1681+  and target, a new $timestamp snapshot will be added. These snapshots
1682+  will share directories that have not changed since the last backup,
1683+  to speed up the process and minimize storage requirements. In
1684+  addition, a small database is used to keep track of which local
1685+  files have been uploaded already, to avoid uploading them a second
1686+  time. This drastically reduces the work needed to do a "null backup"
1687+  (when nothing has changed locally), making "tahoe backup' suitable
1688+  to run from a daily cronjob.
1689 
1690hunk ./NEWS.rst 955
1691-The "tahoe backup" command is new in this release, which creates efficient
1692-versioned backups of a local directory. Given a local pathname and a target
1693-Tahoe directory, this will create a read-only snapshot of the local directory
1694-in $target/Archives/$timestamp. It will also create $target/Latest, which is
1695-a reference to the latest such snapshot. Each time you run "tahoe backup"
1696-with the same source and target, a new $timestamp snapshot will be added.
1697-These snapshots will share directories that have not changed since the last
1698-backup, to speed up the process and minimize storage requirements. In
1699-addition, a small database is used to keep track of which local files have
1700-been uploaded already, to avoid uploading them a second time. This
1701-drastically reduces the work needed to do a "null backup" (when nothing has
1702-changed locally), making "tahoe backup' suitable to run from a daily cronjob.
1703+  Note that the "tahoe backup" CLI command must be used in conjunction
1704+  with a 1.3.0-or-newer Tahoe client node; there was a bug in the
1705+  1.2.0 webapi implementation that would prevent the last step (create
1706+  $target/Latest) from working.
1707 
1708hunk ./NEWS.rst 960
1709-Note that the "tahoe backup" CLI command must be used in conjunction with a
1710-1.3.0-or-newer Tahoe client node; there was a bug in the 1.2.0 webapi
1711-implementation that would prevent the last step (create $target/Latest) from
1712-working.
1713+Large Files
1714+'''''''''''
1715 
1716hunk ./NEWS.rst 963
1717-** Large Files
1718+- The 12GiB (approximate) immutable-file-size limitation is
1719+  lifted. This release knows how to handle so-called "v2 immutable
1720+  shares", which permit immutable files of up to about 18 EiB (about
1721+  3*10^14). These v2 shares are created if the file to be uploaded is
1722+  too large to fit into v1 shares. v1 shares are created if the file
1723+  is small enough to fit into them, so that files created with
1724+  tahoe-1.3.0 can still be read by earlier versions if they are not
1725+  too large. Note that storage servers also had to be changed to
1726+  support larger files, and this release is the first release in which
1727+  they are able to do that. Clients will detect which servers are
1728+  capable of supporting large files on upload and will not attempt to
1729+  upload shares of a large file to a server which doesn't support it.
1730 
1731hunk ./NEWS.rst 976
1732-The 12GiB (approximate) immutable-file-size limitation is lifted. This
1733-release knows how to handle so-called "v2 immutable shares", which permit
1734-immutable files of up to about 18 EiB (about 3*10^14). These v2 shares are
1735-created if the file to be uploaded is too large to fit into v1 shares. v1
1736-shares are created if the file is small enough to fit into them, so that
1737-files created with tahoe-1.3.0 can still be read by earlier versions if they
1738-are not too large. Note that storage servers also had to be changed to
1739-support larger files, and this release is the first release in which they are
1740-able to do that. Clients will detect which servers are capable of supporting
1741-large files on upload and will not attempt to upload shares of a large file
1742-to a server which doesn't support it.
1743+FTP/SFTP Server
1744+'''''''''''''''
1745 
1746hunk ./NEWS.rst 979
1747-** FTP/SFTP Server
1748+- Tahoe now includes experimental FTP and SFTP servers. When
1749+  configured with a suitable method to translate username+password
1750+  into a root directory cap, it provides simple access to the virtual
1751+  filesystem. Remember that FTP is completely unencrypted: passwords,
1752+  filenames, and file contents are all sent over the wire in
1753+  cleartext, so FTP should only be used on a local (127.0.0.1)
1754+  connection. This feature is still in development: there are no unit
1755+  tests yet, and behavior with respect to Unicode filenames is
1756+  uncertain. Please see docs/frontends/FTP-and-SFTP.txt for
1757+  configuration details. (`#512`_, `#531`_)
1758 
1759hunk ./NEWS.rst 990
1760-Tahoe now includes experimental FTP and SFTP servers. When configured with a
1761-suitable method to translate username+password into a root directory cap, it
1762-provides simple access to the virtual filesystem. Remember that FTP is
1763-completely unencrypted: passwords, filenames, and file contents are all sent
1764-over the wire in cleartext, so FTP should only be used on a local (127.0.0.1)
1765-connection. This feature is still in development: there are no unit tests
1766-yet, and behavior with respect to Unicode filenames is uncertain. Please see
1767-docs/frontends/FTP-and-SFTP.txt for configuration details. (#512, #531)
1768+CLI Changes
1769+'''''''''''
1770 
1771hunk ./NEWS.rst 993
1772-** CLI Changes
1773+- This release adds the 'tahoe create-alias' command, which is a
1774+  combination of 'tahoe mkdir' and 'tahoe add-alias'. This also allows
1775+  you to start using a new tahoe directory without exposing its URI in
1776+  the argv list, which is publicly visible (through the process table)
1777+  on most unix systems.  Thanks to Kevin Reid for bringing this issue
1778+  to our attention.
1779 
1780hunk ./NEWS.rst 1000
1781-This release adds the 'tahoe create-alias' command, which is a combination of
1782-'tahoe mkdir' and 'tahoe add-alias'. This also allows you to start using a
1783-new tahoe directory without exposing its URI in the argv list, which is
1784-publicly visible (through the process table) on most unix systems.  Thanks to
1785-Kevin Reid for bringing this issue to our attention.
1786+- The single-argument form of "tahoe put" was changed to create an
1787+  unlinked file. I.e. "tahoe put bar.txt" will take the contents of a
1788+  local "bar.txt" file, upload them to the grid, and print the
1789+  resulting read-cap; the file will not be attached to any
1790+  directories. This seemed a bit more useful than the previous
1791+  behavior (copy stdin, upload to the grid, attach the resulting file
1792+  into your default tahoe: alias in a child named 'bar.txt').
1793 
1794hunk ./NEWS.rst 1008
1795-The single-argument form of "tahoe put" was changed to create an unlinked
1796-file. I.e. "tahoe put bar.txt" will take the contents of a local "bar.txt"
1797-file, upload them to the grid, and print the resulting read-cap; the file
1798-will not be attached to any directories. This seemed a bit more useful than
1799-the previous behavior (copy stdin, upload to the grid, attach the resulting
1800-file into your default tahoe: alias in a child named 'bar.txt').
1801+- "tahoe put" was also fixed to handle mutable files correctly: "tahoe
1802+  put bar.txt URI:SSK:..." will read the contents of the local bar.txt
1803+  and use them to replace the contents of the given mutable file.
1804 
1805hunk ./NEWS.rst 1012
1806-"tahoe put" was also fixed to handle mutable files correctly: "tahoe put
1807-bar.txt URI:SSK:..." will read the contents of the local bar.txt and use them
1808-to replace the contents of the given mutable file.
1809+- The "tahoe webopen" command was modified to accept aliases. This
1810+  means "tahoe webopen tahoe:" will cause your web browser to open to
1811+  a "wui" page that gives access to the directory associated with the
1812+  default "tahoe:" alias. It should also accept leading slashes, like
1813+  "tahoe webopen tahoe:/stuff".
1814 
1815hunk ./NEWS.rst 1018
1816-The "tahoe webopen" command was modified to accept aliases. This means "tahoe
1817-webopen tahoe:" will cause your web browser to open to a "wui" page that
1818-gives access to the directory associated with the default "tahoe:" alias. It
1819-should also accept leading slashes, like "tahoe webopen tahoe:/stuff".
1820+- Many esoteric debugging commands were moved down into a "debug"
1821+  subcommand:
1822 
1823hunk ./NEWS.rst 1021
1824-Many esoteric debugging commands were moved down into a "debug" subcommand:
1825+ - tahoe debug dump-cap
1826+ - tahoe debug dump-share
1827+ - tahoe debug find-shares
1828+ - tahoe debug catalog-shares
1829+ - tahoe debug corrupt-share
1830 
1831hunk ./NEWS.rst 1027
1832- tahoe debug dump-cap
1833- tahoe debug dump-share
1834- tahoe debug find-shares
1835- tahoe debug catalog-shares
1836- tahoe debug corrupt-share
1837-
1838-The last command ("tahoe debug corrupt-share") flips a random bit of the
1839-given local sharefile. This is used to test the file verifying/repairing
1840-code, and obviously should not be used on user data.
1841+   The last command ("tahoe debug corrupt-share") flips a random bit
1842+   of the given local sharefile. This is used to test the file
1843+   verifying/repairing code, and obviously should not be used on user
1844+   data.
1845 
1846 The cli might not correctly handle arguments which contain non-ascii
1847 characters in Tahoe v1.3 (although depending on your platform it
1848hunk ./NEWS.rst 1038
1849 characters on the command-line in utf-8 encoding).  See
1850 http://tahoe-lafs.org/trac/tahoe/ticket/565 for details.
1851 
1852-** Web changes
1853+Web changes
1854+'''''''''''
1855 
1856hunk ./NEWS.rst 1041
1857-The "default webapi port", used when creating a new client node (and in the
1858-getting-started documentation), was changed from 8123 to 3456, to reduce
1859-confusion when Tahoe accessed through a Firefox browser on which the
1860-"Torbutton" extension has been installed. Port 8123 is occasionally used as a
1861-Tor control port, so Torbutton adds 8123 to Firefox's list of "banned ports"
1862-to avoid CSRF attacks against Tor. Once 8123 is banned, it is difficult to
1863-diagnose why you can no longer reach a Tahoe node, so the Tahoe default was
1864-changed. Note that 3456 is reserved by IANA for the "vat" protocol, but there
1865-are argueably more Torbutton+Tahoe users than vat users these days. Note that
1866-this will only affect newly-created client nodes. Pre-existing client nodes,
1867-created by earlier versions of tahoe, may still be listening on 8123.
1868+- The "default webapi port", used when creating a new client node (and
1869+  in the getting-started documentation), was changed from 8123 to
1870+  3456, to reduce confusion when Tahoe accessed through a Firefox
1871+  browser on which the "Torbutton" extension has been installed. Port
1872+  8123 is occasionally used as a Tor control port, so Torbutton adds
1873+  8123 to Firefox's list of "banned ports" to avoid CSRF attacks
1874+  against Tor. Once 8123 is banned, it is difficult to diagnose why
1875+  you can no longer reach a Tahoe node, so the Tahoe default was
1876+  changed. Note that 3456 is reserved by IANA for the "vat" protocol,
1877+  but there are argueably more Torbutton+Tahoe users than vat users
1878+  these days. Note that this will only affect newly-created client
1879+  nodes. Pre-existing client nodes, created by earlier versions of
1880+  tahoe, may still be listening on 8123.
1881 
1882hunk ./NEWS.rst 1055
1883-All deep-traversal operations (start-manifest, start-deep-size,
1884-start-deep-stats, start-deep-check) now use a start-and-poll approach,
1885-instead of using a single (fragile) long-running synchronous HTTP connection.
1886-All these "start-" operations use POST instead of GET. The old "GET
1887-manifest", "GET deep-size", and "POST deep-check" operations have been
1888-removed.
1889+- All deep-traversal operations (start-manifest, start-deep-size,
1890+  start-deep-stats, start-deep-check) now use a start-and-poll
1891+  approach, instead of using a single (fragile) long-running
1892+  synchronous HTTP connection. All these "start-" operations use POST
1893+  instead of GET. The old "GET manifest", "GET deep-size", and "POST
1894+  deep-check" operations have been removed.
1895 
1896hunk ./NEWS.rst 1062
1897-The new "POST start-manifest" operation, when it finally completes, results
1898-in a table of (path,cap), instead of the list of verifycaps produced by the
1899-old "GET manifest". The table is available in several formats: use
1900-output=html, output=text, or output=json to choose one. The JSON output also
1901-includes stats, and a list of verifycaps and storage-index strings.
1902+- The new "POST start-manifest" operation, when it finally completes,
1903+  results in a table of (path,cap), instead of the list of verifycaps
1904+  produced by the old "GET manifest". The table is available in
1905+  several formats: use output=html, output=text, or output=json to
1906+  choose one. The JSON output also includes stats, and a list of
1907+  verifycaps and storage-index strings. The "return_to=" and
1908+  "when_done=" arguments have been removed from the t=check and
1909+  deep-check operations.
1910 
1911hunk ./NEWS.rst 1071
1912-The "return_to=" and "when_done=" arguments have been removed from the
1913-t=check and deep-check operations.
1914+- The top-level status page (/status) now has a machine-readable form,
1915+  via "/status/?t=json". This includes information about the
1916+  currently-active uploads and downloads, which may be useful for
1917+  frontends that wish to display progress information. There is no
1918+  easy way to correlate the activities displayed here with recent wapi
1919+  requests, however.
1920 
1921hunk ./NEWS.rst 1078
1922-The top-level status page (/status) now has a machine-readable form, via
1923-"/status/?t=json". This includes information about the currently-active
1924-uploads and downloads, which may be useful for frontends that wish to display
1925-progress information. There is no easy way to correlate the activities
1926-displayed here with recent wapi requests, however.
1927+- Any files in BASEDIR/public_html/ (configurable) will be served in
1928+  response to requests in the /static/ portion of the URL space. This
1929+  will simplify the deployment of javascript-based frontends that can
1930+  still access wapi calls by conforming to the (regrettable)
1931+  "same-origin policy".
1932 
1933hunk ./NEWS.rst 1084
1934-Any files in BASEDIR/public_html/ (configurable) will be served in response
1935-to requests in the /static/ portion of the URL space. This will simplify the
1936-deployment of javascript-based frontends that can still access wapi calls
1937-by conforming to the (regrettable) "same-origin policy".
1938+- The welcome page now has a "Report Incident" button, which is tied
1939+  into the "Incident Gatherer" machinery. If the node is attached to
1940+  an incident gatherer (via log_gatherer.furl), then pushing this
1941+  button will cause an Incident to be signalled: this means recent log
1942+  events are aggregated and sent in a bundle to the gatherer. The user
1943+  can push this button after something strange takes place (and they
1944+  can provide a short message to go along with it), and the relevant
1945+  data will be delivered to a centralized incident-gatherer for later
1946+  processing by operations staff.
1947 
1948hunk ./NEWS.rst 1094
1949-The welcome page now has a "Report Incident" button, which is tied into the
1950-"Incident Gatherer" machinery. If the node is attached to an incident
1951-gatherer (via log_gatherer.furl), then pushing this button will cause an
1952-Incident to be signalled: this means recent log events are aggregated and
1953-sent in a bundle to the gatherer. The user can push this button after
1954-something strange takes place (and they can provide a short message to go
1955-along with it), and the relevant data will be delivered to a centralized
1956-incident-gatherer for later processing by operations staff.
1957+- The "HEAD" method should now work correctly, in addition to the
1958+  usual "GET", "PUT", and "POST" methods. "HEAD" is supposed to return
1959+  exactly the same headers as "GET" would, but without any of the
1960+  actual response body data. For mutable files, this now does a brief
1961+  mapupdate (to figure out the size of the file that would be
1962+  returned), without actually retrieving the file's contents.
1963 
1964hunk ./NEWS.rst 1101
1965-The "HEAD" method should now work correctly, in addition to the usual "GET",
1966-"PUT", and "POST" methods. "HEAD" is supposed to return exactly the same
1967-headers as "GET" would, but without any of the actual response body data. For
1968-mutable files, this now does a brief mapupdate (to figure out the size of the
1969-file that would be returned), without actually retrieving the file's
1970-contents.
1971+- The "GET" operation on files can now support the HTTP "Range:"
1972+  header, allowing requests for partial content. This allows certain
1973+  media players to correctly stream audio and movies out of a Tahoe
1974+  grid. The current implementation uses a disk-based cache in
1975+  BASEDIR/private/cache/download , which holds the plaintext of the
1976+  files being downloaded. Future implementations might not use this
1977+  cache. GET for immutable files now returns an ETag header.
1978 
1979hunk ./NEWS.rst 1109
1980-The "GET" operation on files can now support the HTTP "Range:" header,
1981-allowing requests for partial content. This allows certain media players to
1982-correctly stream audio and movies out of a Tahoe grid. The current
1983-implementation uses a disk-based cache in BASEDIR/private/cache/download ,
1984-which holds the plaintext of the files being downloaded. Future
1985-implementations might not use this cache. GET for immutable files now returns
1986-an ETag header.
1987+- Each file and directory now has a "Show More Info" web page, which
1988+  contains much of the information that was crammed into the directory
1989+  page before. This includes readonly URIs, storage index strings,
1990+  object type, buttons to control checking/verifying/repairing, and
1991+  deep-check/deep-stats buttons (for directories). For mutable files,
1992+  the "replace contents" upload form has been moved here too. As a
1993+  result, the directory page is now much simpler and cleaner, and
1994+  several potentially-misleading links (like t=uri) are now gone.
1995 
1996hunk ./NEWS.rst 1118
1997-Each file and directory now has a "Show More Info" web page, which contains
1998-much of the information that was crammed into the directory page before. This
1999-includes readonly URIs, storage index strings, object type, buttons to
2000-control checking/verifying/repairing, and deep-check/deep-stats buttons (for
2001-directories). For mutable files, the "replace contents" upload form has been
2002-moved here too. As a result, the directory page is now much simpler and
2003-cleaner, and several potentially-misleading links (like t=uri) are now gone.
2004+- Slashes are discouraged in Tahoe file/directory names, since they
2005+  cause problems when accessing the filesystem through the
2006+  wapi. However, there are a couple of accidental ways to generate
2007+  such names. This release tries to make it easier to correct such
2008+  mistakes by escaping slashes in several places, allowing slashes in
2009+  the t=info and t=delete commands, and in the source (but not the
2010+  target) of a t=rename command.
2011 
2012hunk ./NEWS.rst 1126
2013-Slashes are discouraged in Tahoe file/directory names, since they cause
2014-problems when accessing the filesystem through the wapi. However, there are
2015-a couple of accidental ways to generate such names. This release tries to
2016-make it easier to correct such mistakes by escaping slashes in several
2017-places, allowing slashes in the t=info and t=delete commands, and in the
2018-source (but not the target) of a t=rename command.
2019+Packaging
2020+'''''''''
2021 
2022hunk ./NEWS.rst 1129
2023-** Packaging
2024+- Tahoe's dependencies have been extended to require the
2025+  "[secure_connections]" feature from Foolscap, which will cause
2026+  pyOpenSSL to be required and/or installed. If OpenSSL and its
2027+  development headers are already installed on your system, this can
2028+  occur automatically. Tahoe now uses pollreactor (instead of the
2029+  default selectreactor) to work around a bug between pyOpenSSL and
2030+  the most recent release of Twisted (8.1.0). This bug only affects
2031+  unit tests (hang during shutdown), and should not impact regular
2032+  use.
2033 
2034hunk ./NEWS.rst 1139
2035-Tahoe's dependencies have been extended to require the "[secure_connections]"
2036-feature from Foolscap, which will cause pyOpenSSL to be required and/or
2037-installed. If OpenSSL and its development headers are already installed on
2038-your system, this can occur automatically. Tahoe now uses pollreactor
2039-(instead of the default selectreactor) to work around a bug between pyOpenSSL
2040-and the most recent release of Twisted (8.1.0). This bug only affects unit
2041-tests (hang during shutdown), and should not impact regular use.
2042+- The Tahoe source code tarballs now come in two different forms:
2043+  regular and "sumo". The regular tarball contains just Tahoe, nothing
2044+  else. When building from the regular tarball, the build process will
2045+  download any unmet dependencies from the internet (starting with the
2046+  index at PyPI) so it can build and install them. The "sumo" tarball
2047+  contains copies of all the libraries that Tahoe requires (foolscap,
2048+  twisted, zfec, etc), so using the "sumo" tarball should not require
2049+  any internet access during the build process. This can be useful if
2050+  you want to build Tahoe while on an airplane, a desert island, or
2051+  other bandwidth-limited environments.
2052 
2053hunk ./NEWS.rst 1150
2054-The Tahoe source code tarballs now come in two different forms: regular and
2055-"sumo". The regular tarball contains just Tahoe, nothing else. When building
2056-from the regular tarball, the build process will download any unmet
2057-dependencies from the internet (starting with the index at PyPI) so it can
2058-build and install them. The "sumo" tarball contains copies of all the
2059-libraries that Tahoe requires (foolscap, twisted, zfec, etc), so using the
2060-"sumo" tarball should not require any internet access during the build
2061-process. This can be useful if you want to build Tahoe while on an airplane,
2062-a desert island, or other bandwidth-limited environments.
2063+- Similarly, tahoe-lafs.org now hosts a "tahoe-deps" tarball which
2064+  contains the latest versions of all these dependencies. This
2065+  tarball, located at
2066+  http://tahoe-lafs.org/source/tahoe/deps/tahoe-deps.tar.gz, can be
2067+  unpacked in the tahoe source tree (or in its parent directory), and
2068+  the build process should satisfy its downloading needs from it
2069+  instead of reaching out to PyPI.  This can be useful if you want to
2070+  build Tahoe from a darcs checkout while on that airplane or desert
2071+  island.
2072 
2073hunk ./NEWS.rst 1160
2074-Similarly, tahoe-lafs.org now hosts a "tahoe-deps" tarball which contains the
2075-latest versions of all these dependencies. This tarball, located at
2076-http://tahoe-lafs.org/source/tahoe/deps/tahoe-deps.tar.gz, can be unpacked in
2077-the tahoe source tree (or in its parent directory), and the build process
2078-should satisfy its downloading needs from it instead of reaching out to PyPI.
2079-This can be useful if you want to build Tahoe from a darcs checkout while on
2080-that airplane or desert island.
2081+- Because of the previous two changes ("sumo" tarballs and the
2082+  "tahoe-deps" bundle), most of the files have been removed from
2083+  misc/dependencies/ . This brings the regular Tahoe tarball down to
2084+  2MB (compressed), and the darcs checkout (without history) to about
2085+  7.6MB. A full darcs checkout will still be fairly large (because of
2086+  the historical patches which included the dependent libraries), but
2087+  a 'lazy' one should now be small.
2088 
2089hunk ./NEWS.rst 1168
2090-Because of the previous two changes ("sumo" tarballs and the "tahoe-deps"
2091-bundle), most of the files have been removed from misc/dependencies/ . This
2092-brings the regular Tahoe tarball down to 2MB (compressed), and the darcs
2093-checkout (without history) to about 7.6MB. A full darcs checkout will still
2094-be fairly large (because of the historical patches which included the
2095-dependent libraries), but a 'lazy' one should now be small.
2096+- The default "make" target is now an alias for "setup.py build",
2097+  which itself is an alias for "setup.py develop --prefix support",
2098+  with some extra work before and after (see setup.cfg). Most of the
2099+  complicated platform-dependent code in the Makefile was rewritten in
2100+  Python and moved into setup.py, simplifying things considerably.
2101 
2102hunk ./NEWS.rst 1174
2103-The default "make" target is now an alias for "setup.py build", which itself
2104-is an alias for "setup.py develop --prefix support", with some extra work
2105-before and after (see setup.cfg). Most of the complicated platform-dependent
2106-code in the Makefile was rewritten in Python and moved into setup.py,
2107-simplifying things considerably.
2108+- Likewise, the "make test" target now delegates most of its work to
2109+  "setup.py test", which takes care of getting PYTHONPATH configured
2110+  to access the tahoe code (and dependencies) that gets put in
2111+  support/lib/ by the build_tahoe step. This should allow unit tests
2112+  to be run even when trial (which is part of Twisted) wasn't already
2113+  installed (in this case, trial gets installed to support/bin because
2114+  Twisted is a dependency of Tahoe).
2115 
2116hunk ./NEWS.rst 1182
2117-Likewise, the "make test" target now delegates most of its work to "setup.py
2118-test", which takes care of getting PYTHONPATH configured to access the tahoe
2119-code (and dependencies) that gets put in support/lib/ by the build_tahoe
2120-step. This should allow unit tests to be run even when trial (which is part
2121-of Twisted) wasn't already installed (in this case, trial gets installed to
2122-support/bin because Twisted is a dependency of Tahoe).
2123+- Tahoe is now compatible with the recently-released Python 2.6 ,
2124+  although it is recommended to use Tahoe on Python 2.5, on which it
2125+  has received more thorough testing and deployment.
2126 
2127hunk ./NEWS.rst 1186
2128-Tahoe is now compatible with the recently-released Python 2.6 , although it
2129-is recommended to use Tahoe on Python 2.5, on which it has received more
2130-thorough testing and deployment.
2131+- Tahoe is now compatible with simplejson-2.0.x . The previous release
2132+  assumed that simplejson.loads always returned unicode strings, which
2133+  is no longer the case in 2.0.x .
2134 
2135hunk ./NEWS.rst 1190
2136-Tahoe is now compatible with simplejson-2.0.x . The previous release assumed
2137-that simplejson.loads always returned unicode strings, which is no longer the
2138-case in 2.0.x .
2139+Grid Management Tools
2140+'''''''''''''''''''''
2141 
2142hunk ./NEWS.rst 1193
2143-** Grid Management Tools
2144+- Several tools have been added or updated in the misc/ directory,
2145+  mostly munin plugins that can be used to monitor a storage grid.
2146 
2147hunk ./NEWS.rst 1196
2148-Several tools have been added or updated in the misc/ directory, mostly munin
2149-plugins that can be used to monitor a storage grid.
2150+ - The misc/spacetime/ directory contains a "disk watcher" daemon
2151+   (startable with 'tahoe start'), which can be configured with a set
2152+   of HTTP URLs (pointing at the wapi '/statistics' page of a bunch of
2153+   storage servers), and will periodically fetch
2154+   disk-used/disk-available information from all the servers. It keeps
2155+   this information in an Axiom database (a sqlite-based library
2156+   available from divmod.org). The daemon computes time-averaged rates
2157+   of disk usage, as well as a prediction of how much time is left
2158+   before the grid is completely full.
2159 
2160hunk ./NEWS.rst 1206
2161-The misc/spacetime/ directory contains a "disk watcher" daemon (startable
2162-with 'tahoe start'), which can be configured with a set of HTTP URLs
2163-(pointing at the wapi '/statistics' page of a bunch of storage servers),
2164-and will periodically fetch disk-used/disk-available information from all the
2165-servers. It keeps this information in an Axiom database (a sqlite-based
2166-library available from divmod.org). The daemon computes time-averaged rates
2167-of disk usage, as well as a prediction of how much time is left before the
2168-grid is completely full.
2169+ - The misc/munin/ directory contains a new set of munin plugins
2170+   (tahoe_diskleft, tahoe_diskusage, tahoe_doomsday) which talk to the
2171+   disk-watcher and provide graphs of its calculations.
2172 
2173hunk ./NEWS.rst 1210
2174-The misc/munin/ directory contains a new set of munin plugins
2175-(tahoe_diskleft, tahoe_diskusage, tahoe_doomsday) which talk to the
2176-disk-watcher and provide graphs of its calculations.
2177+ - To support the disk-watcher, the Tahoe statistics component
2178+   (visible through the wapi at the /statistics/ URL) now includes
2179+   disk-used and disk-available information. Both are derived through
2180+   an equivalent of the unix 'df' command (i.e. they ask the kernel
2181+   for the number of free blocks on the partition that encloses the
2182+   BASEDIR/storage directory). In the future, the disk-available
2183+   number will be further influenced by the local storage policy: if
2184+   that policy says that the server should refuse new shares when less
2185+   than 5GB is left on the partition, then "disk-available" will
2186+   report zero even though the kernel sees 5GB remaining.
2187 
2188hunk ./NEWS.rst 1221
2189-To support the disk-watcher, the Tahoe statistics component (visible through
2190-the wapi at the /statistics/ URL) now includes disk-used and disk-available
2191-information. Both are derived through an equivalent of the unix 'df' command
2192-(i.e. they ask the kernel for the number of free blocks on the partition that
2193-encloses the BASEDIR/storage directory). In the future, the disk-available
2194-number will be further influenced by the local storage policy: if that policy
2195-says that the server should refuse new shares when less than 5GB is left on
2196-the partition, then "disk-available" will report zero even though the kernel
2197-sees 5GB remaining.
2198+ - The 'tahoe_overhead' munin plugin interacts with an
2199+   allmydata.com-specific server which reports the total of the
2200+   'deep-size' reports for all active user accounts, compares this
2201+   with the disk-watcher data, to report on overhead percentages. This
2202+   provides information on how much space could be recovered once
2203+   Tahoe implements some form of garbage collection.
2204 
2205hunk ./NEWS.rst 1228
2206-The 'tahoe_overhead' munin plugin interacts with an allmydata.com-specific
2207-server which reports the total of the 'deep-size' reports for all active user
2208-accounts, compares this with the disk-watcher data, to report on overhead
2209-percentages. This provides information on how much space could be recovered
2210-once Tahoe implements some form of garbage collection.
2211+Configuration Changes: single INI-format tahoe.cfg file
2212+'''''''''''''''''''''''''''''''''''''''''''''''''''''''
2213 
2214hunk ./NEWS.rst 1231
2215-** Configuration Changes: single INI-format tahoe.cfg file
2216+- The Tahoe node is now configured with a single INI-format file,
2217+  named "tahoe.cfg", in the node's base directory. Most of the
2218+  previous multiple-separate-files are still read for backwards
2219+  compatibility (the embedded SSH debug server and the
2220+  advertised_ip_addresses files are the exceptions), but new
2221+  directives will only be added to tahoe.cfg . The "tahoe
2222+  create-client" command will create a tahoe.cfg for you, with sample
2223+  values commented out. (ticket `#518`_)
2224 
2225hunk ./NEWS.rst 1240
2226-The Tahoe node is now configured with a single INI-format file, named
2227-"tahoe.cfg", in the node's base directory. Most of the previous
2228-multiple-separate-files are still read for backwards compatibility (the
2229-embedded SSH debug server and the advertised_ip_addresses files are the
2230-exceptions), but new directives will only be added to tahoe.cfg . The "tahoe
2231-create-client" command will create a tahoe.cfg for you, with sample values
2232-commented out. (ticket #518)
2233+- tahoe.cfg now has controls for the foolscap "keepalive" and
2234+  "disconnect" timeouts (`#521`_).
2235 
2236hunk ./NEWS.rst 1243
2237-tahoe.cfg now has controls for the foolscap "keepalive" and "disconnect"
2238-timeouts (#521).
2239+- tahoe.cfg now has controls for the encoding parameters:
2240+  "shares.needed" and "shares.total" in the "[client]" section. The
2241+  default parameters are still 3-of-10.
2242 
2243hunk ./NEWS.rst 1247
2244-tahoe.cfg now has controls for the encoding parameters: "shares.needed" and
2245-"shares.total" in the "[client]" section. The default parameters are still
2246-3-of-10.
2247+- The inefficient storage 'sizelimit' control (which established an
2248+  upper bound on the amount of space that a storage server is allowed
2249+  to consume) has been replaced by a lightweight 'reserved_space'
2250+  control (which establishes a lower bound on the amount of remaining
2251+  space). The storage server will reject all writes that would cause
2252+  the remaining disk space (as measured by a '/bin/df' equivalent) to
2253+  drop below this value. The "[storage]reserved_space=" tahoe.cfg
2254+  parameter controls this setting. (note that this only affects
2255+  immutable shares: it is an outstanding bug that reserved_space does
2256+  not prevent the allocation of new mutable shares, nor does it
2257+  prevent the growth of existing mutable shares).
2258 
2259hunk ./NEWS.rst 1259
2260-The inefficient storage 'sizelimit' control (which established an upper bound
2261-on the amount of space that a storage server is allowed to consume) has been
2262-replaced by a lightweight 'reserved_space' control (which establishes a lower
2263-bound on the amount of remaining space). The storage server will reject all
2264-writes that would cause the remaining disk space (as measured by a '/bin/df'
2265-equivalent) to drop below this value. The "[storage]reserved_space="
2266-tahoe.cfg parameter controls this setting. (note that this only affects
2267-immutable shares: it is an outstanding bug that reserved_space does not
2268-prevent the allocation of new mutable shares, nor does it prevent the growth
2269-of existing mutable shares).
2270+Other Changes
2271+'''''''''''''
2272 
2273hunk ./NEWS.rst 1262
2274-** Other Changes
2275+- Clients now declare which versions of the protocols they
2276+  support. This is part of a new backwards-compatibility system:
2277+  http://tahoe-lafs.org/trac/tahoe/wiki/Versioning .
2278 
2279hunk ./NEWS.rst 1266
2280-Clients now declare which versions of the protocols they support. This is
2281-part of a new backwards-compatibility system:
2282-http://tahoe-lafs.org/trac/tahoe/wiki/Versioning .
2283+- The version strings for human inspection (as displayed on the
2284+  Welcome web page, and included in logs) now includes a platform
2285+  identifer (frequently including a linux distribution name, processor
2286+  architecture, etc).
2287 
2288hunk ./NEWS.rst 1271
2289-The version strings for human inspection (as displayed on the Welcome web
2290-page, and included in logs) now includes a platform identifer (frequently
2291-including a linux distribution name, processor architecture, etc).
2292+- Several bugs have been fixed, including one that would cause an
2293+  exception (in the logs) if a wapi download operation was cancelled
2294+  (by closing the TCP connection, or pushing the "stop" button in a
2295+  web browser).
2296 
2297hunk ./NEWS.rst 1276
2298-Several bugs have been fixed, including one that would cause an exception (in
2299-the logs) if a wapi download operation was cancelled (by closing the TCP
2300-connection, or pushing the "stop" button in a web browser).
2301+- Tahoe now uses Foolscap "Incidents", writing an "incident report"
2302+  file to logs/incidents/ each time something weird occurs. These
2303+  reports are available to an "incident gatherer" through the flogtool
2304+  command. For more details, please see the Foolscap logging
2305+  documentation. An incident-classifying plugin function is provided
2306+  in misc/incident-gatherer/classify_tahoe.py .
2307 
2308hunk ./NEWS.rst 1283
2309-Tahoe now uses Foolscap "Incidents", writing an "incident report" file to
2310-logs/incidents/ each time something weird occurs. These reports are available
2311-to an "incident gatherer" through the flogtool command. For more details,
2312-please see the Foolscap logging documentation. An incident-classifying plugin
2313-function is provided in misc/incident-gatherer/classify_tahoe.py .
2314+- If clients detect corruption in shares, they now automatically
2315+  report it to the server holding that share, if it is new enough to
2316+  accept the report.  These reports are written to files in
2317+  BASEDIR/storage/corruption-advisories .
2318 
2319hunk ./NEWS.rst 1288
2320-If clients detect corruption in shares, they now automatically report it to
2321-the server holding that share, if it is new enough to accept the report.
2322-These reports are written to files in BASEDIR/storage/corruption-advisories .
2323+- The 'nickname' setting is now defined to be a UTF-8 -encoded string,
2324+  allowing non-ascii nicknames.
2325 
2326hunk ./NEWS.rst 1291
2327-The 'nickname' setting is now defined to be a UTF-8 -encoded string, allowing
2328-non-ascii nicknames.
2329+- The 'tahoe start' command will now accept a --syslog argument and
2330+  pass it through to twistd, making it easier to launch non-Tahoe
2331+  nodes (like the cpu-watcher) and have them log to syslogd instead of
2332+  a local file. This is useful when running a Tahoe node out of a USB
2333+  flash drive.
2334 
2335hunk ./NEWS.rst 1297
2336-The 'tahoe start' command will now accept a --syslog argument and pass it
2337-through to twistd, making it easier to launch non-Tahoe nodes (like the
2338-cpu-watcher) and have them log to syslogd instead of a local file. This is
2339-useful when running a Tahoe node out of a USB flash drive.
2340+- The Mac GUI in src/allmydata/gui/ has been improved.
2341 
2342hunk ./NEWS.rst 1299
2343-The Mac GUI in src/allmydata/gui/ has been improved.
2344 
2345hunk ./NEWS.rst 1300
2346+Release 1.2.0 (2008-07-21)
2347+--------------------------
2348 
2349hunk ./NEWS.rst 1303
2350-* Release 1.2.0 (2008-07-21)
2351+Security
2352+''''''''
2353 
2354hunk ./NEWS.rst 1306
2355-** Security
2356+- This release makes the immutable-file "ciphertext hash tree"
2357+  mandatory.  Previous releases allowed the uploader to decide whether
2358+  their file would have an integrity check on the ciphertext or not. A
2359+  malicious uploader could use this to create a readcap that would
2360+  download as one file or a different one, depending upon which shares
2361+  the client fetched first, with no errors raised. There are other
2362+  integrity checks on the shares themselves, preventing a storage
2363+  server or other party from violating the integrity properties of the
2364+  read-cap: this failure was only exploitable by the uploader who
2365+  gives you a carefully constructed read-cap. If you download the file
2366+  with Tahoe 1.2.0 or later, you will not be vulnerable to this
2367+  problem. `#491`_
2368 
2369hunk ./NEWS.rst 1319
2370-This release makes the immutable-file "ciphertext hash tree" mandatory.
2371-Previous releases allowed the uploader to decide whether their file would
2372-have an integrity check on the ciphertext or not. A malicious uploader could
2373-use this to create a readcap that would download as one file or a different
2374-one, depending upon which shares the client fetched first, with no errors
2375-raised. There are other integrity checks on the shares themselves, preventing
2376-a storage server or other party from violating the integrity properties of
2377-the read-cap: this failure was only exploitable by the uploader who gives you
2378-a carefully constructed read-cap. If you download the file with Tahoe 1.2.0
2379-or later, you will not be vulnerable to this problem. #491
2380+  This change does not introduce a compatibility issue, because all
2381+  existing versions of Tahoe will emit the ciphertext hash tree in
2382+  their shares.
2383 
2384hunk ./NEWS.rst 1323
2385-This change does not introduce a compatibility issue, because all existing
2386-versions of Tahoe will emit the ciphertext hash tree in their shares.
2387+Dependencies
2388+''''''''''''
2389 
2390hunk ./NEWS.rst 1326
2391-** Dependencies
2392+- Tahoe now requires Foolscap-0.2.9 . It also requires pycryptopp 0.5
2393+  or newer, since earlier versions had a bug that interacted with
2394+  specific compiler versions that could sometimes result in incorrect
2395+  encryption behavior. Both packages are included in the Tahoe source
2396+  tarball in misc/dependencies/ , and should be built automatically
2397+  when necessary.
2398 
2399hunk ./NEWS.rst 1333
2400-Tahoe now requires Foolscap-0.2.9 . It also requires pycryptopp 0.5 or newer,
2401-since earlier versions had a bug that interacted with specific compiler
2402-versions that could sometimes result in incorrect encryption behavior. Both
2403-packages are included in the Tahoe source tarball in misc/dependencies/ , and
2404-should be built automatically when necessary.
2405+Web API
2406+'''''''
2407 
2408hunk ./NEWS.rst 1336
2409-** Web API
2410+- Web API directory pages should now contain properly-slash-terminated
2411+  links to other directories. They have also stopped using absolute
2412+  links in forms and pages (which interfered with the use of a
2413+  front-end load-balancing proxy).
2414 
2415hunk ./NEWS.rst 1341
2416-Web API directory pages should now contain properly-slash-terminated links to
2417-other directories. They have also stopped using absolute links in forms and
2418-pages (which interfered with the use of a front-end load-balancing proxy).
2419+- The behavior of the "Check This File" button changed, in conjunction
2420+  with larger internal changes to file checking/verification. The
2421+  button triggers an immediate check as before, but the outcome is
2422+  shown on its own page, and does not get stored anywhere. As a
2423+  result, the web directory page no longer shows historical checker
2424+  results.
2425 
2426hunk ./NEWS.rst 1348
2427-The behavior of the "Check This File" button changed, in conjunction with
2428-larger internal changes to file checking/verification. The button triggers an
2429-immediate check as before, but the outcome is shown on its own page, and does
2430-not get stored anywhere. As a result, the web directory page no longer shows
2431-historical checker results.
2432+- A new "Deep-Check" button has been added, which allows a user to
2433+  initiate a recursive check of the given directory and all files and
2434+  directories reachable from it. This can cause quite a bit of work,
2435+  and has no intermediate progress information or feedback about the
2436+  process. In addition, the results of the deep-check are extremely
2437+  limited. A later release will improve this behavior.
2438 
2439hunk ./NEWS.rst 1355
2440-A new "Deep-Check" button has been added, which allows a user to initiate a
2441-recursive check of the given directory and all files and directories
2442-reachable from it. This can cause quite a bit of work, and has no
2443-intermediate progress information or feedback about the process. In addition,
2444-the results of the deep-check are extremely limited. A later release will
2445-improve this behavior.
2446+- The web server's behavior with respect to non-ASCII (unicode)
2447+  filenames in the "GET save=true" operation has been improved. To
2448+  achieve maximum compatibility with variously buggy web browsers, the
2449+  server does not try to figure out the character set of the inbound
2450+  filename. It just echoes the same bytes back to the browser in the
2451+  Content-Disposition header. This seems to make both IE7 and Firefox
2452+  work correctly.
2453 
2454hunk ./NEWS.rst 1363
2455-The web server's behavior with respect to non-ASCII (unicode) filenames in
2456-the "GET save=true" operation has been improved. To achieve maximum
2457-compatibility with variously buggy web browsers, the server does not try to
2458-figure out the character set of the inbound filename. It just echoes the same
2459-bytes back to the browser in the Content-Disposition header. This seems to
2460-make both IE7 and Firefox work correctly.
2461+Checker/Verifier/Repairer
2462+'''''''''''''''''''''''''
2463 
2464hunk ./NEWS.rst 1366
2465-** Checker/Verifier/Repairer
2466+- Tahoe is slowly acquiring convenient tools to check up on file
2467+  health, examine existing shares for errors, and repair files that
2468+  are not fully healthy. This release adds a mutable
2469+  checker/verifier/repairer, although testing is very limited, and
2470+  there are no web interfaces to trigger repair yet. The "Check"
2471+  button next to each file or directory on the wapi page will perform
2472+  a file check, and the "deep check" button on each directory will
2473+  recursively check all files and directories reachable from there
2474+  (which may take a very long time).
2475 
2476hunk ./NEWS.rst 1376
2477-Tahoe is slowly acquiring convenient tools to check up on file health,
2478-examine existing shares for errors, and repair files that are not fully
2479-healthy. This release adds a mutable checker/verifier/repairer, although
2480-testing is very limited, and there are no web interfaces to trigger repair
2481-yet. The "Check" button next to each file or directory on the wapi page
2482-will perform a file check, and the "deep check" button on each directory will
2483-recursively check all files and directories reachable from there (which may
2484-take a very long time).
2485+  Future releases will improve access to this functionality.
2486 
2487hunk ./NEWS.rst 1378
2488-Future releases will improve access to this functionality.
2489+Operations/Packaging
2490+''''''''''''''''''''
2491 
2492hunk ./NEWS.rst 1381
2493-** Operations/Packaging
2494+- A "check-grid" script has been added, along with a Makefile
2495+  target. This is intended (with the help of a pre-configured node
2496+  directory) to check upon the health of a Tahoe grid, uploading and
2497+  downloading a few files. This can be used as a monitoring tool for a
2498+  deployed grid, to be run periodically and to signal an error if it
2499+  ever fails. It also helps with compatibility testing, to verify that
2500+  the latest Tahoe code is still able to handle files created by an
2501+  older version.
2502 
2503hunk ./NEWS.rst 1390
2504-A "check-grid" script has been added, along with a Makefile target. This is
2505-intended (with the help of a pre-configured node directory) to check upon the
2506-health of a Tahoe grid, uploading and downloading a few files. This can be
2507-used as a monitoring tool for a deployed grid, to be run periodically and to
2508-signal an error if it ever fails. It also helps with compatibility testing,
2509-to verify that the latest Tahoe code is still able to handle files created by
2510-an older version.
2511+- The munin plugins from misc/munin/ are now copied into any generated
2512+  debian packages, and are made executable (and uncompressed) so they
2513+  can be symlinked directly from /etc/munin/plugins/ .
2514 
2515hunk ./NEWS.rst 1394
2516-The munin plugins from misc/munin/ are now copied into any generated debian
2517-packages, and are made executable (and uncompressed) so they can be symlinked
2518-directly from /etc/munin/plugins/ .
2519+- Ubuntu "Hardy" was added as a supported debian platform, with a
2520+  Makefile target to produce hardy .deb packages. Some notes have been
2521+  added to docs/debian.txt about building Tahoe on a debian/ubuntu
2522+  system.
2523 
2524hunk ./NEWS.rst 1399
2525-Ubuntu "Hardy" was added as a supported debian platform, with a Makefile
2526-target to produce hardy .deb packages. Some notes have been added to
2527-docs/debian.txt about building Tahoe on a debian/ubuntu system.
2528+- Storage servers now measure operation rates and
2529+  latency-per-operation, and provides results through the /statistics
2530+  web page as well as the stats gatherer. Munin plugins have been
2531+  added to match.
2532 
2533hunk ./NEWS.rst 1404
2534-Storage servers now measure operation rates and latency-per-operation, and
2535-provides results through the /statistics web page as well as the stats
2536-gatherer. Munin plugins have been added to match.
2537+Other
2538+'''''
2539 
2540hunk ./NEWS.rst 1407
2541-** Other
2542+- Tahoe nodes now use Foolscap "incident logging" to record unusual
2543+  events to their NODEDIR/logs/incidents/ directory. These incident
2544+  files can be examined by Foolscap logging tools, or delivered to an
2545+  external log-gatherer for further analysis. Note that Tahoe now
2546+  requires Foolscap-0.2.9, since 0.2.8 had a bug that complained about
2547+  "OSError: File exists" when trying to create the incidents/
2548+  directory for a second time.
2549 
2550hunk ./NEWS.rst 1415
2551-Tahoe nodes now use Foolscap "incident logging" to record unusual events to
2552-their NODEDIR/logs/incidents/ directory. These incident files can be examined
2553-by Foolscap logging tools, or delivered to an external log-gatherer for
2554-further analysis. Note that Tahoe now requires Foolscap-0.2.9, since 0.2.8
2555-had a bug that complained about "OSError: File exists" when trying to create
2556-the incidents/ directory for a second time.
2557+- If no servers are available when retrieving a mutable file (like a
2558+  directory), the node now reports an error instead of hanging
2559+  forever. Earlier releases would not only hang (causing the wapi
2560+  directory listing to get stuck half-way through), but the internal
2561+  dirnode serialization would cause all subsequent attempts to
2562+  retrieve or modify the same directory to hang as well. `#463`_
2563 
2564hunk ./NEWS.rst 1422
2565-If no servers are available when retrieving a mutable file (like a
2566-directory), the node now reports an error instead of hanging forever. Earlier
2567-releases would not only hang (causing the wapi directory listing to get
2568-stuck half-way through), but the internal dirnode serialization would cause
2569-all subsequent attempts to retrieve or modify the same directory to hang as
2570-well. #463
2571+- A minor internal exception (reported in logs/twistd.log, in the
2572+  "stopProducing" method) was fixed, which complained about
2573+  "self._paused_at not defined" whenever a file download was stopped
2574+  from the web browser end.
2575 
2576hunk ./NEWS.rst 1427
2577-A minor internal exception (reported in logs/twistd.log, in the
2578-"stopProducing" method) was fixed, which complained about "self._paused_at
2579-not defined" whenever a file download was stopped from the web browser end.
2580 
2581hunk ./NEWS.rst 1428
2582+Release 1.1.0 (2008-06-11)
2583+--------------------------
2584 
2585hunk ./NEWS.rst 1431
2586-* Release 1.1.0 (2008-06-11)
2587+CLI: new "alias" model
2588+''''''''''''''''''''''
2589 
2590hunk ./NEWS.rst 1434
2591-** CLI: new "alias" model
2592+- The new CLI code uses an scp/rsync -like interface, in which
2593+  directories in the Tahoe storage grid are referenced by a
2594+  colon-suffixed alias. The new commands look like:
2595 
2596hunk ./NEWS.rst 1438
2597-The new CLI code uses an scp/rsync -like interface, in which directories in
2598-the Tahoe storage grid are referenced by a colon-suffixed alias. The new
2599-commands look like:
2600- tahoe cp local.txt tahoe:virtual.txt
2601- tahoe ls work:subdir
2602+ - tahoe cp local.txt tahoe:virtual.txt
2603+ - tahoe ls work:subdir
2604 
2605hunk ./NEWS.rst 1441
2606-More functionality is available through the CLI: creating unlinked files and
2607-directories, recursive copy in or out of the storage grid, hardlinks, and
2608-retrieving the raw read- or write- caps through the 'ls' command. Please read
2609-docs/CLI.txt for complete details.
2610+- More functionality is available through the CLI: creating unlinked
2611+  files and directories, recursive copy in or out of the storage grid,
2612+  hardlinks, and retrieving the raw read- or write- caps through the
2613+  'ls' command. Please read docs/CLI.txt for complete details.
2614 
2615hunk ./NEWS.rst 1446
2616-** wapi: new pages, new commands
2617+wapi: new pages, new commands
2618+'''''''''''''''''''''''''''''
2619 
2620hunk ./NEWS.rst 1449
2621-Several new pages were added to the web API:
2622+- Several new pages were added to the web API:
2623 
2624hunk ./NEWS.rst 1451
2625- /helper_status : to describe what a Helper is doing
2626- /statistics : reports node uptime, CPU usage, other stats
2627- /file : for easy file-download URLs, see #221
2628- /cap == /uri : future compatibility
2629+ - /helper_status : to describe what a Helper is doing
2630+ - /statistics : reports node uptime, CPU usage, other stats
2631+ - /file : for easy file-download URLs, see `#221`_
2632+ - /cap == /uri : future compatibility
2633 
2634hunk ./NEWS.rst 1456
2635-The localdir=/localfile= and t=download operations were removed. These
2636-required special configuration to enable anyways, but this feature was a
2637-security problem, and was mostly obviated by the new "cp -r" command.
2638+- The localdir=/localfile= and t=download operations were
2639+  removed. These required special configuration to enable anyways, but
2640+  this feature was a security problem, and was mostly obviated by the
2641+  new "cp -r" command.
2642 
2643hunk ./NEWS.rst 1461
2644-Several new options to the GET command were added:
2645+- Several new options to the GET command were added:
2646 
2647hunk ./NEWS.rst 1463
2648- t=deep-size : add up the size of all immutable files reachable from the directory
2649- t=deep-stats : return a JSON-encoded description of number of files, size
2650+ -  t=deep-size : add up the size of all immutable files reachable from the directory
2651+ -  t=deep-stats : return a JSON-encoded description of number of files, size
2652                 distribution, total size, etc
2653 
2654hunk ./NEWS.rst 1467
2655-POST is now preferred over PUT for most operations which cause side-effects.
2656-
2657-Most wapi calls now accept overwrite=, and default to overwrite=true .
2658+- POST is now preferred over PUT for most operations which cause
2659+  side-effects.
2660 
2661hunk ./NEWS.rst 1470
2662-"POST /uri/DIRCAP/parent/child?t=mkdir" is now the preferred API to create
2663-multiple directories at once, rather than ...?t=mkdir-p .
2664+- Most wapi calls now accept overwrite=, and default to overwrite=true
2665 
2666hunk ./NEWS.rst 1472
2667-PUT to a mutable file ("PUT /uri/MUTABLEFILECAP", "PUT /uri/DIRCAP/child")
2668-will modify the file in-place.
2669+- "POST /uri/DIRCAP/parent/child?t=mkdir" is now the preferred API to
2670+  create multiple directories at once, rather than ...?t=mkdir-p .
2671 
2672hunk ./NEWS.rst 1475
2673-** more munin graphs in misc/munin/
2674+- PUT to a mutable file ("PUT /uri/MUTABLEFILECAP", "PUT
2675+  /uri/DIRCAP/child") will modify the file in-place.
2676 
2677hunk ./NEWS.rst 1478
2678-  tahoe-introstats
2679-  tahoe-rootdir-space
2680-  tahoe_estimate_files
2681-  mutable files published/retrieved
2682-  tahoe_cpu_watcher
2683-  tahoe_spacetime
2684+- more munin graphs in misc/munin/
2685 
2686hunk ./NEWS.rst 1480
2687-** New Dependencies
2688+ - tahoe-introstats
2689+ - tahoe-rootdir-space
2690+ - tahoe_estimate_files
2691+ - mutable files published/retrieved
2692+ - tahoe_cpu_watcher
2693+ - tahoe_spacetime
2694 
2695hunk ./NEWS.rst 1487
2696-  zfec 1.1.0
2697-  foolscap 0.2.8
2698-  pycryptopp 0.5
2699-  setuptools (now required at runtime)
2700+New Dependencies
2701+''''''''''''''''
2702+-  zfec 1.1.0
2703+-  foolscap 0.2.8
2704+-  pycryptopp 0.5
2705+-  setuptools (now required at runtime)
2706 
2707hunk ./NEWS.rst 1494
2708-** New Mutable-File Code
2709+New Mutable-File Code
2710+'''''''''''''''''''''
2711 
2712hunk ./NEWS.rst 1497
2713-The mutable-file handling code (mostly used for directories) has been
2714-completely rewritten. The new scheme has a better API (with a modify()
2715-method) and is less likely to lose data when several uncoordinated writers
2716-change a file at the same time.
2717+- The mutable-file handling code (mostly used for directories) has
2718+  been completely rewritten. The new scheme has a better API (with a
2719+  modify() method) and is less likely to lose data when several
2720+  uncoordinated writers change a file at the same time.
2721 
2722hunk ./NEWS.rst 1502
2723-In addition, a single Tahoe process will coordinate its own writes. If you
2724-make two concurrent directory-modifying wapi calls to a single tahoe node,
2725-it will internally make one of them wait for the other to complete. This
2726-prevents auto-collision (#391).
2727+- In addition, a single Tahoe process will coordinate its own
2728+  writes. If you make two concurrent directory-modifying wapi calls to
2729+  a single tahoe node, it will internally make one of them wait for
2730+  the other to complete. This prevents auto-collision (`#391`_).
2731 
2732hunk ./NEWS.rst 1507
2733-The new mutable-file code also detects errors during publish better. Earlier
2734-releases might believe that a mutable file was published when in fact it
2735-failed.
2736+- The new mutable-file code also detects errors during publish
2737+  better. Earlier releases might believe that a mutable file was
2738+  published when in fact it failed.
2739 
2740hunk ./NEWS.rst 1511
2741-** other features
2742+other features
2743+''''''''''''''
2744 
2745hunk ./NEWS.rst 1514
2746-The node now monitors its own CPU usage, as a percentage, measured every 60
2747-seconds. 1/5/15 minute moving averages are available on the /statistics web
2748-page and via the stats-gathering interface.
2749+- The node now monitors its own CPU usage, as a percentage, measured
2750+  every 60 seconds. 1/5/15 minute moving averages are available on the
2751+  /statistics web page and via the stats-gathering interface.
2752 
2753hunk ./NEWS.rst 1518
2754-Clients now accelerate reconnection to all servers after being offline
2755-(#374). When a client is offline for a long time, it scales back reconnection
2756-attempts to approximately once per hour, so it may take a while to make the
2757-first attempt, but once any attempt succeeds, the other server connections
2758-will be retried immediately.
2759+- Clients now accelerate reconnection to all servers after being
2760+  offline (`#374`_). When a client is offline for a long time, it
2761+  scales back reconnection attempts to approximately once per hour, so
2762+  it may take a while to make the first attempt, but once any attempt
2763+  succeeds, the other server connections will be retried immediately.
2764 
2765hunk ./NEWS.rst 1524
2766-A new "offloaded KeyGenerator" facility can be configured, to move RSA key
2767-generation out from, say, a wapi node, into a separate process. RSA keys
2768-can take several seconds to create, and so a wapi node which is being used
2769-for directory creation will be unavailable for anything else during this
2770-time. The Key Generator process will pre-compute a small pool of keys, to
2771-speed things up further. This also takes better advantage of multi-core CPUs,
2772-or SMP hosts.
2773+- A new "offloaded KeyGenerator" facility can be configured, to move
2774+  RSA key generation out from, say, a wapi node, into a separate
2775+  process. RSA keys can take several seconds to create, and so a wapi
2776+  node which is being used for directory creation will be unavailable
2777+  for anything else during this time. The Key Generator process will
2778+  pre-compute a small pool of keys, to speed things up further. This
2779+  also takes better advantage of multi-core CPUs, or SMP hosts.
2780 
2781hunk ./NEWS.rst 1532
2782-The node will only use a potentially-slow "du -s" command at startup (to
2783-measure how much space has been used) if the "sizelimit" parameter has been
2784-configured (to limit how much space is used). Large storage servers should
2785-turn off sizelimit until a later release improves the space-management code,
2786-since "du -s" on a terabyte filesystem can take hours.
2787+- The node will only use a potentially-slow "du -s" command at startup
2788+  (to measure how much space has been used) if the "sizelimit"
2789+  parameter has been configured (to limit how much space is
2790+  used). Large storage servers should turn off sizelimit until a later
2791+  release improves the space-management code, since "du -s" on a
2792+  terabyte filesystem can take hours.
2793 
2794hunk ./NEWS.rst 1539
2795-The Introducer now allows new announcements to replace old ones, to avoid
2796-buildups of obsolete announcements.
2797+- The Introducer now allows new announcements to replace old ones, to
2798+  avoid buildups of obsolete announcements.
2799 
2800hunk ./NEWS.rst 1542
2801-Immutable files are limited to about 12GiB (when using the default 3-of-10
2802-encoding), because larger files would be corrupted by the four-byte
2803-share-size field on the storage servers (#439). A later release will remove
2804-this limit. Earlier releases would allow >12GiB uploads, but the resulting
2805-file would be unretrievable.
2806+- Immutable files are limited to about 12GiB (when using the default
2807+  3-of-10 encoding), because larger files would be corrupted by the
2808+  four-byte share-size field on the storage servers (`#439`_). A later
2809+  release will remove this limit. Earlier releases would allow >12GiB
2810+  uploads, but the resulting file would be unretrievable.
2811 
2812hunk ./NEWS.rst 1548
2813-The docs/ directory has been rearranged, with old docs put in
2814-docs/historical/ and not-yet-implemented ones in docs/proposed/ .
2815+- The docs/ directory has been rearranged, with old docs put in
2816+  docs/historical/ and not-yet-implemented ones in docs/proposed/ .
2817 
2818hunk ./NEWS.rst 1551
2819-The Mac OS-X FUSE plugin has a significant bug fix: earlier versions would
2820-corrupt writes that used seek() instead of writing the file in linear order.
2821-The rsync tool is known to perform writes in this order. This has been fixed.
2822+- The Mac OS-X FUSE plugin has a significant bug fix: earlier versions
2823+  would corrupt writes that used seek() instead of writing the file in
2824+  linear order.  The rsync tool is known to perform writes in this
2825+  order. This has been fixed.
2826replace ./docs/how_to_make_a_tahoe-lafs_release.rst [A-Za-z_0-9\-\.] NEWS NEWS.rst
2827replace ./misc/debian/rules.sid [A-Za-z_0-9\-\.] NEWS NEWS.rst
2828replace ./misc/debian_helpers/etch/debian/rules [A-Za-z_0-9\-\.] NEWS NEWS.rst
2829replace ./misc/debian_helpers/lenny/debian/rules [A-Za-z_0-9\-\.] NEWS NEWS.rst
2830replace ./misc/debian_helpers/sid/debian/rules [A-Za-z_0-9\-\.] NEWS NEWS.rst
2831replace ./relnotes.txt [A-Za-z_0-9\-\.] NEWS NEWS.rst
2832replace ./src/allmydata/test/test_repairer.py [A-Za-z_0-9\-\.] NEWS NEWS.rst
2833}
2834
2835Context:
2836
2837[TAG allmydata-tahoe-1.8.2
2838warner@lothar.com**20110131020101]
2839Patch bundle hash:
2840903f7d1562c0cc3ff327a5f00ba332dbe7bf5ca5