We’re Guus & Dan, and we’re proud to announce that NLNet have chosen to sponsor a project of interoperability tests for the XMPP ecosystem.
We’ve both been involved with the XMPP Standards Foundation (the XSF) and seen that client A talks like this, whilst client B talks almost exactly the same. An extra attribute here, and includes that extra optional bit there. Most servers don’t behave differently because of this, but server X stores something slightly differently, and server Y rejects the stanza from one of the clients under certain conditions.
The only way to avoid this is to have agreed sets of behaviours. But we’ve already got them. The XMPP Standards Foundation is home to all of the standards, reviewed by the community and approved by the council, published and maintained over time. So what’s the problem? Well, through thousands upon thousands of lines of specification of optional features, very occasionally things conflict, but more often it’s the optional nature of the standards that create conflicts. Where standards SHOULD or MAY rather than MUST, then you don’t just get variation in implementation, but variation in the intended implementation of the various developers.
We intend to write standards-based conformance tests that can be used in build systems by XMPP server implementations, agnostic of language or style. This project will allow developers to understand where they diverge, and will be open to expansion by the various projects and contributors, and will aid the shared understanding of our standards and improve the ecosystem for everyone.
Splash image courtesy of Andy Hermawan, Unsplash