[Web-SIG] PEP 444 != WSGI 2.0

Alice Bevan–McGregor alice at gothcandy.com
Sun Jan 2 10:02:34 CET 2011


Graham,

> GothAlice (don't know off hand there real name), keeps going around and 
> claiming:

Alice Zoë Bevan-McGregor.  If the unicode in my newsreader doesn't 
work, that's an e with an umlaut.

> I have pointed out a couple of times to them that there is no way that 
> PEP 444 has been blessed as being the official WSGI 2.0 but they are 
> not listening and are still repeating this claim. They can't also get 
> right that PEP 3333 clearly says it is still WSGI 1.0 and not WSGI 1.1.

Interestingly, we're both wrong.  PEP 3333 clearly states it's WSGI 
1.0.1 -- it's in the title.  My excuse is 60 hours straight of sleep 
depravation over the holidays.  ;)

> Because for all we know right now what will be WSGI 2.0 may look a lot 
> different to what PEP 444 is now.

That's not a technical reason against, that's a reason to step in and 
help shape the future.

> Already they have taken the original PEP 444 that was put out by Chris, 
> and which had never actually been updated based on feedback on the 
> Python WEB-SIG list to address perceived shortcomings, and started 
> injecting his own ideas on top of it without any real consultation with 
> those on the WEB-SIG who have had a lot of experience with all this 
> stuff.

I, too, have a fair amount of experience with WSGI, having utilized a 
nubmer of alternate frameworks, worked around several common issues, 
ripped apart the top 10 HTTP servers to examine their inner workings, 
torn apart a framework or two, written a performant HTTP/1.1 server 
against both the published PEP 444 draft and my rewrite, and have 
written my own framework used on a number of production deployments in 
at least four countries.

If you'll pardon the expression, it's not like I'm a random ass-hat off 
the street with two weeks of Python experience.

> Thus what he is working on is a very fluid specification that keeps 
> changing. Ie., it is thus a work in progress, yet the way they talk 
> about it is if it already is the official WSGI 2.0 specification when 
> it is still no more than a bunch of ideas of what could be done.

"He" and "they."  Better than "it", I suppose, though last time I 
checked I'm not "people". ;P

It's a draft PEP.  Looking at it, it prominently states at the top of 
both the published and rewritten versions: draft.  Pretty much any time 
I mention my rewrite of it (for clearer RFC-style language and 
disambiguation) I either explicitly call it a "draft" or use language 
indicative of a work in progress.

> [snip] Don't do this and all you do is cause ongoing confusion in the 
> community as to what WSGI 2.0 is given that the definition of what it 
> may be keeps changing.

>From a comment I made on your blog:

> PEP 3333 is a simple-to-implement organic evolution of PEP 333, and 
> thus requires (or should require) little work on the part of the WSGI 
> application developer or WSGI server author. PEP 444 is a clean break.

And further elaborated in further comments:

> PEP 3333 can do a lot of good while maintaining gross compatibility 
> between Py2K and 3K with the same WSGI1 API across both. Also as stated 
> before, PEP 3333 should be ratified As Soon As Possible™. The support 
> is there from the developers implementing it, the implementation is a 
> refinement of PEP 333 w/ clarifications, and all can be happy.
> 
> PEP 444 / WSGI 2 is completely different in goals and approach.

I think it's fairly clear that 3333 is closer to ratification and 
simpler to migrate to, and is a clear way forward for the short- to 
mid-term.

> I also have a various technical issues with the original WSGI 
> specification and they aren't being addressed in PEP 444 from what I 
> have seen so far, as well as having issues with new things in PEP 444.

Have you read my draft rewrite? [1] It incorporates solutions to a 
number of the problems you have described in various articles on your 
blog.  In fact, it's modeled fairly heavily after your "definition 4" 
and its use of native strings.

> I have blogged and posted on the WEB-SIG list about a number of them 
> and am now starting to get back into documenting what some of those 
> other issues are.

I look forward to further input.

> Overall though, I believe a big step needs to be taken back and fresh 
> look at this stuff needs to be made.

That was the goal of the rewrite.  PEP 444 / web3 as published on the 
Python website does fail to solve a number of problems.

> It needs to be cast into the greater context of how we deploy this 
> stuff as well, otherwise deployment is going to continue to be a PITA 
> with all the systems using different ways when there could be a better 
> level of compatibility across them all to make deployment easier.

Deployment isn't really the domain of the web interface API; we have 
distribute, pypi, eggs, etc., etc. for literal package distribution 
(including deployment).  I think a separate PEP should be used to 
describe, say, entry point-based high-level deployment similar to 
PasteDeploy, as an example.

	- Alice

[1] http://bit.ly/e7rtI6




More information about the Web-SIG mailing list