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)
