Changeset 463:35859e1caf5e

Show
Ignore:
Timestamp:
08/04/08 23:09:53 (5 months ago)
Author:
"Brian Warner <warner@lothar.com>"
branch:
default
Message:

NEWS: update for the upcoming release

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ChangeLog

    r462 r463  
    112008-08-04  Brian Warner  <warner@lothar.com> 
     2 
     3        * NEWS: update for the upcoming release 
    24 
    35        * foolscap/referenceable.py (RemoteReferenceOnly.getRemoteTubID): 
  • NEWS

    r425 r463  
    11User visible changes in Foolscap (aka newpb/pb2).           -*- outline -*- 
     2 
     3* Release 0.3.0 (04 Aug 2008) 
     4 
     5** Compatibility: same as 0.2.6 
     6 
     7The wire-level protocol remains the same as other recent releases. 
     8 
     9The new incident-gatherer will only work with applications that use Foolscap 
     100.3.0 or later. 
     11 
     12** logging improvements 
     13 
     14The "incident gatherer" has finally been implemented. This is a service, like 
     15the log-gatherer, which subscribes to an application's logport and collects 
     16incident reports: each is a dump of accumulated log messages, triggered by 
     17some special event (such as those above a certain severity threshold). The 
     18"flogtool create-incident-gatherer" command is used to create one, and twistd 
     19is used to start it. Please see doc/logging.xhtml for more details. 
     20 
     21The incident publishing API was changed to support the incident-gatherer. The 
     22incident-gatherer will only work with logports using foolscap 0.3.0 or newer. 
     23 
     24The log-publishing API was changed slightly, to encourage the use of 
     25subscription.unsubscribe() rather than publisher.unsubscribe(subscription). 
     26The old API remains in place for backwards compatibility with log-gatherers 
     27running foolscap 0.2.9 or earlier. 
     28 
     29The Tub.setOption("log-gatherer-furlfile") can accept a file with multiple 
     30FURLs, one per line, instead of just a single FURL. This makes the 
     31application contact multiple log gatherers, offering its logport to each 
     32independently, e.g. to connect to both a log-gatherer and an 
     33incident-gatherer. 
     34 
     35** API Additions 
     36 
     37RemoteReferences now have a getRemoteTubID() method, which returns a string 
     38(base32-encoded) representing the secure Tub ID of the remote end of the 
     39connection. For any given Tub ID, only the possessor of the matching private 
     40key should be able to provide a RemoteReference for which getRemoteTubID() 
     41will return that value. I'm not yet sure if getRemoteTubID() is a good idea 
     42or not (the traditional object-capability model discourages making 
     43access-control decisions on the basis of "who", instead these decisions 
     44should be controlled by "what": what objects do they have access to). This 
     45method is intended for use by application code that needs to use TubIDs as an 
     46index into a table of some sort. It is used by Tahoe to securely compute 
     47shared cryptographic secrets for each remote server (by hashing the TubID 
     48together with some other string). 
     49 
     50Note that the rref.getSturdyRef() call (which has been present in Foolscap 
     51since forever) is *not* secure: the remote application controls all parts of 
     52the sturdy ref FURL, including the tubid. A future version of foolscap may 
     53remedy this. 
     54 
     55** Bug fixes 
     56 
     57The log-gatherer FURL can now be set before Tub.setLocation (the connection 
     58request will be deferred until setLocation is called), and 
     59getLogPort/getLogPortFURL cannot be called until after setLocation. These two 
     60changes, in combination, resolve a problem (#55) in which the gatherer 
     61connection could be made before the logport was ready, causing the 
     62log-gatherer to fail to subscribe to receive log events. 
     63 
     64** Dependent Libraries 
     65 
     66Foolscap uses PyOpenSSL for all of its cryptographic routines. A bug (#62) 
     67has been found in which the current version of Twisted (8.1.0) and the 
     68current version of PyOpenSSL (0.7) interact badly, causing Foolscap's unit 
     69tests to fail. This problem will affect application code as well 
     70(specifically, Tub.stopService will hang forever). The problem only appears 
     71to affect the selectreactor, so the current recommended workaround is to run 
     72unit tests (and applications that need to shut down Tubs) with --reactor=poll 
     73(or whatever other reactor is appropriate for the platform, perhaps iocp). A 
     74less-desireable workaround is to downgrade PyOpenSSL to 0.6, or Twisted to 
     75something older. The Twisted maintainers are aware of the problem and intend 
     76to fix it in an upcoming Twisted release. 
     77 
    278 
    379* Release 0.2.9 (02 Jul 2008)