On Mon, Oct 20, 2025 at 10:39:19AM -0400, Tom Lane wrote:
> OK, I pushed a placeholder following Nathan's formatting proposal.
> The ABI checker should still complain, because I made it point at
> REL_18_0^, which is what I expect we'd do in practice.  After we
> see it respond to that, we can move the reference point to where
> it needs to be.

Thanks.  Here's a new patch set.  The v18 patch is just an update to the
.abi-compliance-history file that Tom committed.  The master patch adds
instructions for generating the file to RELEASE_NOTES.  I imagine we'll
want to add .abi-compliance-history files for the back-branches, too
(except for perhaps v13, which is about to go out of support in a couple
weeks).

-- 
nathan
>From 64f9f480c759fabdaecdb7f7e0d1634d3fd6a50d Mon Sep 17 00:00:00 2001
From: Nathan Bossart <[email protected]>
Date: Mon, 20 Oct 2025 11:43:14 -0500
Subject: [PATCH v2 1/1] Add notes for creating .abi-compliance-history.

---
 src/tools/RELEASE_CHANGES       |  5 +++++
 src/tools/make_abi_history_file | 31 +++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)
 create mode 100755 src/tools/make_abi_history_file

diff --git a/src/tools/RELEASE_CHANGES b/src/tools/RELEASE_CHANGES
index c0d75c213be..938dcbb7ab6 100644
--- a/src/tools/RELEASE_CHANGES
+++ b/src/tools/RELEASE_CHANGES
@@ -61,6 +61,11 @@ in both master and the branch.
 * Ports
        o update ports list in doc/src/sgml/installation.sgml
 
+* Create .abi-compliance-history file with initial entry shortly before the .0
+  stamp by running "src/tools/make_abi_history_file" (from the top of the
+  source tree) and then following the instructions in the file to add the
+  entry.
+
 
 Pre-Beta Tasks
 ==============
diff --git a/src/tools/make_abi_history_file b/src/tools/make_abi_history_file
new file mode 100755
index 00000000000..1c6c1743695
--- /dev/null
+++ b/src/tools/make_abi_history_file
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# Copyright (c) 2025, PostgreSQL Global Development Group
+#
+# src/tools/make_abi_history_file
+#
+# NB: Must be run from top of source tree!
+
+cat << EOF >> .abi-compliance-history
+# Reference point for ABI compliance checks
+#
+# This file lists commits on the current 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.
+#
+# In general, entries should be added reactively after an abi-compliance-check
+# buildfarm failure.  It is important to verify the details of the breakage
+# match expectations, as the first entry listed will become the updated ABI
+# baseline point.
+#
+# Add new entries by adding the output of the following to the top of the file:
+#
+# $ git log --pretty=format:"%H%n#%n# %s%n# %cd%n#%n# <ADD JUSTIFICATION 
HERE>" $ABIBREAKGITHASH -1 --date=iso
+#
+# Be sure to replace "<ADD JUSTIFICATION HERE>" with details of your change and
+# why it is deemed acceptable.
+
+
+EOF
-- 
2.39.5 (Apple Git-154)

>From cbebfe6cf49f71e293136bf4ef482f894f0d8adc Mon Sep 17 00:00:00 2001
From: Nathan Bossart <[email protected]>
Date: Mon, 20 Oct 2025 11:21:04 -0500
Subject: [PATCH v2 1/1] Update .abi-compliance-history file.

---
 .abi-compliance-history | 35 ++++++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/.abi-compliance-history b/.abi-compliance-history
index 3d0d26aff90..b7265aa78fe 100644
--- a/.abi-compliance-history
+++ b/.abi-compliance-history
@@ -1,7 +1,36 @@
 # Reference point for ABI compliance checks
+#
+# This file lists commits on the current 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.
+#
+# In general, entries should be added reactively after an abi-compliance-check
+# buildfarm failure.  It is important to verify the details of the breakage
+# match expectations, as the first entry listed will become the updated ABI
+# baseline point.
+#
 # 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
 #
-# Initial entry would normally point to a commit slightly before the .0 stamp.
-9bbcec6030a2744d83311370ec92213fbd76e514 # 2025-09-22 14:18:56 +0200
+# $ git log --pretty=format:"%H%n#%n# %s%n# %cd%n#%n# <ADD JUSTIFICATION 
HERE>" $ABIBREAKGITHASH -1 --date=iso
+#
+# Be sure to replace "<ADD JUSTIFICATION HERE>" with details of your change and
+# why it is deemed acceptable.
+
+c8af5019bee5c57502db830f8005a01cba60fee0
+#
+# Fix lookups in pg_{clear,restore}_{attribute,relation}_stats().
+# 2025-10-15 12:47:33 -0500
+#
+# 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.
+
+9bbcec6030a2744d83311370ec92213fbd76e514
+#
 # Translation updates
+# 2025-09-22 14:18:56 +0200
+#
+# This is the original ABI baseline point for REL_18_STABLE.
-- 
2.39.5 (Apple Git-154)

Reply via email to