Re: [calsify] JSContact and Versioning

Michael Douglass <mikeadouglass@gmail.com> Sun, 07 January 2024 19:22 UTC

Return-Path: <mikeadouglass@gmail.com>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 27073C14F60B for <calsify@ietfa.amsl.com>; Sun, 7 Jan 2024 11:22:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id us0X5kRLjEjo for <calsify@ietfa.amsl.com>; Sun, 7 Jan 2024 11:22:33 -0800 (PST)
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 41844C14F60A for <calsify@ietf.org>; Sun, 7 Jan 2024 11:22:33 -0800 (PST)
Received: by mail-qt1-x82a.google.com with SMTP id d75a77b69052e-42987bc95ffso8801321cf.1 for <calsify@ietf.org>; Sun, 07 Jan 2024 11:22:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704655352; x=1705260152; darn=ietf.org; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=itoEHo9tKK8kxIdFu/m0ykf1gxXak4Guj+Sz/y2T0zA=; b=WsvqXGAfN0VZLXfoOgvwQ1KNNvJE5JvNG+9USRT4XLy28MyIX5wYouinDGBdHEQpfF jHQCjz+72h+UdlLuB95b2Ya0K9YWX7r70GzRaGGvb3zpdwfVlQTAELY8sEqZLXjFUj15 jSyP6BkzDMGsqMSmdsSD5on2sAx6JBtWsqwWmTw2blQJBVPywTN5XKvltbnJ9Wnbt/mX 2YQfoB6Lf2RC8xrPXOeuv1TDiYx+GaEboPg0xR5mlmEKZDkNzTY3Lt6848QLHAyF0bCH EiJSLn4Zi3lzMg3t4jsnbD/iDbQHZFYuj9wYygs/doRGTAebeh8OFZaETZLBA0xnAJsM bQlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704655352; x=1705260152; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=itoEHo9tKK8kxIdFu/m0ykf1gxXak4Guj+Sz/y2T0zA=; b=C6K6q1iIAYxNRJoHilkgfvzlYD4OS7MXM/4ffpk41uL+wFlm1uTmfdwsAd0yteatMm FJragQHs89AfL6XFqxZr6TLxiv5f2rqbHKEiJiz5GKdtQh0ykcRwGHz/KjxFKTTQtbcq lPlqpvsZBX+n1ed8QhoBhqcNeZJuyjVJgWuQ/Wa4xzng3tgZvIcp1dqQmfZEI6nkzXLm ZjIblrfsqz8Z3DcTim/vHrGY6I2DSRETBxMLdEy3Xe4g6qTsDQXS60ab5P8Uo6WhJuBw VvP6ezvCvvfhoX8SpP5XEv8Lq/3K4tGGu4V9K59wYFQW2P+iKErHWtSr/hT7vKZb/R+N biww==
X-Gm-Message-State: AOJu0YwQo71S9Jk9z6nyBbT+WHfc9qnnogE8KcBexLrKEO7gquPRPBDo 6vgVdcFPmk6iEV4/0Alvly81bdIHyEg=
X-Google-Smtp-Source: AGHT+IH/42uohw1FpeB0Asa3NM7Sm+7119CLxs4+7Eoio9VUXYC6ZCYcijEuXeSvvYL+eutB/agP0g==
X-Received: by 2002:a05:622a:13d4:b0:429:7f20:1287 with SMTP id p20-20020a05622a13d400b004297f201287mr4781028qtk.34.1704655351889; Sun, 07 Jan 2024 11:22:31 -0800 (PST)
Received: from [192.168.1.192] (074-070-070-237.res.spectrum.com. [74.70.70.237]) by smtp.googlemail.com with ESMTPSA id bs11-20020ac86f0b000000b0042996ed2943sm136928qtb.85.2024.01.07.11.22.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 07 Jan 2024 11:22:31 -0800 (PST)
Content-Type: multipart/alternative; boundary="------------SeRS7w0NBnKg0w6Orr0UebXn"
Message-ID: <09b1dbae-86fb-4465-be26-954ad5eb5176@gmail.com>
Date: Sun, 07 Jan 2024 14:22:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Robert Stepanek <rsto=40fastmailteam.com@dmarc.ietf.org>, calsify@ietf.org
References: <6bf85925-2b9d-4be0-825a-e9e2284b722a@app.fastmail.com>
From: Michael Douglass <mikeadouglass@gmail.com>
In-Reply-To: <6bf85925-2b9d-4be0-825a-e9e2284b722a@app.fastmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/KuisbzNTpg7tkgO8DKEFXic9dgM>
Subject: Re: [calsify] JSContact and Versioning
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Calendaring and Scheduling Standards Simplification <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>, <mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>, <mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 07 Jan 2024 19:22:34 -0000

