[Standards] A Meta-Discussion about the Standards Process

Kevin Smith kevin.smith at isode.com
Thu Dec 12 10:09:31 UTC 2019


On 12 Dec 2019, at 09:22, Dave Cridland <dave at cridland.net> wrote:
> 
> Many moons past, we had a clever idea.
> 
> What we thought was that we should change the XML namespace system we used - previously, XEPs had been allocated a namespace when adopted, and they stuck with this namespace throughout. Sometimes this broke things during Experimental (indeed, if a XEP had to change in Draft, it'd break things then, too). As a result, people were very shy of implementing anything in Experimental, and this was a problem. Also a problem was that people who did take the plunge on Experimental could end up affecting people who had waited for Draft.
> 
> We initially changed it to a URN, "urn:xmpp:tmp:XYZ". This meant that we could go wild during Experimental, but then change to "urn:xmpp:XYZ" on Draft, stabilising the XEP. While this meant that people who waited for Draft were fine, it still meant that using a "tmp" namespace was a wild west.
> 
> Our final change was that we introduced "versioned" namespaces. Essentially, we stopped being so proud about the final namespace, and just used a prefix to generate new namespaces for a XEP, changing the namespace any time an incompatible change was introduced. We've got so used to this we often change namespace when we shouldn't, frankly, but it's still better than the wild west.
> 
> The effect this has had, though, goes beyond merely allowing safe Experimentation during Experimental - instead, we've a number of XEPs that Council has "allowed in", but have resulted in such widespread implementation and deployment during Experimental that we cannot meaningfully change them without heavy disruption. Meanwhile, the "rules", such as they are, for adopting Experimental do not really reflect that people can safely implement and deploy, from an interoperability point of view. This has lead to another problem, wherein XEPs are adopted in a rough state, but stay rough and the proponents of the XEP never bother changing the XEP. I could give concrete examples of both cases, but I suspect that would only serve to debate whether these are indeed correct - instead I'll leave people to make up their own minds. In any case, the effect of this has been that Council are quite reticent about adopting Experimental XEPs.
> 
> To address these problems, I see several possibilities. I'm putting these in no particular order, because I'm personally conflicted on which, if any, are the right solution, but I hope these can be an interesting start point.
> 
> 1) The "Florian Plan" - introduce a phase prior to Experimental, wherein a XEP is semi-adopted but remains without a number. This somewhat happens anyway, but it does so outside our IPR rules, so arguably this is a case of formalizing the status quo to some degree. On the other hand, it abandons anything Experimental about Experimental. I'm calling this the Florian Plan just because Florian Schmaus has been a vocal proponent - but he's far from the only one.
> 
> 2) The "Daniel Plan", which is to encourage Council to adopt pretty well anything. If this sounds radical to you, it might help if I described it as simply reimposing the de-jure standards process as described in XEP-0001. I can certainly see the attraction, but I also think it ignores the status quo and the problems alluded to above. Most recently suggested by Daniel Gultsch.
> 
> 3) Something Else. We could introduce an additional phase *with* a number, for example, or we could decide the problems are outliers and do nothing.
> 
> While I don't have any particular opinion about what solution, if any, to choose, I do think we have to address a couple of issues:
> 
> a) We have to define what our standards process actually is. I don't mind if that means we change our standards process to match our documentation, or we change the documentation to match the process, or a mixture.
> 
> b) We have to, in particular, codify what each transition means, and therefore tighten up Council's veto-for-any-reason here. I don't mean that we remove any judgement calls on the part of Council, but I do mean that we should create a yardstick on what constitutes a "usual" versus "unusual" veto.
> 
> Finally, whatever we choose, we should make that choice by considering carefully the outcome we desire. The namespace changes we made - which contributed to the current state - were made in good faith, and we never foresaw what effect they'd have over the years.
> 
> Thanks for reading this wall of text,

To my mind, given where we are, I don’t see a way out of this unless we have a stage of the process where we can accept under XSF IPR something that we know needs significant changes before it’s advancable. I believe that having such things published is good, but we don’t currently have such a space (we do on paper - Experimental - but as you say, reality is far removed from this). I think this stage of the process needs to be clearly (to an outside observer not intimate with XSF lore) distinct from other stages (Experimental falls foul of this, and I’m not convinced it’s because of the xmlns change you refer to, although it doesn’t help (this)).

I don’t like what you’re referred to as the Florian Plan much - we have Experimental and we should damn well use it correctly! - but I am coming to the conclusion that it is the pragmatic thing to do. It could be as simple, incidentally, as using the inbox for it, and just asking for IPR on submission, rather than on acceptance as a XEP, and fall entirely within our existing formal process. It’s published on xmpp.org, it has a reference (which isn’t numbered - desirable here, I think). We could call it ‘protoXEP’ :)

I think that yet another XEP (Reactions) that we’re having to do the Wrong Thing with because reality doesn’t match what was expected when the stages were devised means that this is the Right Conversation to be having now. So thanks for the wall of text.

/K


More information about the Standards mailing list