[tap] Rethinking the TAP version

Michael G Schwern <schwern@pobox.com> Thu, 19 February 2009 23:57 UTC

Return-Path: <schwern@pobox.com>
X-Original-To: tap@core3.amsl.com
Delivered-To: tap@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D5C4C28C232 for <tap@core3.amsl.com>; Thu, 19 Feb 2009 15:57:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NPqIB21iOL5Q for <tap@core3.amsl.com>; Thu, 19 Feb 2009 15:57:03 -0800 (PST)
Received: from sasl.smtp.pobox.com (a-sasl-quonix.sasl.smtp.pobox.com [208.72.237.25]) by core3.amsl.com (Postfix) with ESMTP id C783D28C21C for <tap@ietf.org>; Thu, 19 Feb 2009 15:57:03 -0800 (PST)
Received: from localhost.localdomain (unknown [127.0.0.1]) by b-sasl-quonix.sasl.smtp.pobox.com (Postfix) with ESMTP id 3A82B2B810 for <tap@ietf.org>; Thu, 19 Feb 2009 18:57:16 -0500 (EST)
Received: from windhund.local (unknown [75.150.41.177]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by b-sasl-quonix.sasl.smtp.pobox.com (Postfix) with ESMTPSA id B2C0B2B80F for <tap@ietf.org>; Thu, 19 Feb 2009 18:57:15 -0500 (EST)
Message-ID: <499DF1D6.9020009@pobox.com>
Date: Thu, 19 Feb 2009 15:57:10 -0800
From: Michael G Schwern <schwern@pobox.com>
User-Agent: Thunderbird 2.0.0.19 (Macintosh/20081209)
MIME-Version: 1.0
To: tap@ietf.org
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-Pobox-Relay-ID: 08F33168-FEE1-11DD-A55B-6F7C8D1D4FD0-02258300!a-sasl-quonix.pobox.com
Subject: [tap] Rethinking the TAP version
X-BeenThere: tap@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Test Anything Protocol WG discussions <tap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tap>, <mailto:tap-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tap>
List-Post: <mailto:tap@ietf.org>
List-Help: <mailto:tap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tap>, <mailto:tap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Feb 2009 23:57:04 -0000

After I was the one who pushed for a simple integer TAP version, I now want to
argue for an X.Y format.  Why?

In Oslo we went nuts trying to figure out a syntax for sub-plans that was
elegant and backwards compatible.  By "backwards compatible" I mean that the
suite passes and fails in the same way.  Diagnostic information may be lost,
and even individual test results may be lost, but you still get that critical
pass/fail across all versions.

I see this becoming more and more of a problem as time goes on.  At some
point, we're either going to want to break compatibility or the protocol will
stagnate and die.

I propose that the version number change to X.Y where X indicates the
compatibility series and Y indicates an incremental, but still compatible,
revision.  Everything that can read protocol 2.0 can read 2.1 and 2.13 and
2.99 but if a 2.x parser sees 3.1 it knows it can't handle it and can act
appropriately.  Similarly, a 2.x parser is not guaranteed to be able to read 1.x.

This gives us a lot more latitude for future change.  It enables a sane
deprecation cycle.  It allows readers to explicitly know what it can and can
not handle.  It lets us correct some of the mistakes of the past and build on
our experience for the future.

Can I get some +1s?


PS  My objection to X.Y versions has always been that what X and Y mean
changes from person to person [1], so you can't reliably convey any meaning,
and humans aren't going to check to see what it means for YOUR particular
project.  But we can define what X and Y mean in the protocol, and we have a
program to interpret it.  No ugly flesh bags need be consulted.


[1] http://use.perl.org/~schwern/journal/35127


-- 
I do have a cause though. It's obscenity. I'm for it.
    - Tom Lehrer