fboudra opened a new pull request, #51376: URL: https://github.com/apache/arrow/pull/51376
### Rationale for this change https://github.com/apache/arrow/issues/50398 https://github.com/apache/arrow/issues/50829 ### What changes are included in this PR? Adds python/scripts/audit_limited_api_symbols.py. It reads the dynamic symbol table of each built extension (a pure stdlib ELF reader on POSIX, objdump for Windows .pyd), collects every Py* symbol it imports, and checks that a reference CPython 3.11 exports it. Any miss fails the audit. This catches stable ABI regressions, such as a symbol that is only exported since 3.13 or 3.14 (Py_REFCNT), before it ends up in a cp311-abi3 wheel. It is a standalone script in this PR; the following CI PR wires it into the wheel builds as a gate. ### Are these changes tested? Yes ### Are there any user-facing changes? No ### Was AI used for this PR? **PR code and description written by:** - [x ] Human - [ ] AI **Reviewed before submission by:** - [ x] Human - [ ] AI - [ ] Not reviewed -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
