<br><br><div>On Sat Mar 22 2014 at 8:55:36 PM, Nick Coghlan <<a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 23 March 2014 10:08, Antoine Pitrou <<a href="mailto:solipsis@pitrou.net" target="_blank">solipsis@pitrou.net</a>> wrote:<br>
> On Sat, 22 Mar 2014 23:54:37 +0100<br>
> Thomas Wouters <<a href="mailto:thomas@python.org" target="_blank">thomas@python.org</a>> wrote:<br>
>><br>
>> Or not rely on the standard library for their security. Much as I realize<br>
>> it is necessary for rudimentary SSL support (for example) to exist in the<br>
>> standard library,<br>
><br>
> Unfortunately, "rudimentary SSL support" is worse than nothing.<br>
<br>
I'm going to try to find a way to steal that line and get it into the<br>
PEP. I'm not sure yet if my proposal is the *right* answer, but this<br>
observation gets right to the heart of the problem that actually needs<br>
to be solved.<br>
<br>
I'd actually welcome a competing PEP that seriously explored<br>
separating out the relevant parts of the Python 3.4 standard library<br>
as a PyPI project and attempted to tackle the problem by making that<br>
available at least as far back as 2.7 and then just deprecating the<br>
leaking batteries in the 2.7 standard library.<br></blockquote><div><br></div><div>Now I have been reading this thread on my phone and I only have cursory understanding of what failure ssl has had as of late, so this might be stupid, but what if in Python 3.5 we made it so people passed in an explicit SSL object into the relevant APIs and threw an exception if one wasn't provided when trying to access something requiring SSL? Then the ssl module would start existing on PyPI to make sure it can evolve faster than every 18 months?</div>
<div><br></div><div>I know this doesn't help older APIs but it would make it rather explicit going forward that if you want security you need the latest thing and that's found on PyPI so it would at least solve the issue for the future which is better than nothing. We could try to provide matching APIs that monkey-patch older versions of Python if that's so desired to make this backwards-compatible, but as we all know that can be rather brittle.</div>
<div><br></div><div>-Brett</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Just because I think that approach would be even more work and even<br>
more disruptive than what I propose in PEP 466, doesn't mean it isn't<br>
a better idea overall.<br>
<br>
What we have essentially found is that where we could basically get<br>
away with an 18 month update cycle for improved network security<br>
support (extended out to a few years by certain major platform<br>
vendors), that approach *isn't* working when it comes to putting a<br>
feature release into long term maintenance mode. I don't think the<br>
situation isn't critical yet, but it's getting close, and I think we<br>
need to deal with it within the 12 months (and preferably sooner than<br>
that).<br>
<br>
My PEP proposes one way of addressing the challenge: allowing a wider<br>
variety of changes in maintenance releases to reduce the variance in<br>
capability in this area.<br>
<br>
Moving the affected modules out of the standard library proper and<br>
bundling the critical ones along with pip instead is indeed another<br>
alternative. However, that approach introduces additional issues of<br>
its own - I'll cover some of them in the next PEP update, but it would<br>
be good to have someone explicitly trying to make the case that a PyPI<br>
backport would be simpler for the overall ecosystem than my suggested<br>
approach.<br>
<br>
Cheers,<br>
Nick.<br>
<br>
<br>
--<br>
Nick Coghlan   |   <a href="mailto:ncoghlan@gmail.com" target="_blank">ncoghlan@gmail.com</a>   |   Brisbane, Australia<br>
______________________________<u></u>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org" target="_blank">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" target="_blank">https://mail.python.org/<u></u>mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/brett%40python.org" target="_blank">https://mail.python.org/<u></u>mailman/options/python-dev/<u></u>brett%40python.org</a><br>
</blockquote>