Skip to content

Commit

Permalink
Update to 0.9.1:
Browse files Browse the repository at this point in the history
* Release 0.9.1 (21-Sep-2015)

Point release to deal with PyPI upload problems. No code changes.


* Release 0.9.0 (21-Sep-2015)

** Plugins for Connection Handlers (#236)

New types of connection hints can now be used, by installing a suitable
connection handler into the Tub. These hints could point to I2P servers or
Tor hidden-service (.onion) addresses. The built-in TCP handler can be
replaced entirely to protect a client's IP address by routing all connections
through Tor. Implementation of these plugins are left as exercise for the
reader: Foolscap only provides the built-in "DefaultTCP" handler. See
doc/connection-handlers.rst for details.

** Shared Listeners are removed (#239)

Until this version, it was possible to create a single Listener that serviced
multiple Tubs (by passing the Listener returned from `l=tubA.listenOn(where)`
into `tubB.listenOn(l)`). This seemed useful a long time ago, but in fact was
not, and the implementation caused irreparable problems that were exposed
while testing the new connection handlers. So support for shared Listeners
has been removed: Tubs can still use multiple Listeners, but each Listener
now services at most one Tub. In particular, `Tub.listenOn()` now only
accepts a string, not a Listener instance.

Note that relays and redirects are still on the roadmap, but neither feature
requires sharing a Listener between multiple local Tubs.

** Extended-Form Connection Hints are removed

Support for extended-form connection hints has been removed. These were hints
with explicit key names like "tcp:host=example.org:port=12345", or
"tcp:example.org:timeout=30". They were added in the 0.7.0 release, but since
then we've realized that this is power that should not be granted to external
FURL providers.

The parser now only accepts "tcp:example.org:12345" and "example.org:12345".
Foolscap has never particularly encouraged applications to call
Tub.setLocation() with anything other than these two forms, so we do not
expect any compatibility problems.

** Option to Disable Gifts (#126)

"Gifts", more precisely known as "third-party reference introductions", occur
when one Tub sends you a message that includes a reference to some object on
a third Tub. This allows references to be passed around transparently,
without regard to which Tub they live on (yours, mine, or theirs), but allows
other Tubs to cause you to create network connections to hosts and ports of
their choosing. If this bothers you, the new `tub.setOption("accept-gifts",
False)` option instructs your Tub to reject these third-party references,
causing the calls that used them to signal a Violation error instead.

** Unreachable Tubs now fully supported (#208)

Unreachable "client-only" Tubs can be created by simply not calling either
`tub.listenOn()` nor `tub.setLocation()`. These Tubs can make outbound
connections, but will not accept inbound ones. `tub.registerReference()` will
throw an error, and Gifts delivered to third parties will not work.

Previous versions suggested using `tub.setLocation("")`: this is no longer
recommended.

** new util.allocate_tcp_port() function

To support a future deprecation of `Tub.listenOn("tcp:0")`, the new
allocate_tcp_port() function was added to return (synchronously) a
currently-unused TCP port integer. This can be used during app configuration
to decide on a listening port, which can then be passed into
`Tub.listenOn("tcp:%d" % portnum)`. This may allow Tub.setLocation() to be
called *before* the reactor is started, simplifying application startup code
(this also requires a suitable hostname or IP address, which is a separate
issue).

** Packaging/Dependency Changes

Foolscap now requires Twisted 10.1.0 or newer, to use Endpoints and
connection handler plugins.

Foolscap's logging system (specifically the twisted-to-foolscap bridge) is
now compatible with Twisted-15.2.0. The previous version had problems with
the new contents of twisted.logger's "eventDict" objects. (#235)
  • Loading branch information
wiz committed Sep 30, 2015
1 parent 9eb70ac commit 6214e43
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 7 deletions.
4 changes: 2 additions & 2 deletions net/py-foolscap/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.13 2015/04/19 18:22:00 wiz Exp $
# $NetBSD: Makefile,v 1.14 2015/09/30 19:24:35 wiz Exp $

DISTNAME= foolscap-0.8.0
DISTNAME= foolscap-0.9.1
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= net python
MASTER_SITES= http://pypi.python.org/packages/source/f/foolscap/
Expand Down
18 changes: 17 additions & 1 deletion net/py-foolscap/PLIST
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.5 2015/04/19 18:22:00 wiz Exp $
@comment $NetBSD: PLIST,v 1.6 2015/09/30 19:24:35 wiz Exp $
bin/flappclient
bin/flappserver
bin/flogtool
Expand Down Expand Up @@ -43,6 +43,12 @@ ${PYSITELIB}/foolscap/broker.pyo
${PYSITELIB}/foolscap/call.py
${PYSITELIB}/foolscap/call.pyc
${PYSITELIB}/foolscap/call.pyo
${PYSITELIB}/foolscap/connection.py
${PYSITELIB}/foolscap/connection.pyc
${PYSITELIB}/foolscap/connection.pyo
${PYSITELIB}/foolscap/connection_plugins.py
${PYSITELIB}/foolscap/connection_plugins.pyc
${PYSITELIB}/foolscap/connection_plugins.pyo
${PYSITELIB}/foolscap/constraint.py
${PYSITELIB}/foolscap/constraint.pyc
${PYSITELIB}/foolscap/constraint.pyo
Expand All @@ -55,6 +61,9 @@ ${PYSITELIB}/foolscap/crypto.pyo
${PYSITELIB}/foolscap/eventual.py
${PYSITELIB}/foolscap/eventual.pyc
${PYSITELIB}/foolscap/eventual.pyo
${PYSITELIB}/foolscap/furl.py
${PYSITELIB}/foolscap/furl.pyc
${PYSITELIB}/foolscap/furl.pyo
${PYSITELIB}/foolscap/ipb.py
${PYSITELIB}/foolscap/ipb.pyc
${PYSITELIB}/foolscap/ipb.pyo
Expand Down Expand Up @@ -190,6 +199,9 @@ ${PYSITELIB}/foolscap/test/test_banana.pyo
${PYSITELIB}/foolscap/test/test_call.py
${PYSITELIB}/foolscap/test/test_call.pyc
${PYSITELIB}/foolscap/test/test_call.pyo
${PYSITELIB}/foolscap/test/test_connection.py
${PYSITELIB}/foolscap/test/test_connection.pyc
${PYSITELIB}/foolscap/test/test_connection.pyo
${PYSITELIB}/foolscap/test/test_copyable.py
${PYSITELIB}/foolscap/test/test_copyable.pyc
${PYSITELIB}/foolscap/test/test_copyable.pyo
Expand Down Expand Up @@ -250,6 +262,9 @@ ${PYSITELIB}/foolscap/test/test_sturdyref.pyo
${PYSITELIB}/foolscap/test/test_tub.py
${PYSITELIB}/foolscap/test/test_tub.pyc
${PYSITELIB}/foolscap/test/test_tub.pyo
${PYSITELIB}/foolscap/test/test_unreachable.py
${PYSITELIB}/foolscap/test/test_unreachable.pyc
${PYSITELIB}/foolscap/test/test_unreachable.pyo
${PYSITELIB}/foolscap/test/test_util.py
${PYSITELIB}/foolscap/test/test_util.pyc
${PYSITELIB}/foolscap/test/test_util.pyo
Expand All @@ -262,6 +277,7 @@ ${PYSITELIB}/foolscap/util.pyo
${PYSITELIB}/foolscap/vocab.py
${PYSITELIB}/foolscap/vocab.pyc
${PYSITELIB}/foolscap/vocab.pyo
share/doc/py-foolscap/connection-handlers.rst
share/doc/py-foolscap/copyable.rst
share/doc/py-foolscap/failures.rst
share/doc/py-foolscap/flappserver.rst
Expand Down
8 changes: 4 additions & 4 deletions net/py-foolscap/distinfo
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
$NetBSD: distinfo,v 1.7 2015/04/19 18:22:00 wiz Exp $
$NetBSD: distinfo,v 1.8 2015/09/30 19:24:35 wiz Exp $

SHA1 (foolscap-0.8.0.tar.gz) = abdf59b3f981717b9acfc18f7c867f2158df95df
RMD160 (foolscap-0.8.0.tar.gz) = 95b835c83b62477761eef5824258df76e5d886c2
Size (foolscap-0.8.0.tar.gz) = 475062 bytes
SHA1 (foolscap-0.9.1.tar.gz) = 480ca30dffff0d86da1a4a1d88f1a510ea999be2
RMD160 (foolscap-0.9.1.tar.gz) = 05c6b63bbc1b6ea7c2f9c3128192f025c3cbbf77
Size (foolscap-0.9.1.tar.gz) = 488628 bytes

0 comments on commit 6214e43

Please sign in to comment.