agora inbox for pgsql-hackers@postgresql.org  
help / color / mirror / Atom feed
From: Nathan Bossart <nathandbossart@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: David E. Wheeler <david@justatheory.com>
Cc: Mankirat Singh <mankiratsingh1315@gmail.com>
Cc: pg@bowt.ie
Cc: andrew@dunslane.net
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: abi-compliance-check failure due to recent changes to pg_{clear,restore}_{attribute,relation}_stats()
Date: Mon, 20 Oct 2025 11:46:27 -0500
Message-ID: <aPZnY0Icgw1RGaGP@nathan> (raw)
In-Reply-To: <230647.1760971159@sss.pgh.pa.us>
References: <aPKFmL8VjOKNVLcw@nathan>
	<1723302.1760726712@sss.pgh.pa.us>
	<aPKUzk2xFhZBbWmz@nathan>
	<78B81B37-9F27-4085-92DA-6B50DFC24361@justatheory.com>
	<CAOtk82QCHhWwO=zB-KFYch3JLf8Si4Bk77R_0cgsHjkwuhR9Vg@mail.gmail.com>
	<1957147.1760800489@sss.pgh.pa.us>
	<17DB0A6A-C967-48A8-B1C0-9A4F31C4F8EF@justatheory.com>
	<CAOtk82T=OO3e=SYPyHZq50wfyt569E6t=ee4b7va2y08M+a0SQ@mail.gmail.com>
	<F6567E02-23FD-455C-95D2-5CB076BC4E65@justatheory.com>
	<230647.1760971159@sss.pgh.pa.us>

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 <nathan@postgresql.org>
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 <nathan@postgresql.org>
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)

Attachments:

  [text/plain] v2-0001-Add-notes-for-creating-.abi-compliance-history.patch.master (2.4K, ../aPZnY0Icgw1RGaGP@nathan/2-v2-0001-Add-notes-for-creating-.abi-compliance-history.patch.master)
  download | inline diff:
From 64f9f480c759fabdaecdb7f7e0d1634d3fd6a50d Mon Sep 17 00:00:00 2001
From: Nathan Bossart <nathan@postgresql.org>
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)

  [text/plain] v2-0001-Update-.abi-compliance-history-file.patch.v18 (2.3K, ../aPZnY0Icgw1RGaGP@nathan/3-v2-0001-Update-.abi-compliance-history-file.patch.v18)
  download | inline diff:
From cbebfe6cf49f71e293136bf4ef482f894f0d8adc Mon Sep 17 00:00:00 2001
From: Nathan Bossart <nathan@postgresql.org>
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)

view thread (70+ messages)  latest in thread

Message-ID: <aPZnY0Icgw1RGaGP@nathan>
Permalink:  ../aPZnY0Icgw1RGaGP@nathan/
Also on:    postgresql.org/message-id/aPZnY0Icgw1RGaGP@nathan

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: nathandbossart@gmail.com, tgl@sss.pgh.pa.us, david@justatheory.com, mankiratsingh1315@gmail.com, pg@bowt.ie, andrew@dunslane.net, pgsql-hackers@lists.postgresql.org
  Subject: Re: abi-compliance-check failure due to recent changes to pg_{clear,restore}_{attribute,relation}_stats()
  In-Reply-To: <aPZnY0Icgw1RGaGP@nathan>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox