]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - NEWS.rst
NEWS: finish 1.10.1 edits. Good enough for beta1.
[tahoe-lafs/tahoe-lafs.git] / NEWS.rst
index 1553165a242116660a0f7a84b99fe75312484ebe..86ea7e3d037ec49bfdc0fc8894e15993c6556b6a 100644 (file)
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1,9 +1,172 @@
-==================================
+.. -*- coding: utf-8-with-signature -*-
+
+==================================
 User-Visible Changes in Tahoe-LAFS
 ==================================
 
-Release 1.10 (2013-??-??)
-'''''''''''''''''''''''''
+Release 1.10.1 (XXXX-XX-XX)
+'''''''''''''''''''''''''''
+
+UI / Configuration Changes
+--------------------------
+
+The "tahoe cp" CLI command's "--recursive" option is now more predictable,
+but behaves slightly differently than before. See below for details. Tickets
+#712, #2329.
+
+The SFTP server can now use public-key authentication (instead of only
+password-based auth). Public keys are configured through an "account file",
+just like passwords. See docs/frontends/FTP-and-SFTP for examples of the
+format. #1411
+
+The Tahoe node can now be configured to disable automatic IP-address
+detection. Using "AUTO" in tahoe.cfg [node]tub.location= (which is now the
+default) triggers autodetection. Omit "AUTO" to disable autodetection. "AUTO"
+can be combined with static addresses to e.g. use both a stable
+UPnP-configured tunneled address with a DHCP-assigned dynamic (local subnet
+only) address. See configuration.rst for details. #754
+
+The web-based user interface ("WUI") Directory and Welcome pages have been
+redesigned, with improved CSS for narrow windows and more-accessible icons
+(using distinctive shapes instead of just colors). #1931 #1961 #1966 #1972
+#1901
+
+"tahoe cp" changes
+------------------
+
+The many "cp"-like tools in the unix world (POSIX /bin/cp, the "scp" provided
+by SSH, rsync) all behave slightly differently in unusual circumstances,
+especially when copying whole directories into a target which may or may not
+already exist. The most common difference is whether the user is referring to
+the source directory as a whole, or to its contents. For example, should
+"cp -r foodir bardir" create a new directory named "bardir/foodir"? Or should
+it behave more like "cp -r foodir/* bardir"? Some tools use the presence of a
+trailing slash to indicate which behavior you want. Others ignore trailing
+slashes.
+
+"tahoe cp" is no exception to having exceptional cases. This release fixes
+some bad behavior and attempts to establish a consistent rationale for its
+behavior. The new rule is:
+
+- If the thing being copied is a directory, and it has a name (e.g. it's not
+  a raw tahoe directorycap), then you are referring to the directory itself.
+- If the thing being copied is an unnamed directory (e.g. raw dircap or
+  alias), then you are referring to the contents.
+- Trailing slashes do not affect the behavior of the copy (although putting a
+  trailing slash on a file-like target is an error).
+- The "-r" (--recursive) flag does not affect the behavior of the copy
+  (although omitting -r when the source is a directory is an error).
+- If the target refers to something that does not yet exist:
+  - and if the source is a single file, then create a new file;
+  - otherwise, create a directory.
+
+There are two main cases where the behavior of tahoe-1.10.1 differs from that
+of the previous 1.10.0 release:
+
+- "cp DIRCAP/file.txt ./local/missing" , where "./local" is a directory but
+  "./local/missing" does not exist. The implication is that you want tahoe to
+  create a new file named "./local/missing" and fill it with the contents of
+  the tahoe-side DIRCAP/file.txt. In 1.10.0, a plain "cp" would do just this,
+  but "cp -r" would do "mkdir ./local/missing" and then create a file named
+  "./local/missing/file.txt". In 1.10.1, both "cp" and "cp -r" create a file
+  named "./local/missing".
+- "cp -r PARENTCAP/dir ./local/missing", where PARENTCAP/dir/ contains
+  "file.txt", and again "./local" is a directory but "./local/missing" does
+  not exist. In both 1.10.0 and 1.10.1, this first does "mkdir
+  ./local/missing". In 1.10.0, it would then copy the contents of the source
+  directory into the new directory, resulting in "./local/missing/file.txt".
+  In 1.10.1, following the new rule of "a named directory source refers to
+  the directory itself", the tool creates "./local/missing/dir/file.txt".
+
+Compatibility and Dependency Updates
+------------------------------------
+
+Windows now requires python2.7 . Unix/OS-X platforms can still use either 2.6
+or 2.7, however this is probably the last release that will support 2.6 (it
+is no longer receiving security updates, and most OS distributions have
+switched to 2.7). Tahoe now has the following dependencies:
+
+- Twisted >= 13.0.0
+- Nevow >= 0.11.1
+- foolscap >= 0.8.0
+- service-identity
+- characteristic >= 14.0.0
+- pyasn1 >= 0.1.4
+- pyasn1-modules >= 0.0.5
+
+On Windows, if pywin32 is not installed then the dependencies on Twisted
+and Nevow become:
+
+- Twisted >= 11.1.0, <= 12.1.0
+- Nevow >= 0.9.33, <= 0.10
+
+On all platforms, if pyOpenSSL >= 0.14 is installed, then it will be used,
+but if not then only pyOpenSSL >= 0.13, <= 0.13.1 will be built when directly
+invoking `setup.py build` or `setup.py install`.
+
+We strongly advise OS packagers to take the option of making a tahoe-lafs
+package depend on pyOpenSSL >= 0.14. In order for that to work, the following
+additional Python dependencies are needed:
+
+- cryptography
+- cffi >= 0.8
+- six >= 1.4.1
+- enum34
+- pycparser
+
+as well as libffi (for Debian/Ubuntu, the name of the needed OS package is
+`libffi6`).
+
+Tahoe-LAFS is now compatible with Setuptools version 8 and Pip version 6 or
+later, which should fix execution on Ubuntu 15.04 (it now tolerates PEP440
+semantics in dependency specifications). #2354 #2242
+
+Tahoe-LAFS now depends upon foolscap-0.8.0, which creates better private keys
+and certificates than previous versions. To benefit from the improvements
+(2048-bit RSA keys and SHA256-based certificates), you must re-generate your
+Tahoe nodes (which changes their TubIDs and FURLs). #2400
+
+Packaging
+---------
+
+A preliminary OS-X package, named "tahoe-lafs-VERSION-osx.pkg", is now being
+generated. It is a standard double-clickable installer, which creates
+/Applications/tahoe.app that embeds a complete runtime tree. However
+launching the .app only brings up docs on how to run tahoe from the command
+line. A future release will turn this into a fully-fledged application
+launcher. #182 #2393 #2323
+
+Preliminary Docker support was added. Tahoe container images may be available
+on DockerHub. PR#165 #2419 #2421
+
+Old/obsolete debian packaging tools have been removed. #2282
+
+Minor Changes
+-------------
+
+- Welcome page: add per-server "(space) Available" column #648
+- check/deep-check learned to accept multiple location args #740
+- Checker reports: remove needs-rebalancing, add count-happiness #1784 #2105
+- CLI --help: cite (but don't list) global options on each command #2233
+- Fix ftp 'ls' to work with Twisted-15.0.0 #2394
+
+Roughly 75 tickets were closed in this release: 623 648 712 740 754 898 1146
+1159 1336 1381 1411 1634 1674 1698 1707 1717 1737 1784 1800 1807 1842 1847
+1901 1918 1953 1960 1961 1966 1969 1972 1974 1988 1992 2005 2008 2023 2027
+2028 2034 2048 2067 2086 2105 2121 2128 2165 2193 2208 2209 2233 2235 2242
+2245 2248 2249 2249 2280 2281 2282 2290 2305 2312 2323 2340 2354 2380 2393
+2394 2398 2400 2415 2416 2417 2433. Another dozen were referenced but not
+closed: 182 666 982 1064 1258 1531 1536 1742 1834 1931 1935 2286. Roughly 40
+GitHub pull-requests were closed: 32 48 50 56 57 61 62 62 63 64 69 73 81 82
+84 85 87 91 94 95 96 103 107 109 112 114 120 122 125 126 133 135 136 137 142
+146 149 152 165.
+
+For more information about any ticket, visit e.g.
+https://tahoe-lafs.org/trac/tahoe-lafs/ticket/754
+
+
+Release 1.10.0 (2013-05-01)
+'''''''''''''''''''''''''''
 
 New Features
 ------------
