Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wui: improved columns in welcome page server list #129

Closed
wants to merge 1 commit into from

Conversation

leif
Copy link
Contributor

@leif leif commented Nov 23, 2014

As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

  • replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
  • replace "Since" column with "Status" (addresses usability problem in #1961)
  • replace "announced" column with "Last RX" column
  • remove service column (it always said the same thing, "storage")

This is a squashed commit of 3fe9053
Thanks to an anonymous contributor who wrote some of the tests.

As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

 - replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
 - replace "Since" column with "Status" (addresses usability problem in #1961)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")

This is a squashed commit of 3fe9053
Thanks to an anonymous contributor who wrote some of the tests.
@zooko
Copy link
Member

zooko commented Nov 25, 2014

@daira
Copy link
Member

daira commented Nov 25, 2014

I get a test failure:

[FAIL]
Traceback (most recent call last):
  File "/home/davidsarah/tahoe/git/trunk/src/allmydata/test/test_web.py", line 638, in _check
    self.failUnlessIn('<div class="status-indicator service-Connected"></div>\n<div class="status-description">Connected<br /><a class="timestamp" title="00:00:10 01-Jan-1970">1d0h0m50s</a></div></td>', res_u)
  File "/usr/lib/python2.7/dist-packages/twisted/trial/_synctest.py", line 416, in assertIn
    % (containee, container))
twisted.trial.unittest.FailTest: '<div class="status-indicator service-Connected"></div>\n<div class="status-description">Connected<br /><a class="timestamp" title="00:00:10 01-Jan-1970">1d0h0m50s</a></div></td>' not in u'<!DOCTYPE html\n  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html lang="en">\n  <head>\n    <meta charset="utf-8" />\n    <title>Tahoe-LAFS - Welcome</title>\n    <meta content="width=device-width, initial-scale=1.0" name="viewport" />\n    <meta content="Tahoe-LAFS is a free and open distributed storage system" name="description" />\n    <meta content="Tahoe-LAFS" name="author" />\n\n    <!-- Le styles -->\n    <link href="/css/bootstrap.css" rel="stylesheet" />\n    <link href="/css/new-tahoe.css" rel="stylesheet" />\n\n    <!-- Le fav and touch icons -->\n    <link href="/icon.png" rel="shortcut icon" />\n  </head>\n\n  <body>\n\n    <div class="navbar navbar-fixed-top">\n      <div class="navbar-inner">\n        <div class="container-fluid">\n          <a href="/" class="brand"><img src="/img/logo.png" alt="Tahoe-LAFS" /></a>\n          <table class="node-info pull-right">\n            <tr>\n              <th>Nickname:</th>\n              <td>fake_nickname \u263a</td>\n            </tr>\n            <tr>\n              <th>Node ID:</th>\n              <td title="TubID: tubid">v0-nodeid</td>\n            </tr>\n          </table>\n        </div>\n      </div>\n    </div>\n\n    <div class="container-fluid">\n      <div class="row-fluid">\n        <div class="span3">\n          <div class="well sidebar-nav nav">\n             <div class="nav-header">Open Tahoe-URI:</div>\n             <div class="nav-form">\n               <form action="uri" method="get" enctype="multipart/form-data">\n                 <input type="text" name="uri" />\n                 <p><input type="submit" class="btn" value="View File or Directory \xbb" /></p>\n               </form>\n            </div>\n            <hr />\n\n            <div class="nav-header">Download Tahoe-URI:</div>\n            <div class="nav-form">\n              <form action="uri" method="get" enctype="multipart/form-data">\n                <label for="download-uri">\n                  URI\n                  <input type="text" name="uri" />\n                </label>\n                <label for="download-filename">\n                  Filename\n                  <input type="text" name="filename" />\n                </label>\n                <input type="hidden" name="save" value="true" />\n                <p><input type="submit" class="btn" value="Download File \xbb" /></p>\n              </form>\n            </div>\n            <hr />\n\n            <div class="nav-header">Upload File</div>\n            <div class="nav-form">\n              <form action="uri" method="post" enctype="multipart/form-data">\n                <input type="file" class="freeform-input-file" name="file" />\n                <input type="hidden" name="t" value="upload" />\n\n                <label class="radio" for="upload-chk"> \n                  <input checked="checked" type="radio" id="upload-chk" value="chk" name="format" />\n                  Immutable\n                </label>\n\n                <label class="radio" for="upload-sdmf">\n                  <input type="radio" id="upload-sdmf" value="sdmf" name="format" />\n                  <acronym title="Small Distributed Mutable File">SDMF</acronym>\n                </label>\n\n                <label class="radio" for="upload-mdmf">\n                  <input type="radio" id="upload-mdmf" value="mdmf" name="format" />\n                  <acronym title="Medium Distributed Mutable File">MDMF</acronym> (experimental)\n                </label>\n\n                <p><input type="submit" class="btn" value="Upload File \xbb" /></p>\n              </form>\n            </div>\n            <hr />\n\n            <div class="nav-header">Create Directory</div>\n            <div class="nav-form">\n              <form action="uri" method="post" enctype="multipart/form-data">\n                <label class="radio" for="mkdir-sdmf"> \n                  <input checked="checked" type="radio" id="mkdir-sdmf" value="sdmf" name="format" />\n                  <acronym title="Small Distributed Mutable File">SDMF</acronym>\n                </label>\n\n                <label class="radio" for="mkdir-mdmf">\n                  <input type="radio" id="mkdir-mdmf" value="mdmf" name="format" />\n                  <acronym title="Medium Distributed Mutable File">MDMF</acronym> (experimental)\n                </label>\n\n                <input type="hidden" name="t" value="mkdir" />\n                <input type="hidden" name="redirect_to_result" value="true" />\n                <input type="submit" class="btn" value="Create a directory \xbb" />\n              </form>\n            </div>\n\n          </div><!--/.well -->\n          <div class="well sidebar-nav">\n            <div class="nav-header">\n              <ul class="nav nav-list">\n                <li class="nav-header">Tools</li>\n                <li><a href="status">Recent and Active Operations</a></li>\n                <li><a href="statistics">Operational Statistics</a></li>\n              </ul>\n            </div>\n            <hr />\n            <div class="nav-header">\n              <ul class="nav nav-list">\n                <li class="nav-header">Save incident report</li>\n                <li><div><form action="report_incident" method="post" enctype="multipart/form-data"><fieldset><input type="hidden" name="t" value="report-incident" />What went wrong?\xa0\xa0<input type="text" name="details" />\xa0\xa0<input type="submit" value="Save \xbb" /></fieldset></form></div></li>\n              </ul>\n            </div>\n          </div><!--/.well -->\n        </div><!--/span-->\n        <div class="span9">\n          <div style="margin-bottom: 16px">\n            <h1 style="font-size: 48px">Grid Status</h1>\n          </div>\n          <div class="grid-status">\n            <div class="row-fluid">\n              <div class="span6">\n                <div>\n                  <h3>\n                    <div class="status-indicator connected-no"></div>\n                    <div>Introducer not connected</div>\n                  </h3>\n                  <div class="furl">/[censored]</div>\n                </div>\n                <div>\n                  <h3>\n                    <div class="status-indicator connected-not-configured"></div>\n                    <div>Helper</div>\n                  </h3>\n                  <div class="furl">None</div>\n                </div>\n              </div><!--/span-->\n              <div class="span6">\n                <div class="span4 services">\n                  <h3>Services</h3>\n                  <div><ul><li><a href="storage">Storage Server</a>: not accepting new shares (read-only)</li><li>Not running helper</li></ul></div>\n                </div><!--/span-->\n              </div><!--/span-->\n            </div><!--/row-->\n          </div>\n          <div class="row-fluid">\n            <h2>\n              Connected to <span>1</span>\n              of <span>2</span> known storage servers\n            </h2>\n          </div><!--/row-->\n          <table class="table table-striped table-bordered peer-status"><tr>\n                <td><h3>Status</h3></td>\n                <td><h3>Nickname</h3></td>\n                <td><h3>Address</h3></td>\n                <td><h3>Last RX</h3></td>\n                <td><h3>Version</h3></td>\n                <td><h3>Available</h3></td>\n              </tr><tr>\n              <td class="service-connection-status">\n              <div class="status-indicator service-Disconnected"></div>\n<div class="status-description">Disconnected<br /><a class="timestamp" title="01:00:25 01-Jan-1970">1d0h0m35s</a></div></td>\n              <td class="nickname-and-peerid">\n                <div class="nickname">disconnected_nickname \u263b</div>\n                <div class="nodeid">n52gqzlsl5xg6zdfnfsa</div>\n              </td>\n              <td class="address">N/A</td>\n              <td class="service-last-received-data"><a class="timestamp" title="01:00:35 01-Jan-1970">1d0h0m25s</a></td>\n              <td class="service-version">allmydata-tahoe-fake</td>\n              <td class="service-available-space">123.5kB</td>\n            </tr><tr>\n              <td class="service-connection-status">\n              <div class="status-indicator service-Connected"></div>\n<div class="status-description">Connected<br /><a class="timestamp" title="01:00:10 01-Jan-1970">1d0h0m50s</a></div></td>\n              <td class="nickname-and-peerid">\n                <div class="nickname">other_nickname \u263b</div>\n                <div class="nodeid">n52gqzlsl5xg6zdfnfsa</div>\n              </td>\n              <td class="address"></td>\n              <td class="service-last-received-data"><a class="timestamp" title="01:00:30 01-Jan-1970">1d0h0m30s</a></td>\n              <td class="service-version">allmydata-tahoe-fake</td>\n              <td class="service-available-space">123.5kB</td>\n            </tr></table>\n        </div><!--/span-->\n      </div><!--/row-->\n\n      <hr />\n\n      <footer>\n        <p>\xa9 <a href="https://tahoe-lafs.org/">Tahoe-LAFS Software Foundation 2013</a></p>\n        <p class="minutia">Page rendered at <span>17:44:14 25-Nov-2014</span></p>\n        <p class="minutia">allmydata-tahoe: 1.10.0.post212 [1973-status-last-rx-rebased: 486dbfc7bd3c0bbba42a6df8e4564601120aec0e]\nfoolscap: 0.6.4\npycryptopp: 0.6.0.1206569328141510525648634803928199668821045408958\nzfec: 1.4.5\nTwisted: 13.0.0\nNevow: 0.11.1\nzope.interface: unknown\npython: 2.7.5+\nplatform: Linux-LinuxMint_1-x86_64-64bit_ELF\npyOpenSSL: 0.14\nsimplejson: 2.6.2\npycrypto: 2.6\npyasn1: 0.1.7\nmock: 1.0.1\nsetuptools: 0.6c16dev5\nservice-identity: 14.0.0\ncharacteristic: 14.1.0\npyasn1-modules: 0.0.5\ncryptography: 0.3\ncffi: 0.8.2\nsix: 1.8.0\npycparser: 2.10\n</p>\n        <p class="minutia">Tahoe-LAFS code imported from: <span>&lt;module \'allmydata\' from \'/home/davidsarah/tahoe/git/trunk/src/allmydata/__init__.py\'&gt;</span></p>\n      </footer>\n\n    </div><!--/.fluid-container-->\n  </body>\n</html>'

allmydata.test.test_web.Web.test_welcome
-------------------------------------------------------------------------------

leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 4, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62

Thanks to an anonymous contributor who wrote some of the tests.
@leif
Copy link
Contributor Author

leif commented Jan 4, 2016

this is replaced by #223

@leif leif closed this Jan 4, 2016
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 5, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 5, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
daira added a commit that referenced this pull request Jan 15, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request #129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: leif@3fe9053 , leif@486dbfc , and c89ea62, 9fabb92, bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 20, 2016
The latest version of this branch can be found at
https://github.com/leif/tahoe-lafs/tree/introless-multiintro

Current TODO:
 - add some web tests

Squashed commit of the following:

commit 8fa8dca
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 20 23:00:08 2016 +0000

    fix/refactor test_multi_introducers

    these tests still have room for improvement but at least they pass again now

commit 4ce3e25
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 19:03:24 2016 +0000

    apply fixes from daira's review

    This addresses all of the issues daira mentioned here:
    1ae5aae
    plus a few small things I noticed.

commit ca90c06
Merge: 48b8a17 a2d724a
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 18:26:00 2016 +0000

    Merge branch 'master' into introless-multiintro

    Conflicts:
    	src/allmydata/test/test_util.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 48b8a17
Merge: 86c1ce0 1ae5aae
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 18:11:04 2016 +0000

    Merge branch 'introless-multiintro-squashed.2' into introless-multiintro

    NOOP history merge

commit 1ae5aae
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 06:41:10 2016 +0000

    multi-introducer support with introducerless mode

    Squashed commit of the following:

    commit 86c1ce0
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 05:25:59 2016 +0000

        fix tests. removed mock-based test

        todo: add web test to replace removed mock test

    commit 6c090d3
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 04:52:29 2016 +0000

        fix CSS

    commit ef4f68f
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 04:40:48 2016 +0000

        cleanup, fix tests?

    commit 1c0e816
    Merge: c36724d 6d6386e
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 04:06:49 2016 +0000

        first introless-multiintro merge of 2016

        Merge 1973.status-last-rx-rebased.8 into introless-multiintro-with-history,
        finally beginning to bring this branch up to date with the last year of
        upstream development. Tests do not yet pass. Probably doesn't even run.

        Conflicts:
        	docs/configuration.rst
        	src/allmydata/scripts/create_node.py
        	src/allmydata/test/test_util.py
        	src/allmydata/test/test_web.py
        	src/allmydata/util/time_format.py
        	src/allmydata/web/root.py
        	src/allmydata/web/static/css/new-tahoe.css
        	src/allmydata/web/welcome.xhtml
        	src/allmydata/webish.py

    commit c36724d
    Merge: 486dbfc b5f44bf 24acc94
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Nov 23 23:44:24 2014 +0000

        multi-intro support with introless mode

        This is a 3-way merge combining work by several people, including:

         - Faruque Sarker - wrote the original multi-introducer patch in 2010
         - KillYourTV - ported multi-intro patch to Tahoe 1.8.x and 1.9.x
         - Brian Warner - began writing the introducerless mode
         - David Stainton - made introducerless mode work
         - Leif Ryge - ported to present, added introducerless config generator
         - Anonymous - wrote tests and fixed bugs

        The history of these patches is documented somewhat at
        https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68 and
        https://tahoe-lafs.org/trac/tahoe-lafs/ticket/467

        A few of the changes in this merge were picked out of the truckee branch into
        this commit, but most of the history is included here.

    commit 486dbfc
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Nov 23 09:42:16 2014 +0000

        wui: improved columns in welcome page server list

        As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

         - replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
         - replace "Since" column with "Status" (addresses usability problem in #1961)
         - replace "announced" column with "Last RX" column
         - remove service column (it always said the same thing, "storage")

        This is a squashed commit of 3fe9053
        Thanks to an anonymous contributor who wrote some of the tests.

    commit 24acc94
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Feb 8 11:09:04 2014 +0000

        add get_config to FakeClient to make test_web pass

    commit 9c8ecfd
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Fri Feb 7 19:27:13 2014 +0000

        add web.reveal_storage_furls option

    commit 079493c
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Fri Feb 7 17:31:47 2014 +0000

        fix introducerless storage servers

        it turns out the _publish method registers with the tub too, not just the
        introducer

    commit 6043715
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Fri Feb 7 17:11:37 2014 +0000

        remove use_introducer option, update docs

    commit 2183067
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Feb 6 21:14:57 2014 +0000

        remove seed and furl columns from server list

    commit e555653
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Feb 6 21:11:56 2014 +0000

        add minimal /introducerless_config page

    commit b5f44bf
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Wed Jan 22 22:11:20 2014 +0000

        add get_since to MockIntroducerClient to fix test

    commit ee01309
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Tue Jan 21 01:40:46 2014 +0000

        configuration.rst: introducers can be commented

    commit afd697d
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Tue Jan 21 01:36:58 2014 +0000

        allow lines in introducers file to be commented

        this patch was sent to me by an anonymous contributor

    commit 1947a04
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Wed Jan 15 22:03:44 2014 +0100

        Teach client to talk to storage nodes in tahoe.cfg

    commit 8ec0486
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Wed Jan 15 14:28:58 2014 +0100

        Rough draft sketch of introducerless client

    commit 11fd0e2
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Mon Jan 13 13:01:12 2014 +0000

        add "Since" column to introducers table

    commit 93692eb
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Mon Jan 13 12:48:34 2014 +0000

        remove comment about empty nonce

        I think that for v1 announcements the seqnum and nonce are ignored anyway.

    commit 50c4531
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Mon Jan 13 11:15:57 2014 +0000

        connected_to_introducer -> connection_statuses

        Renaming this led to discovering a subtle bug in test.common - it was testing
        the truthiness of a list of bools, which is of course True when the list is
        [False].

    commit aae5d84
    Merge: fc1aaf8 04ed7d0
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 22:05:34 2014 +0000

        Merge branch 'master' into ticket68

    commit fc1aaf8
    Merge: 599ba20 db43528
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 21:26:46 2014 +0000

        Merge branch 'isolate-keygen-test' into ticket68

    commit 599ba20
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:40:02 2014 +0000

        update docs about multiple introducers

    commit 8d7e1b5
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:24:26 2014 +0000

        fix test_introducer.ClientSeqnums

    commit 5eb40bd
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:15:43 2014 +0000

        pass seq and nonce to publish tests

    commit 685a146
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:11:34 2014 +0000

        remove sequencer from IntroducerClient clients

    commit 6a72976
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:57:13 2014 +0000

        make test_web.Web.test_introducer_status pass

    commit c9ea3db
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:41:21 2014 +0000

        move introducer list beneath server list

    commit 553306f
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:38:00 2014 +0000

        display summary of connected introducers

    commit d3bf41a
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:27:36 2014 +0000

        censor non-default introducer swissnums

    commit d47c4f4
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:14:48 2014 +0000

        display number of connected introducers

    commit fa6e701
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:04:18 2014 +0000

        s/server_key/node_key/; multiintro announce works!

    commit 19af0c9
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sun Jan 12 18:36:26 2014 +0100

        Not working commit; missing NativeStorageClient or workaround...

    commit 45e947e
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 22:46:17 2014 +0000

        begin cleaning up html/css for introducers table

    commit 1ada606
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 22:12:30 2014 +0000

        temporary fix for stub_client announcements

    commit 2a07d72
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 21:14:41 2014 +0000

        move introducers list down

    commit 21da2ef
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 20:51:03 2014 +0000

        remove single-introducer censored furl

    commit 1f9f423
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 20:17:00 2014 +0000

        fix allmydata.test.test_web.Web.test_GET_root_html

    commit f4279ba
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sat Jan 11 21:12:50 2014 +0100

        Fix syntax error and do not pass sequencer function...

    commit 62260d2
    Merge: 15cece7 dbd6555
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sat Jan 11 20:53:55 2014 +0100

        Merge leif/ticket68 into david-68work

        Conflicts:
        	src/allmydata/client.py
        	src/allmydata/test/test_web.py
        	src/allmydata/web/root.py
        	src/allmydata/web/welcome.xhtml

    commit dbd6555
    Merge: e1840f1 ebcf9e3
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 19:47:42 2014 +0000

        begin merging kytv/68-multi into ticket68

        note: this is a non-working state

        Conflicts:
        	src/allmydata/client.py
        	src/allmydata/test/test_web.py
        	src/allmydata/web/root.py
        	src/allmydata/web/welcome.xhtml

    commit 15cece7
    Merge: e1840f1 ebcf9e3
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sat Jan 11 20:32:44 2014 +0100

        Merge remote-tracking branch 'killyourtv/68-multi' into david-68work

        Here we adapt the multi-introducer patch (ticket tahoe-lafs#68)
        to accomodate the new sequence number and nonce scheme from ticket #1767.
        We pass the current_seqnum and current_nonce into IntroducerClient's publish method
        instead of that publish method calling the passed in _sequencer function to generate
        that sequnum/nonce pair.

        Manually resolved conflicts in these files:
        	src/allmydata/client.py
                src/allmydata/introducer/client.py
                src/allmydata/introducer/interfaces.py
        Leaving these files to Leif's commit to be merged later:
        	src/allmydata/test/test_web.py
        	src/allmydata/web/root.py
        	src/allmydata/web/welcome.xhtml

    commit ebcf9e3
    Author: kytv <killyourtv@i2pmail.org>
    Date:   Sat Feb 18 00:29:03 2012 +0000

        color coded multiple introducer status

    commit 46b74a9
    Author: kytv <killyourtv@i2pmail.org>
    Date:   Sat Feb 18 00:08:15 2012 +0000

        multiple introducer support

        author: Faruq (original darcs patches available from
        https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68)

commit 86c1ce0
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 05:25:59 2016 +0000

    fix tests. removed mock-based test

    todo: add web test to replace removed mock test

commit 6c090d3
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:52:29 2016 +0000

    fix CSS

commit ef4f68f
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:40:48 2016 +0000

    cleanup, fix tests?

commit 1c0e816
Merge: c36724d 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:06:49 2016 +0000

    first introless-multiintro merge of 2016

    Merge 1973.status-last-rx-rebased.8 into introless-multiintro-with-history,
    finally beginning to bring this branch up to date with the last year of
    upstream development. Tests do not yet pass. Probably doesn't even run.

    Conflicts:
    	docs/configuration.rst
    	src/allmydata/scripts/create_node.py
    	src/allmydata/test/test_util.py
    	src/allmydata/test/test_web.py
    	src/allmydata/util/time_format.py
    	src/allmydata/web/root.py
    	src/allmydata/web/static/css/new-tahoe.css
    	src/allmydata/web/welcome.xhtml
    	src/allmydata/webish.py

commit 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 19:58:55 2016 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
    previous pull request tahoe-lafs#129.

     - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")
     - fix colspan on 'You are not presently connected' message

    Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

    Unlike previous attempts, the tests on this one should pass in any timezone.
    (But like current master, will fail with Nevow >=0.12...)

    Thanks to an anonymous contributor who wrote some of the tests.

commit 559846c
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 16:00:59 2016 +0000

    wui: use standard time format (tahoe-lafs#1077)

commit c36724d
Merge: 486dbfc b5f44bf 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 23:44:24 2014 +0000

    multi-intro support with introless mode

    This is a 3-way merge combining work by several people, including:

     - Faruque Sarker - wrote the original multi-introducer patch in 2010
     - KillYourTV - ported multi-intro patch to Tahoe 1.8.x and 1.9.x
     - Brian Warner - began writing the introducerless mode
     - David Stainton - made introducerless mode work
     - Leif Ryge - ported to present, added introducerless config generator
     - Anonymous - wrote tests and fixed bugs

    The history of these patches is documented somewhat at
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68 and
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/467

    A few of the changes in this merge were picked out of the truckee branch into
    this commit, but most of the history is included here.

commit 486dbfc
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 09:42:16 2014 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

     - replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
     - replace "Since" column with "Status" (addresses usability problem in #1961)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")

    This is a squashed commit of 3fe9053
    Thanks to an anonymous contributor who wrote some of the tests.

commit 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Feb 8 11:09:04 2014 +0000

    add get_config to FakeClient to make test_web pass

commit 9c8ecfd
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 19:27:13 2014 +0000

    add web.reveal_storage_furls option

commit 079493c
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:31:47 2014 +0000

    fix introducerless storage servers

    it turns out the _publish method registers with the tub too, not just the
    introducer

commit 6043715
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:11:37 2014 +0000

    remove use_introducer option, update docs

commit 2183067
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:14:57 2014 +0000

    remove seed and furl columns from server list

commit e555653
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:11:56 2014 +0000

    add minimal /introducerless_config page

commit b5f44bf
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 22 22:11:20 2014 +0000

    add get_since to MockIntroducerClient to fix test

commit ee01309
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:40:46 2014 +0000

    configuration.rst: introducers can be commented

commit afd697d
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:36:58 2014 +0000

    allow lines in introducers file to be commented

    this patch was sent to me by an anonymous contributor

commit 1947a04
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 22:03:44 2014 +0100

    Teach client to talk to storage nodes in tahoe.cfg

commit 8ec0486
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 14:28:58 2014 +0100

    Rough draft sketch of introducerless client

commit 11fd0e2
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 13:01:12 2014 +0000

    add "Since" column to introducers table

commit 93692eb
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 12:48:34 2014 +0000

    remove comment about empty nonce

    I think that for v1 announcements the seqnum and nonce are ignored anyway.

commit 50c4531
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 11:15:57 2014 +0000

    connected_to_introducer -> connection_statuses

    Renaming this led to discovering a subtle bug in test.common - it was testing
    the truthiness of a list of bools, which is of course True when the list is
    [False].

commit aae5d84
Merge: fc1aaf8 04ed7d0
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 22:05:34 2014 +0000

    Merge branch 'master' into ticket68

commit fc1aaf8
Merge: 599ba20 db43528
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 21:26:46 2014 +0000

    Merge branch 'isolate-keygen-test' into ticket68

commit 599ba20
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:40:02 2014 +0000

    update docs about multiple introducers

commit 8d7e1b5
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:24:26 2014 +0000

    fix test_introducer.ClientSeqnums

commit 5eb40bd
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:15:43 2014 +0000

    pass seq and nonce to publish tests

commit 685a146
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:11:34 2014 +0000

    remove sequencer from IntroducerClient clients

commit 6a72976
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:57:13 2014 +0000

    make test_web.Web.test_introducer_status pass

commit c9ea3db
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:41:21 2014 +0000

    move introducer list beneath server list

commit 553306f
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:38:00 2014 +0000

    display summary of connected introducers

commit d3bf41a
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:27:36 2014 +0000

    censor non-default introducer swissnums

commit d47c4f4
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:14:48 2014 +0000

    display number of connected introducers

commit fa6e701
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:04:18 2014 +0000

    s/server_key/node_key/; multiintro announce works!

commit 19af0c9
Author: David Stainton <dstainton415@gmail.com>
Date:   Sun Jan 12 18:36:26 2014 +0100

    Not working commit; missing NativeStorageClient or workaround...

commit 45e947e
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:46:17 2014 +0000

    begin cleaning up html/css for introducers table

commit 1ada606
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:12:30 2014 +0000

    temporary fix for stub_client announcements

commit 2a07d72
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 21:14:41 2014 +0000

    move introducers list down

commit 21da2ef
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:51:03 2014 +0000

    remove single-introducer censored furl

commit 1f9f423
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:17:00 2014 +0000

    fix allmydata.test.test_web.Web.test_GET_root_html

commit f4279ba
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 21:12:50 2014 +0100

    Fix syntax error and do not pass sequencer function...

commit 62260d2
Merge: 15cece7 dbd6555
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:53:55 2014 +0100

    Merge leif/ticket68 into david-68work

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit dbd6555
Merge: e1840f1 ebcf9e3
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 19:47:42 2014 +0000

    begin merging kytv/68-multi into ticket68

    note: this is a non-working state

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 15cece7
Merge: e1840f1 ebcf9e3
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:32:44 2014 +0100

    Merge remote-tracking branch 'killyourtv/68-multi' into david-68work

    Here we adapt the multi-introducer patch (ticket tahoe-lafs#68)
    to accomodate the new sequence number and nonce scheme from ticket #1767.
    We pass the current_seqnum and current_nonce into IntroducerClient's publish method
    instead of that publish method calling the passed in _sequencer function to generate
    that sequnum/nonce pair.

    Manually resolved conflicts in these files:
    	src/allmydata/client.py
            src/allmydata/introducer/client.py
            src/allmydata/introducer/interfaces.py
    Leaving these files to Leif's commit to be merged later:
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit ebcf9e3
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:29:03 2012 +0000

    color coded multiple introducer status

commit 46b74a9
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:08:15 2012 +0000

    multiple introducer support

    author: Faruq (original darcs patches available from
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68)
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 20, 2016
The latest version of this branch can be found at
https://github.com/leif/tahoe-lafs/tree/introless-multiintro

Current TODO:
 - add some web tests

Squashed commit of the following:

commit 8fa8dca
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 20 23:00:08 2016 +0000

    fix/refactor test_multi_introducers

    these tests still have room for improvement but at least they pass again now

commit 4ce3e25
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 19:03:24 2016 +0000

    apply fixes from daira's review

    This addresses all of the issues daira mentioned here:
    1ae5aae
    plus a few small things I noticed.

commit ca90c06
Merge: 48b8a17 a2d724a
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 18:26:00 2016 +0000

    Merge branch 'master' into introless-multiintro

    Conflicts:
    	src/allmydata/test/test_util.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 48b8a17
Merge: 86c1ce0 1ae5aae
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 18:11:04 2016 +0000

    Merge branch 'introless-multiintro-squashed.2' into introless-multiintro

    NOOP history merge

commit 86c1ce0
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 05:25:59 2016 +0000

    fix tests. removed mock-based test

    todo: add web test to replace removed mock test

commit 6c090d3
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:52:29 2016 +0000

    fix CSS

commit ef4f68f
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:40:48 2016 +0000

    cleanup, fix tests?

commit 1c0e816
Merge: c36724d 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:06:49 2016 +0000

    first introless-multiintro merge of 2016

    Merge 1973.status-last-rx-rebased.8 into introless-multiintro-with-history,
    finally beginning to bring this branch up to date with the last year of
    upstream development. Tests do not yet pass. Probably doesn't even run.

    Conflicts:
    	docs/configuration.rst
    	src/allmydata/scripts/create_node.py
    	src/allmydata/test/test_util.py
    	src/allmydata/test/test_web.py
    	src/allmydata/util/time_format.py
    	src/allmydata/web/root.py
    	src/allmydata/web/static/css/new-tahoe.css
    	src/allmydata/web/welcome.xhtml
    	src/allmydata/webish.py

commit 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 19:58:55 2016 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
    previous pull request tahoe-lafs#129.

     - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")
     - fix colspan on 'You are not presently connected' message

    Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

    Unlike previous attempts, the tests on this one should pass in any timezone.
    (But like current master, will fail with Nevow >=0.12...)

    Thanks to an anonymous contributor who wrote some of the tests.

commit 559846c
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 16:00:59 2016 +0000

    wui: use standard time format (tahoe-lafs#1077)

commit c36724d
Merge: 486dbfc b5f44bf 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 23:44:24 2014 +0000

    multi-intro support with introless mode

    This is a 3-way merge combining work by several people, including:

     - Faruque Sarker - wrote the original multi-introducer patch in 2010
     - KillYourTV - ported multi-intro patch to Tahoe 1.8.x and 1.9.x
     - Brian Warner - began writing the introducerless mode
     - David Stainton - made introducerless mode work
     - Leif Ryge - ported to present, added introducerless config generator
     - Anonymous - wrote tests and fixed bugs

    The history of these patches is documented somewhat at
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68 and
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/467

    A few of the changes in this merge were picked out of the truckee branch into
    this commit, but most of the history is included here.

commit 486dbfc
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 09:42:16 2014 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

     - replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
     - replace "Since" column with "Status" (addresses usability problem in #1961)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")

    This is a squashed commit of 3fe9053
    Thanks to an anonymous contributor who wrote some of the tests.

commit 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Feb 8 11:09:04 2014 +0000

    add get_config to FakeClient to make test_web pass

commit 9c8ecfd
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 19:27:13 2014 +0000

    add web.reveal_storage_furls option

commit 079493c
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:31:47 2014 +0000

    fix introducerless storage servers

    it turns out the _publish method registers with the tub too, not just the
    introducer

commit 6043715
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:11:37 2014 +0000

    remove use_introducer option, update docs

commit 2183067
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:14:57 2014 +0000

    remove seed and furl columns from server list

commit e555653
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:11:56 2014 +0000

    add minimal /introducerless_config page

commit b5f44bf
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 22 22:11:20 2014 +0000

    add get_since to MockIntroducerClient to fix test

commit ee01309
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:40:46 2014 +0000

    configuration.rst: introducers can be commented

commit afd697d
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:36:58 2014 +0000

    allow lines in introducers file to be commented

    this patch was sent to me by an anonymous contributor

commit 1947a04
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 22:03:44 2014 +0100

    Teach client to talk to storage nodes in tahoe.cfg

commit 8ec0486
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 14:28:58 2014 +0100

    Rough draft sketch of introducerless client

commit 11fd0e2
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 13:01:12 2014 +0000

    add "Since" column to introducers table

commit 93692eb
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 12:48:34 2014 +0000

    remove comment about empty nonce

    I think that for v1 announcements the seqnum and nonce are ignored anyway.

commit 50c4531
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 11:15:57 2014 +0000

    connected_to_introducer -> connection_statuses

    Renaming this led to discovering a subtle bug in test.common - it was testing
    the truthiness of a list of bools, which is of course True when the list is
    [False].

commit aae5d84
Merge: fc1aaf8 04ed7d0
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 22:05:34 2014 +0000

    Merge branch 'master' into ticket68

commit fc1aaf8
Merge: 599ba20 db43528
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 21:26:46 2014 +0000

    Merge branch 'isolate-keygen-test' into ticket68

commit 599ba20
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:40:02 2014 +0000

    update docs about multiple introducers

commit 8d7e1b5
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:24:26 2014 +0000

    fix test_introducer.ClientSeqnums

commit 5eb40bd
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:15:43 2014 +0000

    pass seq and nonce to publish tests

commit 685a146
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:11:34 2014 +0000

    remove sequencer from IntroducerClient clients

commit 6a72976
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:57:13 2014 +0000

    make test_web.Web.test_introducer_status pass

commit c9ea3db
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:41:21 2014 +0000

    move introducer list beneath server list

commit 553306f
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:38:00 2014 +0000

    display summary of connected introducers

commit d3bf41a
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:27:36 2014 +0000

    censor non-default introducer swissnums

commit d47c4f4
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:14:48 2014 +0000

    display number of connected introducers

commit fa6e701
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:04:18 2014 +0000

    s/server_key/node_key/; multiintro announce works!

commit 19af0c9
Author: David Stainton <dstainton415@gmail.com>
Date:   Sun Jan 12 18:36:26 2014 +0100

    Not working commit; missing NativeStorageClient or workaround...

commit 45e947e
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:46:17 2014 +0000

    begin cleaning up html/css for introducers table

commit 1ada606
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:12:30 2014 +0000

    temporary fix for stub_client announcements

commit 2a07d72
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 21:14:41 2014 +0000

    move introducers list down

commit 21da2ef
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:51:03 2014 +0000

    remove single-introducer censored furl

commit 1f9f423
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:17:00 2014 +0000

    fix allmydata.test.test_web.Web.test_GET_root_html

commit f4279ba
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 21:12:50 2014 +0100

    Fix syntax error and do not pass sequencer function...

commit 62260d2
Merge: 15cece7 dbd6555
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:53:55 2014 +0100

    Merge leif/ticket68 into david-68work

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit dbd6555
Merge: e1840f1 ebcf9e3
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 19:47:42 2014 +0000

    begin merging kytv/68-multi into ticket68

    note: this is a non-working state

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 15cece7
Merge: e1840f1 ebcf9e3
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:32:44 2014 +0100

    Merge remote-tracking branch 'killyourtv/68-multi' into david-68work

    Here we adapt the multi-introducer patch (ticket tahoe-lafs#68)
    to accomodate the new sequence number and nonce scheme from ticket #1767.
    We pass the current_seqnum and current_nonce into IntroducerClient's publish method
    instead of that publish method calling the passed in _sequencer function to generate
    that sequnum/nonce pair.

    Manually resolved conflicts in these files:
    	src/allmydata/client.py
            src/allmydata/introducer/client.py
            src/allmydata/introducer/interfaces.py
    Leaving these files to Leif's commit to be merged later:
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit ebcf9e3
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:29:03 2012 +0000

    color coded multiple introducer status

commit 46b74a9
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:08:15 2012 +0000

    multiple introducer support

    author: Faruq (original darcs patches available from
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68)
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 21, 2016
This is an almost-done work-in-progress. Testing and review is welcome here:
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68

The latest version of this branch can be found at
https://github.com/leif/tahoe-lafs/tree/introless-multiintro

Current TODO:
 - add some web tests

Squashed commit of the following:

commit f8d3e8b
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 21 00:04:29 2016 +0000

    small fix to docs

commit 8fa8dca
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 20 23:00:08 2016 +0000

    fix/refactor test_multi_introducers

    these tests still have room for improvement but at least they pass again now

commit 4ce3e25
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 19:03:24 2016 +0000

    apply fixes from daira's review

    This addresses all of the issues daira mentioned here:
    1ae5aae
    plus a few small things I noticed.

commit ca90c06
Merge: 48b8a17 a2d724a
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 18:26:00 2016 +0000

    Merge branch 'master' into introless-multiintro

    Conflicts:
    	src/allmydata/test/test_util.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 48b8a17
Merge: 86c1ce0 1ae5aae
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 18:11:04 2016 +0000

    Merge branch 'introless-multiintro-squashed.2' into introless-multiintro

    NOOP history merge

commit 1ae5aae
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 06:41:10 2016 +0000

    multi-introducer support with introducerless mode

    Squashed commit of the following:

    commit 86c1ce0
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 05:25:59 2016 +0000

        fix tests. removed mock-based test

        todo: add web test to replace removed mock test

    commit 6c090d3
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 04:52:29 2016 +0000

        fix CSS

    commit ef4f68f
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 04:40:48 2016 +0000

        cleanup, fix tests?

    commit 1c0e816
    Merge: c36724d 6d6386e
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Jan 7 04:06:49 2016 +0000

        first introless-multiintro merge of 2016

        Merge 1973.status-last-rx-rebased.8 into introless-multiintro-with-history,
        finally beginning to bring this branch up to date with the last year of
        upstream development. Tests do not yet pass. Probably doesn't even run.

        Conflicts:
        	docs/configuration.rst
        	src/allmydata/scripts/create_node.py
        	src/allmydata/test/test_util.py
        	src/allmydata/test/test_web.py
        	src/allmydata/util/time_format.py
        	src/allmydata/web/root.py
        	src/allmydata/web/static/css/new-tahoe.css
        	src/allmydata/web/welcome.xhtml
        	src/allmydata/webish.py

    commit c36724d
    Merge: 486dbfc b5f44bf 24acc94
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Nov 23 23:44:24 2014 +0000

        multi-intro support with introless mode

        This is a 3-way merge combining work by several people, including:

         - Faruque Sarker - wrote the original multi-introducer patch in 2010
         - KillYourTV - ported multi-intro patch to Tahoe 1.8.x and 1.9.x
         - Brian Warner - began writing the introducerless mode
         - David Stainton - made introducerless mode work
         - Leif Ryge - ported to present, added introducerless config generator
         - Anonymous - wrote tests and fixed bugs

        The history of these patches is documented somewhat at
        https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68 and
        https://tahoe-lafs.org/trac/tahoe-lafs/ticket/467

        A few of the changes in this merge were picked out of the truckee branch into
        this commit, but most of the history is included here.

    commit 486dbfc
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Nov 23 09:42:16 2014 +0000

        wui: improved columns in welcome page server list

        As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

         - replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
         - replace "Since" column with "Status" (addresses usability problem in #1961)
         - replace "announced" column with "Last RX" column
         - remove service column (it always said the same thing, "storage")

        This is a squashed commit of 3fe9053
        Thanks to an anonymous contributor who wrote some of the tests.

    commit 24acc94
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Feb 8 11:09:04 2014 +0000

        add get_config to FakeClient to make test_web pass

    commit 9c8ecfd
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Fri Feb 7 19:27:13 2014 +0000

        add web.reveal_storage_furls option

    commit 079493c
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Fri Feb 7 17:31:47 2014 +0000

        fix introducerless storage servers

        it turns out the _publish method registers with the tub too, not just the
        introducer

    commit 6043715
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Fri Feb 7 17:11:37 2014 +0000

        remove use_introducer option, update docs

    commit 2183067
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Feb 6 21:14:57 2014 +0000

        remove seed and furl columns from server list

    commit e555653
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Thu Feb 6 21:11:56 2014 +0000

        add minimal /introducerless_config page

    commit b5f44bf
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Wed Jan 22 22:11:20 2014 +0000

        add get_since to MockIntroducerClient to fix test

    commit ee01309
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Tue Jan 21 01:40:46 2014 +0000

        configuration.rst: introducers can be commented

    commit afd697d
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Tue Jan 21 01:36:58 2014 +0000

        allow lines in introducers file to be commented

        this patch was sent to me by an anonymous contributor

    commit 1947a04
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Wed Jan 15 22:03:44 2014 +0100

        Teach client to talk to storage nodes in tahoe.cfg

    commit 8ec0486
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Wed Jan 15 14:28:58 2014 +0100

        Rough draft sketch of introducerless client

    commit 11fd0e2
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Mon Jan 13 13:01:12 2014 +0000

        add "Since" column to introducers table

    commit 93692eb
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Mon Jan 13 12:48:34 2014 +0000

        remove comment about empty nonce

        I think that for v1 announcements the seqnum and nonce are ignored anyway.

    commit 50c4531
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Mon Jan 13 11:15:57 2014 +0000

        connected_to_introducer -> connection_statuses

        Renaming this led to discovering a subtle bug in test.common - it was testing
        the truthiness of a list of bools, which is of course True when the list is
        [False].

    commit aae5d84
    Merge: fc1aaf8 04ed7d0
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 22:05:34 2014 +0000

        Merge branch 'master' into ticket68

    commit fc1aaf8
    Merge: 599ba20 db43528
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 21:26:46 2014 +0000

        Merge branch 'isolate-keygen-test' into ticket68

    commit 599ba20
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:40:02 2014 +0000

        update docs about multiple introducers

    commit 8d7e1b5
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:24:26 2014 +0000

        fix test_introducer.ClientSeqnums

    commit 5eb40bd
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:15:43 2014 +0000

        pass seq and nonce to publish tests

    commit 685a146
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 19:11:34 2014 +0000

        remove sequencer from IntroducerClient clients

    commit 6a72976
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:57:13 2014 +0000

        make test_web.Web.test_introducer_status pass

    commit c9ea3db
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:41:21 2014 +0000

        move introducer list beneath server list

    commit 553306f
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:38:00 2014 +0000

        display summary of connected introducers

    commit d3bf41a
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:27:36 2014 +0000

        censor non-default introducer swissnums

    commit d47c4f4
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:14:48 2014 +0000

        display number of connected introducers

    commit fa6e701
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sun Jan 12 18:04:18 2014 +0000

        s/server_key/node_key/; multiintro announce works!

    commit 19af0c9
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sun Jan 12 18:36:26 2014 +0100

        Not working commit; missing NativeStorageClient or workaround...

    commit 45e947e
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 22:46:17 2014 +0000

        begin cleaning up html/css for introducers table

    commit 1ada606
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 22:12:30 2014 +0000

        temporary fix for stub_client announcements

    commit 2a07d72
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 21:14:41 2014 +0000

        move introducers list down

    commit 21da2ef
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 20:51:03 2014 +0000

        remove single-introducer censored furl

    commit 1f9f423
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 20:17:00 2014 +0000

        fix allmydata.test.test_web.Web.test_GET_root_html

    commit f4279ba
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sat Jan 11 21:12:50 2014 +0100

        Fix syntax error and do not pass sequencer function...

    commit 62260d2
    Merge: 15cece7 dbd6555
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sat Jan 11 20:53:55 2014 +0100

        Merge leif/ticket68 into david-68work

        Conflicts:
        	src/allmydata/client.py
        	src/allmydata/test/test_web.py
        	src/allmydata/web/root.py
        	src/allmydata/web/welcome.xhtml

    commit dbd6555
    Merge: e1840f1 ebcf9e3
    Author: Leif Ryge <leif@synthesize.us>
    Date:   Sat Jan 11 19:47:42 2014 +0000

        begin merging kytv/68-multi into ticket68

        note: this is a non-working state

        Conflicts:
        	src/allmydata/client.py
        	src/allmydata/test/test_web.py
        	src/allmydata/web/root.py
        	src/allmydata/web/welcome.xhtml

    commit 15cece7
    Merge: e1840f1 ebcf9e3
    Author: David Stainton <dstainton415@gmail.com>
    Date:   Sat Jan 11 20:32:44 2014 +0100

        Merge remote-tracking branch 'killyourtv/68-multi' into david-68work

        Here we adapt the multi-introducer patch (ticket tahoe-lafs#68)
        to accomodate the new sequence number and nonce scheme from ticket #1767.
        We pass the current_seqnum and current_nonce into IntroducerClient's publish method
        instead of that publish method calling the passed in _sequencer function to generate
        that sequnum/nonce pair.

        Manually resolved conflicts in these files:
        	src/allmydata/client.py
                src/allmydata/introducer/client.py
                src/allmydata/introducer/interfaces.py
        Leaving these files to Leif's commit to be merged later:
        	src/allmydata/test/test_web.py
        	src/allmydata/web/root.py
        	src/allmydata/web/welcome.xhtml

    commit ebcf9e3
    Author: kytv <killyourtv@i2pmail.org>
    Date:   Sat Feb 18 00:29:03 2012 +0000

        color coded multiple introducer status

    commit 46b74a9
    Author: kytv <killyourtv@i2pmail.org>
    Date:   Sat Feb 18 00:08:15 2012 +0000

        multiple introducer support

        author: Faruq (original darcs patches available from
        https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68)

commit 86c1ce0
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 05:25:59 2016 +0000

    fix tests. removed mock-based test

    todo: add web test to replace removed mock test

commit 6c090d3
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:52:29 2016 +0000

    fix CSS

commit ef4f68f
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:40:48 2016 +0000

    cleanup, fix tests?

commit 1c0e816
Merge: c36724d 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:06:49 2016 +0000

    first introless-multiintro merge of 2016

    Merge 1973.status-last-rx-rebased.8 into introless-multiintro-with-history,
    finally beginning to bring this branch up to date with the last year of
    upstream development. Tests do not yet pass. Probably doesn't even run.

    Conflicts:
    	docs/configuration.rst
    	src/allmydata/scripts/create_node.py
    	src/allmydata/test/test_util.py
    	src/allmydata/test/test_web.py
    	src/allmydata/util/time_format.py
    	src/allmydata/web/root.py
    	src/allmydata/web/static/css/new-tahoe.css
    	src/allmydata/web/welcome.xhtml
    	src/allmydata/webish.py

commit 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 19:58:55 2016 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
    previous pull request tahoe-lafs#129.

     - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")
     - fix colspan on 'You are not presently connected' message

    Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

    Unlike previous attempts, the tests on this one should pass in any timezone.
    (But like current master, will fail with Nevow >=0.12...)

    Thanks to an anonymous contributor who wrote some of the tests.

commit 559846c
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 16:00:59 2016 +0000

    wui: use standard time format (tahoe-lafs#1077)

commit c36724d
Merge: 486dbfc b5f44bf 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 23:44:24 2014 +0000

    multi-intro support with introless mode

    This is a 3-way merge combining work by several people, including:

     - Faruque Sarker - wrote the original multi-introducer patch in 2010
     - KillYourTV - ported multi-intro patch to Tahoe 1.8.x and 1.9.x
     - Brian Warner - began writing the introducerless mode
     - David Stainton - made introducerless mode work
     - Leif Ryge - ported to present, added introducerless config generator
     - Anonymous - wrote tests and fixed bugs

    The history of these patches is documented somewhat at
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68 and
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/467

    A few of the changes in this merge were picked out of the truckee branch into
    this commit, but most of the history is included here.

commit 486dbfc
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 09:42:16 2014 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

     - replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
     - replace "Since" column with "Status" (addresses usability problem in #1961)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")

    This is a squashed commit of 3fe9053
    Thanks to an anonymous contributor who wrote some of the tests.

commit 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Feb 8 11:09:04 2014 +0000

    add get_config to FakeClient to make test_web pass

commit 9c8ecfd
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 19:27:13 2014 +0000

    add web.reveal_storage_furls option

commit 079493c
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:31:47 2014 +0000

    fix introducerless storage servers

    it turns out the _publish method registers with the tub too, not just the
    introducer

commit 6043715
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:11:37 2014 +0000

    remove use_introducer option, update docs

commit 2183067
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:14:57 2014 +0000

    remove seed and furl columns from server list

commit e555653
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:11:56 2014 +0000

    add minimal /introducerless_config page

commit b5f44bf
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 22 22:11:20 2014 +0000

    add get_since to MockIntroducerClient to fix test

commit ee01309
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:40:46 2014 +0000

    configuration.rst: introducers can be commented

commit afd697d
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:36:58 2014 +0000

    allow lines in introducers file to be commented

    this patch was sent to me by an anonymous contributor

commit 1947a04
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 22:03:44 2014 +0100

    Teach client to talk to storage nodes in tahoe.cfg

commit 8ec0486
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 14:28:58 2014 +0100

    Rough draft sketch of introducerless client

commit 11fd0e2
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 13:01:12 2014 +0000

    add "Since" column to introducers table

commit 93692eb
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 12:48:34 2014 +0000

    remove comment about empty nonce

    I think that for v1 announcements the seqnum and nonce are ignored anyway.

commit 50c4531
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 11:15:57 2014 +0000

    connected_to_introducer -> connection_statuses

    Renaming this led to discovering a subtle bug in test.common - it was testing
    the truthiness of a list of bools, which is of course True when the list is
    [False].

commit aae5d84
Merge: fc1aaf8 04ed7d0
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 22:05:34 2014 +0000

    Merge branch 'master' into ticket68

commit fc1aaf8
Merge: 599ba20 db43528
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 21:26:46 2014 +0000

    Merge branch 'isolate-keygen-test' into ticket68

commit 599ba20
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:40:02 2014 +0000

    update docs about multiple introducers

commit 8d7e1b5
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:24:26 2014 +0000

    fix test_introducer.ClientSeqnums

commit 5eb40bd
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:15:43 2014 +0000

    pass seq and nonce to publish tests

commit 685a146
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:11:34 2014 +0000

    remove sequencer from IntroducerClient clients

commit 6a72976
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:57:13 2014 +0000

    make test_web.Web.test_introducer_status pass

commit c9ea3db
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:41:21 2014 +0000

    move introducer list beneath server list

commit 553306f
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:38:00 2014 +0000

    display summary of connected introducers

commit d3bf41a
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:27:36 2014 +0000

    censor non-default introducer swissnums

commit d47c4f4
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:14:48 2014 +0000

    display number of connected introducers

commit fa6e701
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:04:18 2014 +0000

    s/server_key/node_key/; multiintro announce works!

commit 19af0c9
Author: David Stainton <dstainton415@gmail.com>
Date:   Sun Jan 12 18:36:26 2014 +0100

    Not working commit; missing NativeStorageClient or workaround...

commit 45e947e
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:46:17 2014 +0000

    begin cleaning up html/css for introducers table

commit 1ada606
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:12:30 2014 +0000

    temporary fix for stub_client announcements

commit 2a07d72
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 21:14:41 2014 +0000

    move introducers list down

commit 21da2ef
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:51:03 2014 +0000

    remove single-introducer censored furl

commit 1f9f423
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:17:00 2014 +0000

    fix allmydata.test.test_web.Web.test_GET_root_html

commit f4279ba
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 21:12:50 2014 +0100

    Fix syntax error and do not pass sequencer function...

commit 62260d2
Merge: 15cece7 dbd6555
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:53:55 2014 +0100

    Merge leif/ticket68 into david-68work

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit dbd6555
Merge: e1840f1 ebcf9e3
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 19:47:42 2014 +0000

    begin merging kytv/68-multi into ticket68

    note: this is a non-working state

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 15cece7
Merge: e1840f1 ebcf9e3
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:32:44 2014 +0100

    Merge remote-tracking branch 'killyourtv/68-multi' into david-68work

    Here we adapt the multi-introducer patch (ticket tahoe-lafs#68)
    to accomodate the new sequence number and nonce scheme from ticket #1767.
    We pass the current_seqnum and current_nonce into IntroducerClient's publish method
    instead of that publish method calling the passed in _sequencer function to generate
    that sequnum/nonce pair.

    Manually resolved conflicts in these files:
    	src/allmydata/client.py
            src/allmydata/introducer/client.py
            src/allmydata/introducer/interfaces.py
    Leaving these files to Leif's commit to be merged later:
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit ebcf9e3
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:29:03 2012 +0000

    color coded multiple introducer status

commit 46b74a9
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:08:15 2012 +0000

    multiple introducer support

    author: Faruq (original darcs patches available from
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68)
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 21, 2016
This is an almost-done work-in-progress. Testing and review is welcome here:
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68

The latest version of this branch can be found at
https://github.com/leif/tahoe-lafs/tree/introless-multiintro

Current TODO:
 - add some web tests

Squashed commit of the following:

commit 86f54a0
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 21 00:19:45 2016 +0000

    rv accidental change to comment in test_introducer

commit f8d3e8b
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 21 00:04:29 2016 +0000

    small fix to docs

commit 8fa8dca
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 20 23:00:08 2016 +0000

    fix/refactor test_multi_introducers

    these tests still have room for improvement but at least they pass again now

commit 4ce3e25
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 19:03:24 2016 +0000

    apply fixes from daira's review

    This addresses all of the issues daira mentioned here:
    1ae5aae
    plus a few small things I noticed.

commit ca90c06
Merge: 48b8a17 a2d724a
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 18 18:26:00 2016 +0000

    Merge branch 'master' into introless-multiintro

    Conflicts:
    	src/allmydata/test/test_util.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 86c1ce0
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 05:25:59 2016 +0000

    fix tests. removed mock-based test

    todo: add web test to replace removed mock test

commit 6c090d3
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:52:29 2016 +0000

    fix CSS

commit ef4f68f
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:40:48 2016 +0000

    cleanup, fix tests?

commit 1c0e816
Merge: c36724d 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Jan 7 04:06:49 2016 +0000

    first introless-multiintro merge of 2016

    Merge 1973.status-last-rx-rebased.8 into introless-multiintro-with-history,
    finally beginning to bring this branch up to date with the last year of
    upstream development. Tests do not yet pass. Probably doesn't even run.

    Conflicts:
    	docs/configuration.rst
    	src/allmydata/scripts/create_node.py
    	src/allmydata/test/test_util.py
    	src/allmydata/test/test_web.py
    	src/allmydata/util/time_format.py
    	src/allmydata/web/root.py
    	src/allmydata/web/static/css/new-tahoe.css
    	src/allmydata/web/welcome.xhtml
    	src/allmydata/webish.py

commit 6d6386e
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 19:58:55 2016 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
    previous pull request tahoe-lafs#129.

     - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")
     - fix colspan on 'You are not presently connected' message

    Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

    Unlike previous attempts, the tests on this one should pass in any timezone.
    (But like current master, will fail with Nevow >=0.12...)

    Thanks to an anonymous contributor who wrote some of the tests.

commit 559846c
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 4 16:00:59 2016 +0000

    wui: use standard time format (tahoe-lafs#1077)

commit c36724d
Merge: 486dbfc b5f44bf 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 23:44:24 2014 +0000

    multi-intro support with introless mode

    This is a 3-way merge combining work by several people, including:

     - Faruque Sarker - wrote the original multi-introducer patch in 2010
     - KillYourTV - ported multi-intro patch to Tahoe 1.8.x and 1.9.x
     - Brian Warner - began writing the introducerless mode
     - David Stainton - made introducerless mode work
     - Leif Ryge - ported to present, added introducerless config generator
     - Anonymous - wrote tests and fixed bugs

    The history of these patches is documented somewhat at
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68 and
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/467

    A few of the changes in this merge were picked out of the truckee branch into
    this commit, but most of the history is included here.

commit 486dbfc
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Nov 23 09:42:16 2014 +0000

    wui: improved columns in welcome page server list

    As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973

     - replace lengthy timestamps with human-readable deltas (eg 1h2m3s)
     - replace "Since" column with "Status" (addresses usability problem in #1961)
     - replace "announced" column with "Last RX" column
     - remove service column (it always said the same thing, "storage")

    This is a squashed commit of 3fe9053
    Thanks to an anonymous contributor who wrote some of the tests.

commit 24acc94
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Feb 8 11:09:04 2014 +0000

    add get_config to FakeClient to make test_web pass

commit 9c8ecfd
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 19:27:13 2014 +0000

    add web.reveal_storage_furls option

commit 079493c
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:31:47 2014 +0000

    fix introducerless storage servers

    it turns out the _publish method registers with the tub too, not just the
    introducer

commit 6043715
Author: Leif Ryge <leif@synthesize.us>
Date:   Fri Feb 7 17:11:37 2014 +0000

    remove use_introducer option, update docs

commit 2183067
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:14:57 2014 +0000

    remove seed and furl columns from server list

commit e555653
Author: Leif Ryge <leif@synthesize.us>
Date:   Thu Feb 6 21:11:56 2014 +0000

    add minimal /introducerless_config page

commit b5f44bf
Author: Leif Ryge <leif@synthesize.us>
Date:   Wed Jan 22 22:11:20 2014 +0000

    add get_since to MockIntroducerClient to fix test

commit ee01309
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:40:46 2014 +0000

    configuration.rst: introducers can be commented

commit afd697d
Author: Leif Ryge <leif@synthesize.us>
Date:   Tue Jan 21 01:36:58 2014 +0000

    allow lines in introducers file to be commented

    this patch was sent to me by an anonymous contributor

commit 1947a04
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 22:03:44 2014 +0100

    Teach client to talk to storage nodes in tahoe.cfg

commit 8ec0486
Author: David Stainton <dstainton415@gmail.com>
Date:   Wed Jan 15 14:28:58 2014 +0100

    Rough draft sketch of introducerless client

commit 11fd0e2
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 13:01:12 2014 +0000

    add "Since" column to introducers table

commit 93692eb
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 12:48:34 2014 +0000

    remove comment about empty nonce

    I think that for v1 announcements the seqnum and nonce are ignored anyway.

commit 50c4531
Author: Leif Ryge <leif@synthesize.us>
Date:   Mon Jan 13 11:15:57 2014 +0000

    connected_to_introducer -> connection_statuses

    Renaming this led to discovering a subtle bug in test.common - it was testing
    the truthiness of a list of bools, which is of course True when the list is
    [False].

commit aae5d84
Merge: fc1aaf8 04ed7d0
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 22:05:34 2014 +0000

    Merge branch 'master' into ticket68

commit fc1aaf8
Merge: 599ba20 db43528
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 21:26:46 2014 +0000

    Merge branch 'isolate-keygen-test' into ticket68

commit 599ba20
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:40:02 2014 +0000

    update docs about multiple introducers

commit 8d7e1b5
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:24:26 2014 +0000

    fix test_introducer.ClientSeqnums

commit 5eb40bd
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:15:43 2014 +0000

    pass seq and nonce to publish tests

commit 685a146
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 19:11:34 2014 +0000

    remove sequencer from IntroducerClient clients

commit 6a72976
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:57:13 2014 +0000

    make test_web.Web.test_introducer_status pass

commit c9ea3db
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:41:21 2014 +0000

    move introducer list beneath server list

commit 553306f
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:38:00 2014 +0000

    display summary of connected introducers

commit d3bf41a
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:27:36 2014 +0000

    censor non-default introducer swissnums

commit d47c4f4
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:14:48 2014 +0000

    display number of connected introducers

commit fa6e701
Author: Leif Ryge <leif@synthesize.us>
Date:   Sun Jan 12 18:04:18 2014 +0000

    s/server_key/node_key/; multiintro announce works!

commit 19af0c9
Author: David Stainton <dstainton415@gmail.com>
Date:   Sun Jan 12 18:36:26 2014 +0100

    Not working commit; missing NativeStorageClient or workaround...

commit 45e947e
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:46:17 2014 +0000

    begin cleaning up html/css for introducers table

commit 1ada606
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 22:12:30 2014 +0000

    temporary fix for stub_client announcements

commit 2a07d72
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 21:14:41 2014 +0000

    move introducers list down

commit 21da2ef
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:51:03 2014 +0000

    remove single-introducer censored furl

commit 1f9f423
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 20:17:00 2014 +0000

    fix allmydata.test.test_web.Web.test_GET_root_html

commit f4279ba
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 21:12:50 2014 +0100

    Fix syntax error and do not pass sequencer function...

commit 62260d2
Merge: 15cece7 dbd6555
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:53:55 2014 +0100

    Merge leif/ticket68 into david-68work

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit dbd6555
Merge: e1840f1 ebcf9e3
Author: Leif Ryge <leif@synthesize.us>
Date:   Sat Jan 11 19:47:42 2014 +0000

    begin merging kytv/68-multi into ticket68

    note: this is a non-working state

    Conflicts:
    	src/allmydata/client.py
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit 15cece7
Merge: e1840f1 ebcf9e3
Author: David Stainton <dstainton415@gmail.com>
Date:   Sat Jan 11 20:32:44 2014 +0100

    Merge remote-tracking branch 'killyourtv/68-multi' into david-68work

    Here we adapt the multi-introducer patch (ticket tahoe-lafs#68)
    to accomodate the new sequence number and nonce scheme from ticket #1767.
    We pass the current_seqnum and current_nonce into IntroducerClient's publish method
    instead of that publish method calling the passed in _sequencer function to generate
    that sequnum/nonce pair.

    Manually resolved conflicts in these files:
    	src/allmydata/client.py
            src/allmydata/introducer/client.py
            src/allmydata/introducer/interfaces.py
    Leaving these files to Leif's commit to be merged later:
    	src/allmydata/test/test_web.py
    	src/allmydata/web/root.py
    	src/allmydata/web/welcome.xhtml

commit ebcf9e3
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:29:03 2012 +0000

    color coded multiple introducer status

commit 46b74a9
Author: kytv <killyourtv@i2pmail.org>
Date:   Sat Feb 18 00:08:15 2012 +0000

    multiple introducer support

    author: Faruq (original darcs patches available from
    https://tahoe-lafs.org/trac/tahoe-lafs/ticket/68)
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 23, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
leif added a commit to leif/tahoe-lafs that referenced this pull request Jan 25, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull requests tahoe-lafs#129, tahoe-lafs#223, and tahoe-lafs#229.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: 3fe9053 , 486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12 due to
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2663 )

Thanks to an anonymous contributor who wrote some of the tests.

Including this one there are now 6 versions of this commit on the truckee
branch, two of which are on master. Hopefully this will be the last version
necessary!

I'm not a big fan of this git workflow :/
meejah pushed a commit to meejah/tahoe-lafs that referenced this pull request Jun 7, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: leif@3fe9053 , leif@486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
meejah pushed a commit to meejah/tahoe-lafs that referenced this pull request Jun 7, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: leif@3fe9053 , leif@486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
meejah pushed a commit to meejah/tahoe-lafs that referenced this pull request Jul 6, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: leif@3fe9053 , leif@486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
meejah pushed a commit to meejah/tahoe-lafs that referenced this pull request Jul 6, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: leif@3fe9053 , leif@486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
meejah pushed a commit to meejah/tahoe-lafs that referenced this pull request Aug 2, 2016
As discussed at https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1973 and in
previous pull request tahoe-lafs#129.

 - replace lengthy timestamps with human-readable deltas (eg 1h 2m 3s)
 - replace "announced" column with "Last RX" column
 - remove service column (it always said the same thing, "storage")
 - fix colspan on 'You are not presently connected' message

Previous versions, some with github comments: leif@3fe9053 , leif@486dbfc , and tahoe-lafs@c89ea62, tahoe-lafs@9fabb92, tahoe-lafs@bbd8b42

Unlike previous attempts, the tests on this one should pass in any timezone.
(But like current master, will fail with Nevow >=0.12...)

Thanks to an anonymous contributor who wrote some of the tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants