2 patches for repository http://tahoe-lafs.org/source/tahoe/trunk:

Tue Sep 27 20:30:28 BST 2011  zooko@zooko.com
  * Rename allmydata.client.Client to allmydata.clientandserver.ClientAndServer.
  Create a tiny shim allmydata.client.Client whose only purpose in life is to be available for the .tac files to invoke. (See the docstring of the new allmydata.client.Client for details.)
  Regularize some of the names of directories created by unit tests.

Tue Sep 27 23:06:35 BST 2011  david-sarah@jacaranda.org
  * test/test_upload.py: fix a missing rename of client to clientandserver. refs #1548

New patches:

[Rename allmydata.client.Client to allmydata.clientandserver.ClientAndServer.
zooko@zooko.com**20110927193028
 Ignore-this: b5bd4ae4522751d567858a19bf9a4e17
 Create a tiny shim allmydata.client.Client whose only purpose in life is to be available for the .tac files to invoke. (See the docstring of the new allmydata.client.Client for details.)
 Regularize some of the names of directories created by unit tests.
] {
move ./src/allmydata/client.py ./src/allmydata/clientandserver.py
move ./src/allmydata/test/test_client.py ./src/allmydata/test/test_clientandserver.py
addfile ./src/allmydata/client.py
hunk ./src/allmydata/client.py 1
+from allmydata import clientandserver
+
+def Client(basedir="."):
+    """
+    This is the entry point to Tahoe-LAFS code. It gets executed by the .tac
+    files which are produced by "tahoe create-client", "tahoe
+    create-introducer", and "tahoe create-node", and it gets executed by
+    windows/tahoesvc.py.
+
+    The name 'Client' is not a good name for this, but we can't change it
+    unless we change the .tac files that have previously been produced and
+    written to users' filesystems, or stop using .tac files (see ticket
+    #1159).
+
+    The reason it isn't a good name is that this same entry point also
+    launches servers.
+    """
+    return clientandserver.ClientAndServer(basedir)
replace ./src/allmydata/clientandserver.py [A-Za-z_0-9] Client ClientAndServer
replace ./src/allmydata/immutable/upload.py [A-Za-z_0-9] Client ClientAndServer
replace ./src/allmydata/node.py [A-Za-z_0-9] Client ClientAndServer
replace ./src/allmydata/storage_client.py [A-Za-z_0-9] Client ClientAndServer
hunk ./src/allmydata/test/check_memory.py 8
 from twisted.internet import defer, reactor, protocol, error
 from twisted.application import service, internet
 from twisted.web import client as tw_client
-from allmydata import client, introducer
+from allmydata import clientandserver, introducer
 from allmydata.immutable import upload
 from allmydata.scripts import create_node
 from allmydata.util import fileutil, pollmixin
replace ./src/allmydata/test/check_memory.py [A-Za-z_0-9\-\.] client.Client clientandserver.ClientAndServer
hunk ./src/allmydata/test/common.py 9
 from twisted.application import service
 from twisted.web.error import Error as WebError
 from foolscap.api import flushEventualQueue, fireEventually
-from allmydata import uri, dirnode, client
+from allmydata import uri, dirnode, clientandserver
 from allmydata.introducer.server import IntroducerNode
 from allmydata.interfaces import IMutableFileNode, IImmutableFileNode,\
                                  NotEnoughSharesError, ICheckable, \
replace ./src/allmydata/test/common.py [A-Za-z_0-9\-\.] client.Client clientandserver.ClientAndServer
replace ./src/allmydata/test/no_network.py [A-Za-z_0-9\-\.] allmydata.client allmydata.clientandserver
replace ./src/allmydata/test/no_network.py [A-Za-z_0-9] Client ClientAndServer
hunk ./src/allmydata/test/test_clientandserver.py 7
 
 import allmydata
 from allmydata.node import OldConfigError
-from allmydata import client
+from allmydata import clientandserver
 from allmydata.storage_client import StorageFarmBroker
 from allmydata.util import base32, fileutil
 from allmydata.interfaces import IFilesystemNode, IFileNode, \
hunk ./src/allmydata/test/test_clientandserver.py 295
 
 class NodeMaker(testutil.ReallyEqualMixin, unittest.TestCase):
     def test_maker(self):
-        basedir = "client/NodeMaker/maker"
+        basedir = "test_client/NodeMaker/test_maker"
         fileutil.make_dirs(basedir)
         fileutil.write(os.path.join(basedir, "tahoe.cfg"), BASECONFIG)
         c = client.Client(basedir)
replace ./src/allmydata/test/test_clientandserver.py [A-Za-z_0-9\-\.] client.Client clientandserver.ClientAndServer
replace ./src/allmydata/test/test_clientandserver.py [A-Za-z_0-9] test_client test_clientandserver
replace ./src/allmydata/test/test_clientandserver.py [A-Za-z_0-9\-\.] client.Basic.test_reserved_1 test_clientandserver.Basic.test_reserved_1
replace ./src/allmydata/test/test_clientandserver.py [A-Za-z_0-9\-\.] client.Basic.test_reserved_2 test_clientandserver.Basic.test_reserved_2
replace ./src/allmydata/test/test_clientandserver.py [A-Za-z_0-9\-\.] client.Basic.test_reserved_3 test_clientandserver.Basic.test_reserved_3
replace ./src/allmydata/test/test_clientandserver.py [A-Za-z_0-9\-\.] client.Basic.test_reserved_4 test_clientandserver.Basic.test_reserved_4
replace ./src/allmydata/test/test_clientandserver.py [A-Za-z_0-9\-\.] client.Basic.test_reserved_bad test_clientandserver.Basic.test_reserved_bad
replace ./src/allmydata/test/test_dirnode.py [A-Za-z_0-9\-\.] allmydata.client allmydata.clientandserver
replace ./src/allmydata/test/test_dirnode.py [A-Za-z_0-9] Client ClientAndServer
hunk ./src/allmydata/test/test_filenode.py 3
 
 from twisted.trial import unittest
-from allmydata import uri, client
+from allmydata import uri, clientandserver
 from allmydata.monitor import Monitor
 from allmydata.immutable.literal import LiteralFileNode
 from allmydata.immutable.filenode import ImmutableFileNode
hunk ./src/allmydata/test/test_filenode.py 25
         return None
     def get_history(self):
         return None
-    _secret_holder = client.SecretHolder("lease secret", "convergence secret")
+    _secret_holder = clientandserver.SecretHolder("lease secret", "convergence secret")
 
 class Node(unittest.TestCase):
     def test_chk_filenode(self):
replace ./src/allmydata/test/test_helper.py [A-Za-z_0-9] client clientandserver
replace ./src/allmydata/test/test_mutable.py [A-Za-z_0-9] client clientandserver
replace ./src/allmydata/test/test_web.py [A-Za-z_0-9] Client ClientAndServer
replace ./src/allmydata/test/test_web.py [A-Za-z_0-9\-\.] allmydata.client allmydata.clientandserver
}
[test/test_upload.py: fix a missing rename of client to clientandserver. refs #1548
david-sarah@jacaranda.org**20110927220635
 Ignore-this: 8d6f967403548a5946de7e738769a2c1
] {
hunk ./src/allmydata/test/test_upload.py 11
 from foolscap.api import fireEventually
 
 import allmydata # for __full_version__
-from allmydata import uri, monitor, client
+from allmydata import uri, monitor, clientandserver
 from allmydata.immutable import upload, encode
 from allmydata.interfaces import FileTooLargeError, UploadUnhappinessError
 from allmydata.util import log
hunk ./src/allmydata/test/test_upload.py 209
         return self.DEFAULT_ENCODING_PARAMETERS
     def get_storage_broker(self):
         return self.storage_broker
-    _secret_holder = client.SecretHolder("lease secret", "convergence secret")
+    _secret_holder = clientandserver.SecretHolder("lease secret", "convergence secret")
 
 class GotTooFarError(Exception):
     pass
}

Context:

[docs/configuration.rst: add section about the types of node, and clarify when setting web.port enables web-API service. fixes #1444
zooko@zooko.com**20110926203801
 Ignore-this: ab94d470c68e720101a7ff3c207a719e
] 
[TAG allmydata-tahoe-1.9.0a2
warner@lothar.com**20110925234811
 Ignore-this: e9649c58f9c9017a7d55008938dba64f
] 
Patch bundle hash:
ae38b89fe5abe19d57aa7246e283cc5e8dfe25c3
