-
Notifications
You must be signed in to change notification settings - Fork 18
ABI Compliance Checker Module #38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
ABI Compliance Checker Module #38
Conversation
52ad772 to
5cc85dd
Compare
|
Output Logs as of now |
theory
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finally made a careful read and made some suggestions. Seems like the basic functionality is fine, though we may want to do some refactoring later. In fact, I think it would be nice to factor a bunch of the configure and make code from run_build.pl into a module that could then be called from here, so that the ABI Check gets the benefit of the full configuration (e.g., builds with libxml, LDAP, ICU, Perl, Python, etc.).
After a run, I see this directory layout:
.
|-- diffs
| |-- ecpg-fe07100e82b096d3c848cace790d4b4daf0c4131-9ca30a0b04d751c58d4efa0a2b3073cb285b1bd2.log
| `-- postgres-fe07100e82b096d3c848cace790d4b4daf0c4131-9ca30a0b04d751c58d4efa0a2b3073cb285b1bd2.log
|-- githead.log
|-- logs
| |-- 9ca30a0b04d751c58d4efa0a2b3073cb285b1bd2
| | |-- configure.log
| | |-- make.log
| | `-- makeinstall.log
| `-- fe07100e82b096d3c848cace790d4b4daf0c4131
| |-- configure.log
| |-- make.log
| `-- makeinstall.log
`-- xmls
|-- 9ca30a0b04d751c58d4efa0a2b3073cb285b1bd2
| |-- ecpg.abi
| |-- libpq.so.abi
| `-- postgres.abi
`-- fe07100e82b096d3c848cace790d4b4daf0c4131
|-- ecpg.abi
|-- libpq.so.abi
`-- postgres.abi
Which of those files do you plan to upload to the server?
As Peter said here "no news is good news" I do think we can just send the diffs outputs if there are any to the server. Sending the XML files will only increase the payload I believe. If there will be some issue in configure make and build, in that case I think the run build script is itself responsible report the error... |
53b96ac to
3843cb1
Compare
fd201d5 to
cb684a0
Compare
| return; | ||
| } | ||
|
|
||
| sub configure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure seems like there's a lot of code here duped from elsewhere. Is it all from run_build.pl? I wonder if it should be put into a module.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was also thinking the same but left these here currently as no other modules needed them as of now and also just for some convenience 😅
99729c5 to
bf0295e
Compare
designed to perform Application Binary Interface (ABI) compliance checking for PostgreSQL builds using libabigail tools abidiff and abidw. The module helps detect unintended ABI changes in stable branches by comparing the latest commit against the most recent tag on that branch. This is crucial for maintaining compatibility for the PostgreSQL ABI stability guidelines for minor releases.
bf0295e to
9521525
Compare
theory
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few minor nits. Looks great thank you!
| # Ensure debug information is available in compilation - required for libabigail tools | ||
| if ($conf->{using_meson}) | ||
| { | ||
| # not working, can't understand why |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be worth to ask on the list.
Plus one little punctuation fix.
…emove redundant logging
838cb7f to
66eed0d
Compare
…pdate variable name for better code understanding
Awesome, thank you, I've added this to baza. |
When `rm_worktree` is enabled in animal config, the source directory is cleaned after the run, causing `.abi-compliance-history` to be missing in subsequent runs as setup runs before source checkout.

Introducing a new build farm module, ABICompCheck,
designed to perform Application Binary Interface (ABI) compliance checking
for PostgreSQL builds using libabigail tools abidiff and abidw.
The module helps detect unintended ABI changes in stable branches
by comparing the latest commit against the most recent tag on that branch or the most recent entry in
.abi-complaince-historyif present in the source.This is crucial for maintaining compatibility
for the PostgreSQL ABI stability guidelines for minor releases.