Opened 9 years ago

Closed 9 years ago

#240 closed defect (wontfix)

reinstate "extra" named `foolscap[secure_connections]`

Reported by: Brian Warner Owned by:
Priority: minor Milestone: 0.9.0
Component: packaging Version: 0.7.0
Keywords: Cc:

Description

Once upon a time, Foolscap was able to run in a non-secure mode, without the OpenSSL library. Applications which wanted this non-secure mode would use install_requires=["foolscap"] in their setup.py, which would let them import UnauthenticatedTub but not the normal (authenticated) Tub.

If they wanted secure connections, they needed to depend upon foolscap[secure_connections] instead, which triggered the setuptools "extras" feature. "Extras" allow package A to say "I want to use package B, plus some special B+ feature that isn't the default". They also allow package B to say "if someone wants B+, then I'm gonna need to depend on C in addition to my usual dependencies". B expresses this with an extras_require={"secure_connections": ["pyOpenSSL"]} line in setup.py.

Foolscap versions 0.2.8 through 0.6.3 (inclusive) recognized the secure_connections extra. It was removed in 0.6.4 because it was unreliable (#174). Foolscap-0.8.0 made the SSL dependency mandatory, and removed UnauthenticatedTub.

Tahoe versions 1.3.0 through 1.8.2 (inclusive) depended on foolscap[secure_connections]. Tahoe-1.9.0 removed the extra, because at that point the current Foolscap release did not recognize it, which caused builds to break (as they were unable to satify the requirement).

I'm thinking that maybe we ought to bring back the flag, for the benefit of folks trying to build older versions of Tahoe against the current version of Foolscap. Sometimes I do this for comparative/historical performance tests, and it's a nuisance to edit the old Tahoe trees to comment out the flag.

Change History (2)

comment:1 Changed 9 years ago by Brian Warner

Huh. On the other hand, I just did a pip install foolscap[secure_connections] in a new virtualenv, and it installed the current 0.8.0 without complaint.

comment:2 Changed 9 years ago by Brian Warner

Resolution: wontfix
Status: newclosed

I haven't tested it by trying to install older tahoes, but I noticed that "pip install" emitting a note that said "foolscap 0.8.0 does not provide the extra 'secure_connections'", so I'm going to assume that modern pip has some kind of "best effort" policy that allows the install to proceed even without the "extra" being offered. That's good enough for my purposes. Closing this as a WONTFIX.

Note: See TracTickets for help on using tickets.