[Web-SIG] Specification process

Ian Bicking ianb at colorstudy.com
Wed Nov 1 19:47:58 CET 2006


Phillip J. Eby wrote:
> At 11:20 AM 11/1/2006 -0600, Ian Bicking wrote:
>> So I've got a couple specs out there that build on WSGI, and hopefully
>> other people will be introducing more.  These specs are (or should be)
>> fairly light and optional, suggesting useful compatibilities between
>> WSGI components rather than anything that changes WSGI itself.  So I
>> don't think we need a very heavy process, but we need some process.
>>
>> Does anyone have a suggestion?
> 
> My suggestion is that WSGI extensions should be proposed using a 
> proposer-owned namespace (e.g. "selector.vars" in the url_vars case), 
> and simply published by the proposer, with an announcement to the Web-SIG

That's a bit awkward.  There's no suggestion of any even light authority 
to such a specification.  Just a "hey, here's what I'm using".  I think 
we can do better than that.

If you are really uncomfortable with "wsgi." we can just use another 
namespace.  I don't want to use a namespace owned by a package; I feel 
strongly about that.  These specs are neutral ground.  But if we just 
specify a process associated with some new namespace (maybe "wsgiorg") 
that's fine with me.  If that means we can use a lighter process, I will 
eagerly use such a namespace.

> For actualy *standardization*, I think that there should be some 
> *positive* action from other people required.  Standardization implies 
> that something is useful and reasonably non-problematic, but I'm not 
> convinced that e.g. the POST parsing stuff that's currently on the table 
> is non-problematic.  I'd want to see actual *implementations* of the 
> proposal in a couple of widely-used frameworks before I'd consider it 
> standards-worthy.

By suggesting a quorum, which implies some minimum number of people who 
support a proposal, I was suggesting that some positive action be 
required.  This is largely intended to avoid specs going forward simply 
because no one cares or is paying attention.

> Frankly, I'd like to err on the side of TOO MUCH process for WSGI 
> extensions than too little.  There is very little need for many of the 
> extensions that get proposed, and often the proposals come with too high 
> a price tag attached.  Meanwhile, if a proposal is something useful, it 
> can *easily* become a defacto standard.
> 
> In fact, I think that further protocol standardization in WSGI is mostly 
> bad design at the community level.  We should encourage sharing 
> *implementations* first, before sharing interfaces.

There are implementations associated with both specifications.  There's 
no implementors of the specifications themselves, because the 
specifications didn't yet exist.  But there are things that should use 
the specification, if a specification existed.

> So, I'm at a very strong -1 on having a simple process for defining WSGI 
> extensions; the whole point of namespaced environ variables is to allow 
> you to define your *own*; there is really no reason for everything to be 
> named 'wsgi.something'.
> 
> 
>> Like I said, I don't want to make this a big complicated process,
> 
> I do.  :)  Well, actually, I suggest that there be a *really* simple 
> process: just publish your own specs under your own package namespace, 
> announce it to Web-SIG, and let other people use it if they like it.
> 
> But if you want to play in the wsgi.* namespace, it *should* be a big 
> complicated process.
> 
> 
>> People are always free to
>> ignore these specifications, so it's really just as much a matter of
>> getting a couple people to agree on some useful compatibility,
> 
> Great.  But let's please do it *outside* the wsgi.* namespace, and 
> remember that if you share *implementations*, you don't need to 
> duplicate any code, or have as much discussion about how stuff works 
> inside.  People will either like it or not, and use it or not.  That's 
> as low of a process bar as can be managed.

I'm trying to propose specifications that can usefully have more than 
one implementation (url vars), or where the implementation may be 
embedded in a larger existing system that does not currently make it 
easy to introduce a new dependency or factoring of the code (post form).

> It's probably the case that some people don't feel that their extension 
> is as valued by the community if it doesn't go in wsgi.*.  But that's 
> just their lack of self-esteem talking.  If I ever come up with WSGI 
> extensions, they're going to go under my name or a framework name.  If 
> two or three other frameworks copy me, *then* I might talk about 
> proposing adding it to the wsgi.* space, and I still wouldn't expect the 
> proposal to get a free pass from the Web-SIG just because it's me.
> 
> To be honest, I don't think that the routing_args thing is *really* 
> worthy of a wsgi.* namespace, it's just that with its problems fixed, 
> it's not so much of a threat that it's worth fighting over.  And to some 
> extent, I'm giving it a pass because it's you.  ;)  But if this is just 
> the start of a wave of people demanding that *their* extensions get in 
> too, then I'm all in favor of slamming the door on it to help keep the 
> rest out.
> 
> IMO, wsgi.* standardization needs a PEP-sized or stdlib-inclusion-sized 
> bar to it, since everyone is perfectly free to use their own namespaces 
> for extensions, even ones they intend to offer as published interfaces 
> for others to conform to.
> 
> 
>> and not
>> everything has to be universally applicable or useful.
> 
> If you're going to put it in 'wsgi.*', I think it must at least "do no 
> harm".  I'm okay with the wsgi.routing_args thing, because at worst it's 
> superfluous.  The POST stuff, I still think is dangerously likely to be 
> overused.

I call "consenting adults" on you here!  But anyway, I'm now more 
interested in the other direction I mentioned, attaching an attribute to 
wsgi.input that gives the decoded form.

> Overenthusiasm for standardization is dangerous at this stage of WSGI's 
> adoption.  WSGI itself is still not well-understood by the Python 
> developer audience at large; for example, a recent IBM Developerworks 
> article about WSGI contained some *serious* errors in its example 
> middleware, which was terribly non-compliant, as the author would've 
> seen if he'd run it with wsgiref.validate or paste.lint on both sides of 
> it.
> 
> I guess what I'm saying is, it's bloody hard enough sometimes just to 
> get people to write things that actually conform to the spec we have 
> now, without adding a bunch of new ones.  (Hell, we should probably 
> require that proposed "standard" extensions include patches to 
> wsgiref.validate that verify correct operation of the extensions!)

I think we are at a point when there are multiple people moving 
WSGI-based components forward from different directions, and we're ready 
to start cooperating at a higher level.  Obviously there are problems 
that can arise, which is why I would encourage peer review in this form.

And hey, we already have a rejected proposal!  (It didn't actually get 
as far as the mailing list, but it's on the website.)  So the system 
works, this isn't just about moving stuff through.

But ultimately if this turns into a cabal of like-minded WSGI-oriented 
individuals agreeing on things they think are interesting and useful, 
I'm actually okay with that.  I don't know if that reveals an inner 
dictatorial tendency, or just a desire for expedient forward movement 
that's otherwise hard to achieve when there's no umbrella project or 
hierarchy of concepts.

-- 
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org


More information about the Web-SIG mailing list