Re: Development of ABI Compliance Checker for official PostgreSQL Repo

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Mankirat Singh <mankiratsingh1315(at)gmail(dot)com>, "David E(dot) Wheeler" <david(at)justatheory(dot)com>
Cc: pgsql-www(at)lists(dot)postgresql(dot)org, Pavlo(dot)Golub(at)gmail(dot)com
Subject: Re: Development of ABI Compliance Checker for official PostgreSQL Repo
Date: 2025-05-21 14:51:52
Message-ID: 9ba5eeba-b874-4411-8eae-df436de6a156@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-www

On 21.05.25 14:52, Mankirat Singh wrote:
> On Wed, 21 May 2025 at 00:27, David E. Wheeler <david(at)justatheory(dot)com
> <mailto:david(at)justatheory(dot)com>> wrote:
>
> Interesting point, though it looks like maybe the output doesn’t
> work that way? In his second post, Mankirat linked to the output
> from abidiff[1] and abicc[2] comparing 17.2 to 17.3. The latter is
> HTML, but abidiff’s plan is pretty straightforward text that reports
> a bunch of changes. I imagine it’ll need some massaging to determine
> which are proper ABI breaks.
>
> Mankirat, did you try it with 17.0 to 17.1? That would be
> interesting, as there was an ABI break in 17.1[3].
>
> I have attached below the compliance reports for that version. I had not
> included it in the blog earlier, as it was complicated and some readers
> might not understand.
>
> But as per my understanding, the outputs given by abidiff are way too
> detailed as compared to html report output by abi-compliance-checker for
> the same PostgreSQL version, though it backfires abidiff's usefulness
> since it lists all the symbols which got affected due to a change
> instead of directly mentioning the root cause.
> For example, in version 17.1 instability struct ResultRelInfo got
> changed with a new data member, in execnodes.h file as per this blog[1],
> but the abidiff report gives "14 functions with some indirect sub-type
> change" and all those 14 were affected due to the same cause, i.e.
> ResultRelInfo struct - thus making a need to parse the output in a
> better format, I believe.

First, you should use abidiff --no-added-syms, to remove all the output
about added symbols.

And then you should create a suppression file so that situations like
the above can be checked and added to an approved list.

I think it is essential for this project that the output is empty if
there are no problems ("no news is good news"). No one will want to dig
through the output if it produces warnings about harmless things.

In response to

Responses

Browse pgsql-www by date

  From Date Subject
Next Message Mankirat Singh 2025-05-21 18:45:13 Re: Development of ABI Compliance Checker for official PostgreSQL Repo
Previous Message David E. Wheeler 2025-05-21 14:31:42 Re: Development of ABI Compliance Checker for official PostgreSQL Repo