-
Notifications
You must be signed in to change notification settings - Fork 124
build: keep CMake and Meson definitions in sync - #896
Conversation
Sakshamm-Goyal
commented
Aug 23, 2026
The failing Ubuntu Debug and macOS Build Example steps were caused by CRoaring 4.3.11 exposing roaring-headers and roaring-headers-cpp in the vendored target install interface. Iceberg exports roaring without exporting those build-only helper targets, so downstream find_package(iceberg) marked the package not found.
I pushed 09fabab to keep both helper targets behind BUILD_INTERFACE and added parity coverage for the export invariant. Validation completed locally:
- build-definition parity: 4/4 passed
- repository pre-commit on the changed files: passed
- real Debug CMake build + install: passed
- installed targets contain no
roaring-headersreferences - downstream
example/configure and build against the installed package: passed
Replacement CI is now running on the updated head.
manuzhang
commented
Aug 24, 2026
@Sakshamm-Goyal Thanks for the PR! I opened #894 to track current status and initiated a discussion on how we can maintain and sync the build tools in the long term. Before taking actions, we'd better gather feedbacks from the community, especially from meson maintainers like @WillAyd. Meanwhile, there are prerequisite issues like #256 we need to resolve first.
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'm not sure downgrade the third-party version is the right way to go :-(
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'd suggest upgrade these versions in a separate PR.
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.
Can this check cover all the relevant files? ISTM we could simply add a section to AGENTS.md instructing AI coding tools to keep the CMake and Meson build files in sync. Wouldn’t that be enough?
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.
This doesn't look right to me. We shouldn't run a test for a previously missing file.
Summary
snapshot_summary_builder_test.ccin Meson'stable_testCloses #894.
Validation
python3 dev/test_build_definition_parity.pypre-commit run --files .github/workflows/test.yml cmake_modules/IcebergThirdpartyToolchain.cmake src/iceberg/catalog/CMakeLists.txt src/iceberg/catalog/rest/auth/meson.build src/iceberg/meson.build src/iceberg/test/meson.build dev/test_build_definition_parity.pycmake --build build-cmake-parity --target table_test --parallel 2ctest --test-dir build-cmake-parity -R '^table_test$' --output-on-failuremeson compile -C build-meson-parity table_test -j 2meson test -C build-meson-parity table_test --print-errorlogsAI assistance disclosure
AI-assisted tooling was used for initial regression-test scaffolding and mechanical build-definition edits. I reviewed the change end-to-end, verified the dependency choices and generated manifests, and ran the validations listed above. I am not aware of remaining uncertainty in the affected build paths.