Re: standardized backwards incompatibility tag for commits - Mailing list pgsql-hackers

From Robert Haas
Subject Re: standardized backwards incompatibility tag for commits
Date
Msg-id CA+TgmobfD1P_u0Nh3UT8YLnPb_HUTGSPfNxN+X=DvEDdbM15Bg@mail.gmail.com
Whole thread Raw
In response to Re: standardized backwards incompatibility tag for commits  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Sat, Mar 25, 2017 at 4:15 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Andres Freund <andres@anarazel.de> writes:
>> Seems like it'd be good to standardize how we're declaring that a commit
>> contains backwards incompatible changes.  I've seen
>> - 'BACKWARDS INCOMPATIBLE CHANGE'
>> - 'BACKWARD INCOMPATIBILITY'
>> - a lot of free-flow text annotations like "as a
>>   backward-incompatibility", "This makes a backwards-incompatible change"
>
>> Especially the latter are easy to miss when looking through the commit
>> log and I'd bet some get missed when generating the release notes.
>
> Bruce might have a different opinion, but for my own part I do not think
> it would make any difference in creating the release notes.  The important
> thing is that the information be there in the log entry, not exactly how
> it's spelled.

The other thing is that not all incompatibilities are equally
important.  I think there's pretty much a continuous spectrum from
things that are laughably unlikely to cause problems for anyone in
practice ("hey, you fixed the server crash that I was relying on to
bounce my server!") to things that don't intentionally change
user-visible behavior but might easily still create problems for
people ("hey, your new expression evaluation engine is prohibitively
slow on my test case!") to things that create small but noticeable
user-visible changes ("hey, SELECT 1 the_new_keyword_you_just_added
now fails!") to things that break user SQL in a way that requires it
to be updated ("hey, you changed the definition of pg_stat_activity!"
or much more significantly "hey, i have to go add explicit casts to a
bunch of things that didn't use to need them") to things that cause
the same syntax to have frighteningly different behavior ("hey,
TRUNCATE now recurses to child tables!").  When people mention that
there is a backward-incompatibility in the commit message, they're
just saying that they think that behavior change from that commit is
particularly noteworthy.  But I don't think there's any real
consistency among committers about which changes rise to the level of
requiring such an annotation.  I doubt that "Backward-Incompatibility:
{Yes|No}" is granular enough to be useful even if we all agreed on
what it meant.  "Backward-Incompatibility: TYPE_OF_INCOMPATIBILITY"
might be useful, but agreeing on a set of definitions and getting
everyone to remember to apply the tag in relevant cases might be hard.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Alexander Korotkov
Date:
Subject: Re: Crash on promotion when recovery.conf is renamed
Next
From: Tom Lane
Date:
Subject: Re: Time to drop old-style (V0) functions?