A bit late in the day again...

I think we should mandate at least an official versioning scheme rather 
than just a simple incrementation.

As developers we already have a example of how that might work e.g. 
<major>.<minor>.<patch>.<extension>*

Without specifying exactly what triggers a change in those numbers (or 
any other scheme) - we're going to have to assume the worst at each change.

I would suggest something like -

1. An non-backward compatible change requires incrementing <major>. e.g. 
we remove a property and replace it with a differently named property, 
or we change the specification of a property enough that it would break 
implementations.

2 Update minor when properties are added (and possibly removed) and 
ignoring the added property does not result in an invalid object

3. Update patch when?

I was going to suggest that just <major> could be valid as could be 
<major>.<minor>. However that can led to some weird contortions.

<extension>* is a suggestion to get around some of the odd versioning in 
maven - it would allow a suffix to be added to indicate the version of 
proprietary extensions

I guess it's clear that a monotonically increasing version is a must.

I think this means that i think the last point needs to be changed. It's 
not up to those registering to bump the value(s) but it should be made a 
requirement of any review - otherwise - what encourages 
developers/software to check for changes?

Maybe the 3rd value could be bumped when a new property is added and the 
minor value updated after it goes through expert review


On 12/7/22 05:42, Robert Stepanek wrote:
> We would like to revisit versioning in JSContact and would appreciate 
> your feedback before end of WGLC. Specifically, we plan to change the 
> currently proposed version scheme such that:
>
>   * Rather than using the RFC number as a version, we propose to use
>     version strings that are independent from the RFC numbering
>     scheme. We define the initial JSContact version to be "1", but we
>     also explicitly state that for now the only thing implementations
>     can rely on is that future version values lexicographically sort
>     after former ones. In a future JSContact RFC we might introduce a
>     more sophisticated version scheme.
>   * We replace the current "Version" field in the IANA registration
>     templates with "Minimum Version" and "Maximum Version", such that
>     the IANA registry is enough to identify which properties or values
>     are supported in which versions. They can then follow the
>     according RFC references in the same registry.
>
>
> Also, we'll slightly rephrase the RFC document section about 
> versioning. The following bullets paraphrase what we intend to define. 
> Most of this already is in the current document, but it might be 
> simpler to review here as a whole:
>
>   * Version changes may add new property and value definitions that
>     are so significant that implementations should be made aware of
>     their presence by only inspecting the version value. This can be
>     useful for protocols to allow clients or servers to advertise
>     which JSContact version they are able to process, or to select one
>     of multiple MIME body parts with JSContact data by version.
>   * Version changes may obsolete or update existing property and value
>     definitions such that they are incompatible with their definitions
>     of earlier versions. This should always be the last tool in the
>     box, but introducing versions now hopefully allows us to handle
>     these situations in the future.
>   * Version changes always require a RFC that defines the impact on
>     future JSContact version.
>   * Not every new property or value definition that gets registered at
>     IANA requires to change the version. The majority of changes
>     should not, because we want to encourage people to register their
>     JSContact additions. Since our IANA-registration policy is Expert
>     Review, it's always up to the discretion of the designated experts
>     if the proposed additions require a RFC document or JSContact
>     version bump.
>
>
> Cheers,
> Robert
>
> _______________________________________________
> calsify mailing list
> calsify@ietf.org
> https://www.ietf.org/mailman/listinfo/calsify