Subject: [hybi] WebSocket Version Numbers

From: "Bob Gezelter" <[email-masked]>
Date: Tue, 21 Jun 2011 06:10:36 -0700

I?aki, Julian, Salvatore, and all,

Some may consider version number information an anti-pattern, but I
believe that this belief is misplaced.

Version numbering becomes a problem when it is a stalking horse for poor
design and very incompatible dialects. It is these fundamental
incompatibilities that are the true anti-pattern. Properly implemented
version number identification is an important tool for troubleshooting
problems caused by the need to maintain backward compatible operations
with a wide collection of client and server systems, who almost
certainly cannot be upgraded on a synchronized schedule.

Indeed, systems that externally implement version number based
restrictions experience far fewer problems than systems without such
checks.

I would suggest that the final accepted RFC use a major/minor revision
scheme of 1.0. A future RFC would have a revision number of 2.0.
Intermediate drafts would have a minor version increment (e.g., 1.1,
1.2, ...).

- Bob Gezelter, http://www.rlgsc.com

---

From: Iñaki Baz Castillo <[email-masked]>
Date: Tue, 21 Jun 2011 15:41:33 +0200

> Intermediate drafts would have a minor version increment (e.g., 1.1,

When you say "a future RFC would have a revision number of 2.0" I hope
you are talking after not less than 10 years ;)

-- 
Iñaki Baz Castillo
<[email-masked]>

---

From: Peter Saint-Andre <[email-masked]>
Date: Tue, 21 Jun 2011 07:56:14 -0600

> Intermediate drafts would have a minor version increment (e.g., 1.1,

Once again I recommend borrowing from the text in RFC 6120 if
appropriate, see Section 4.7.5...

###

   The numbering scheme for XMPP versions is "<major>.<minor>".  The
   major and minor numbers MUST be treated as separate integers and each
   number MAY be incremented higher than a single digit.  Thus, "XMPP
   2.4" would be a lower version than "XMPP 2.13", which in turn would
   be lower than "XMPP 12.3".  Leading zeros (e.g., "XMPP 6.01") MUST be
   ignored by recipients and MUST NOT be sent.

   The major version number will be incremented only if the stream and
   stanza formats or obligatory actions have changed so dramatically
   that an older version entity would not be able to interoperate with a
   newer version entity if it simply ignored the elements and attributes
   it did not understand and took the actions defined in the older
   specification.

   The minor version number will be incremented only if significant new
   capabilities have been added to the core protocol (e.g., a newly
   defined value of the 'type' attribute for message, presence, or IQ
   stanzas).  The minor version number MUST be ignored by an entity with
   a smaller minor version number, but MAY be used for informational
   purposes by the entity with the larger minor version number (e.g.,
   the entity with the larger minor version number would simply note
   that its correspondent would not be able to understand that value of
   the 'type' attribute and therefore would not send it).

###

Peter

-- 
Peter Saint-Andre
https://stpeter.im/

---

From: Greg Wilkins <[email-masked]>
Date: Wed, 22 Jun 2011 09:40:24 +1000

> appropriate, see Section 4.7.5...

+1

although I think we must now also say that a single integer should
considered a minor version with major version being 0.
So 8 == 0.8

cheers

---

From: Ian Fette (イアンフェッティ) <[email-masked]>
Date: Tue, 21 Jun 2011 18:21:03 -0700

Is there any real reason for using major and minor version numbers? Has any
protocol actually been able to use minor version numbers for anything useful
(e.g. both sides understand the major version but only one side understands
the minor version and it's still useful? 1.1 was a minor version upgrade to
HTTP and yet for all practical purposes it may as well have been 2.0.)

On Tue, Jun 21, 2011 at 4:40 PM, Greg Wilkins <[email-masked]> wrote:

> _______________________________________________
> hybi mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/hybi
>

---

From: Julian Reschke <[email-masked]>
Date: Wed, 22 Jun 2011 08:06:24 +0200

On 2011-06-22 03:21, Ian Fette (イアンフェッティ) wrote:
> Is there any real reason for using major and minor version numbers? Has
> any protocol actually been able to use minor version numbers for
> anything useful (e.g. both sides understand the major version but only
> one side understands the minor version and it's still useful? 1.1 was a
> minor version upgrade to HTTP and yet for all practical purposes it may
> as well have been 2.0.)

Hmm, no. HTTP reserves major version number changes to changes that 
affect the message format. HTTP/1.1 consumers are not expected to parse 
HTTP/2.0 messages.

Best regards, Julian