@@ -11,11 +174,11 @@ New Features
 - The Welcome page has been redesigned. This is a preview of the design style
   that is likely to be used in other parts of the WUI in future Tahoe-LAFS
   versions. (`#1713`_, `#1457`_, `#1735`_)
-- A new, more extensible Introducer protocol has been added, to act as the
-  basis for future improvements such as accounting. Compatibility with older
-  nodes is not affected. When server, introducer, and client are all
-  upgraded, the welcome page will show node IDs that start with "v0-" instead
-  of the old tubid. (`#466`_)
+- A new extensible Introducer protocol has been added, as the basis for
+  future improvements such as accounting. Compatibility with older nodes is
+  not affected. When server, introducer, and client are all upgraded, the
+  welcome page will show node IDs that start with "v0-" instead of the old
+  tubid. See `<docs/nodekeys.rst>`__ for details. (`#466`_)
 - The web-API has a new ``relink`` operation that supports directly moving
   files between directories. (`#1579`_)
 
@@ -32,7 +195,9 @@ Security Improvements
   to generate a new FURL, delete the existing ``introducer.furl`` file and
   restart it. After doing this, the ``[client]introducer.furl`` setting of
   every client and server that should connect to that introducer must be
-  updated. (`#1802`_)
+  updated. Note that other users of a shared machine may be able to read
+  ``introducer.furl`` from your ``tahoe.cfg`` file unless you configure the
+  file permissions to prevent them. (`#1802`_)
 - Both ``introducer.furl`` and ``helper.furl`` are now censored from the
   Welcome page, to prevent users of your gateway from learning enough to
   create gateway nodes of their own.  For existing guessable introducer
