From: Zooko O'Whielacronx <zooko@zooko.com>
Date: Wed, 30 Jul 2008 22:51:07 +0000 (-0700)
Subject: storage: make storage servers declare oldest supported version == 1.0, and storage... 
X-Git-Url: https://git.rkrishnan.org/components/%22news.html/frontends/index.php?a=commitdiff_plain;h=29255568df9a15758e5df22dda277b622035d097;p=tahoe-lafs%2Ftahoe-lafs.git

storage: make storage servers declare oldest supported version == 1.0, and storage clients declare oldest supported version == 1.0
See comments in patch for intended semantics.
---

diff --git a/src/allmydata/client.py b/src/allmydata/client.py
index 47f4fd20..e8f5e57b 100644
--- a/src/allmydata/client.py
+++ b/src/allmydata/client.py
@@ -46,8 +46,9 @@ class Client(node.Node, testutil.PollMixin):
     NODETYPE = "client"
     SUICIDE_PREVENTION_HOTLINE_FILE = "suicide_prevention_hotline"
 
-    # we're pretty narrow-minded right now
-    OLDEST_SUPPORTED_VERSION = allmydata.__version__
+    # This means that if a storage server treats me as though I were a
+    # 1.0.0 storage client, it will work as they expect.
+    OLDEST_SUPPORTED_VERSION = "1.0.0"
 
     # this is a tuple of (needed, desired, total, max_segment_size). 'needed'
     # is the number of shares required to reconstruct a file. 'desired' means
diff --git a/src/allmydata/interfaces.py b/src/allmydata/interfaces.py
index 6a8a8e0a..d5941658 100644
--- a/src/allmydata/interfaces.py
+++ b/src/allmydata/interfaces.py
@@ -74,14 +74,17 @@ class RIStorageServer(RemoteInterface):
     __remote_name__ = "RIStorageServer.tahoe.allmydata.com"
 
     def get_versions():
-        """Return a tuple of (my_version, oldest_supported) strings.
-        Each string can be parsed by an allmydata.util.version.Version
-        instance, and then compared. The first goal is to make sure that
-        nodes are not confused by speaking to an incompatible peer. The
-        second goal is to enable the development of backwards-compatibility
-        code.
-
-        This method is likely to change in incompatible ways until we get the
+        """
+        Return a tuple of (my_version, oldest_supported) strings.  Each string can be parsed by
+        a pyutil.version_class.Version instance or a distutils.version.LooseVersion instance,
+        and then compared. The first goal is to make sure that nodes are not confused by
+        speaking to an incompatible peer. The second goal is to enable the development of
+        backwards-compatibility code.
+
+        The meaning of the oldest_supported element is that if you treat this storage server as
+        though it were of that version, then you will not be disappointed.
+
+        The precise meaning of this method might change in incompatible ways until we get the
         whole compatibility scheme nailed down.
         """
         return TupleOf(str, str)
diff --git a/src/allmydata/storage.py b/src/allmydata/storage.py
index eb512c3a..fda061de 100644
--- a/src/allmydata/storage.py
+++ b/src/allmydata/storage.py
@@ -759,7 +759,9 @@ class StorageServer(service.MultiService, Referenceable):
     implements(RIStorageServer, IStatsProducer)
     name = 'storage'
 
-    OLDEST_SUPPORTED_VERSION = LooseVersion("0.8.0")
+    # This means that if a client treats me as though I were a 1.0.0 storage server, they will
+    # not be disappointed.
+    OLDEST_SUPPORTED_VERSION = LooseVersion("1.0.0")
 
     def __init__(self, storedir, sizelimit=None,
                  discard_storage=False, readonly_storage=False,