On Fri, Oct 17, 2025 at 02:45:12PM -0400, Tom Lane wrote: > Nathan Bossart <[email protected]> writes: >> On Fri, Oct 17, 2025 at 01:15:20PM -0400, Tom Lane wrote: >>> FWIW, I favor the approach of having an in-tree, per-branch file >>> containing the commit hash of a commit that is the current ABI >>> reference for that branch. > >> I'm new to the topic, but IMHO the per-branch file approach is by far the >> best approach. Not only is it much more flexible, but we could even use it >> as a centralized list of ABI breaks for a given branch with justification >> for each. I can't think of any strong advantages of keeping this stuff in >> git metadata. git itself uses a file for blame.ignoreRevsFile... > > Good idea. We'd have to allow comments in the file, but that's > probably a good thing anyway.
I've attached a first try. You'll notice that I have borrowed heavily from .git-blame-ignore-revs. Some other things that might be worthwhile: * Add commentary about when this file is needed (i.e., after the .0). * Add instructions for creating file on new stable branch to RELEASE_CHANGES. * Adjust format for readability. It is a bit comment-heavy at the moment. Anything else? I suppose this idea is entirely dependent on the maintainers of the abi-compliance-check code to adapt to it, so we'll need buy-in from them, too. -- nathan
>From 4564f78bb861e2862cc037a95b517c38b38d06b6 Mon Sep 17 00:00:00 2001 From: Nathan Bossart <[email protected]> Date: Fri, 17 Oct 2025 14:03:50 -0500 Subject: [PATCH v1 1/1] Add .abi-compliance-history file. --- .abi-compliance-history | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .abi-compliance-history diff --git a/.abi-compliance-history b/.abi-compliance-history new file mode 100644 index 00000000000..0148d0fcda4 --- /dev/null +++ b/.abi-compliance-history @@ -0,0 +1,19 @@ +# This file lists commits on the REL_18_STABLE branch that break ABI +# compatibility in ways that have been deemed acceptable (e.g., removing an +# extern function with no third-party uses). The primary intent of this file +# is to placate the ABI compliance checks on the buildfarm, but it also serves +# as a central location to document the justification for each. +# +# Add new entries by adding the output of the following to the top of the file: +# +# $ git log --pretty=format:"%H # %cd%n# %s" $ABIBREAKGITHASH -1 --date=iso +# +# Be sure to include additional context in a comment below the entry. + +c8af5019bee5c57502db830f8005a01cba60fee0 # 2025-10-15 12:47:33 -0500 +# Fix lookups in pg_{clear,restore}_{attribute,relation}_stats(). +# +# This commit replaced two functions related to lookups/privilege checks for +# the new stats stuff in v18 with RangeVarGetRelidExtended(). These functions +# were not intended for use elsewhere, exist in exactly one release (18.0), and +# do not have any known third-party callers. -- 2.39.5 (Apple Git-154)