@@ -49,64 +214,54 @@ Command-line Syntax Changes
 Notable Bugfixes
 ----------------
 
-- If an immutable file failed to download, e.g. due to a connection problem,
-  subsequent attempts to download the same file could also fail. (`#1679`_)
-- The SFTP frontend now works with recent versions of Twisted, rather than
-  giving errors or warnings about use of ``IFinishableConsumer``. (`#1926`_,
-  `#1564`_, `#1525`_)
-- Failure handling in the SFTP frontend has been improved. (`#1525`_)
-- Checking a LIT file using ``tahoe check`` no longer results in an
-  exception. (`#1758`_)
+- In earlier versions, if a connection problem caused a download failure for
+  an immutable file, subsequent attempts to download the same file could also
+  fail. This is now fixed. (`#1679`_)
 - Filenames in WUI directory pages are now displayed correctly when they
   contain characters that require HTML escaping. (`#1143`_)
 - Non-ASCII node nicknames no longer cause WUI errors. (`#1298`_)
-- Error messages containing tracebacks may be slightly more readable.
-  (`#1484`_)
-- ``tahoe cp --verbose`` counts the files being processed correctly.
+- Checking a LIT file using ``tahoe check`` no longer results in an
+  exception. (`#1758`_)
+- The SFTP frontend now works with recent versions of Twisted, rather than
+  giving errors or warnings about use of ``IFinishableConsumer``. (`#1926`_,
+  `#1564`_, `#1525`_)
+- ``tahoe cp --verbose`` now counts the files being processed correctly.
   (`#1805`_, `#1783`_)
 - Exceptions no longer trigger an unhelpful crash reporter on Ubuntu 12.04
   ("Precise") or later. (`#1746`_)
-- Improve error message when CLI tools cannot connect to a gateway. (`#974`_)
-- Other minor changes: `#1781`_, `#1812`_
-
-Performance Improvements
-------------------------
-
-- Allow web clients to cache immutable directory pages. (`#443`_)
-
-Documentation
--------------
-
-- docs/helper.rst has been brought up to date. (`#1915`_)
-- docs/convergence_secret.rst was added to document the adminstration of
-  convergence secrets. (`#1761`_)
-
-Packaging Changes
------------------
-
-- The flogtool utility, used to read logs, can now be accessed as
-  ``tahoe debug flogtool`` even when foolscap is not installed system-wide.
-  (`#1693`_)
-- The provisioning/reliability pages were removed from the main client's web
-  interface, and moved into a standalone web-based tool in
-  misc/operations_helpers/provisioning. Use the ``run.py`` script to access
-  them.
+- The error message displayed when a CLI tool cannot connect to a gateway has
+  been improved. (`#974`_)
+- Other minor fixes: `#1781`_, `#1812`_, `#1915`_, `#1484`_, `#1525`_
 
 Compatibility and Dependencies
 ------------------------------
 
 - Python >= 2.6, except Python 3 (`#1658`_)
 - Twisted >= 11.0.0 (`#1771`_)
-- mock >= 0.8
-- pycryptopp >= 0.6.0 (for ed25519)
+- mock >= 0.8 (for unit tests)
+- pycryptopp >= 0.6.0 (for Ed25519 signatures)
+- zope.interface >= 3.6.0 (except 3.6.3 or 3.6.4)
+
+Other Changes
+-------------
+
+- The ``flogtool`` utility, used to read detailed event logs, can now be
+  accessed as ``tahoe debug flogtool`` even when Foolscap is not installed
+  system-wide. (`#1693`_)
+- The provisioning/reliability pages were removed from the main client's web
+  interface, and moved into a standalone web-based tool. Use the ``run.py``
+  script in ``misc/operations_helpers/provisioning/`` to access them.
+- Web clients can now cache (ETag) immutable directory pages. (`#443`_)
+- `<docs/convergence_secret.rst>`__ was added to document the adminstration
+  of convergence secrets. (`#1761`_)
 
 Precautions when Upgrading
 --------------------------
 
-- When upgrading a grid from a recent version of trunk, follow the
+- When upgrading a grid from a recent revision of trunk, follow the
   precautions from this `message to the tahoe-dev mailing list`_, to ensure
   that announcements to the Introducer are recognized after the upgrade.
-  This is not necessary when upgrading from a previous release.
+  This is not necessary when upgrading from a previous release like 1.9.2.
 
 .. _`#166`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/166
 .. _`#443`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/443
@@ -139,6 +294,7 @@ Precautions when Upgrading
 .. _`message to the tahoe-dev mailing list`:
              https://tahoe-lafs.org/pipermail/tahoe-dev/2013-March/008096.html
 
+
 Release 1.9.2 (2012-07-03)
 ''''''''''''''''''''''''''
 
@@ -1202,7 +1358,7 @@ other fixes
   assert(). Specific exception classes were created for each previous
   instance of RuntimeError.
 
- -Many unit tests were changed to use a non-network test harness,
+Many unit tests were changed to use a non-network test harness,
   speeding them up considerably.
 
 - Deep-traversal operations (manifest and deep-check) now walk