manuzhang opened a new issue, #894:
URL: https://github.com/apache/iceberg-cpp/issues/894

   ## Description
   
   The CMake and Meson build definitions are maintained separately and have 
drifted. On current `main` (`e0399c6945326dd5281da07de8ed14a61c9f2cac`), 
equivalent configurations do not install the same public headers or run the 
same core tests.
   
   Examples:
   
   - CMake installs public headers by globbing each directory, while Meson 
lists them manually. As a result:
     - CMake installs `iceberg/puffin_dv_io.h` and 
`iceberg/catalog/rest/auth/token_refresh_scheduler.h`, but Meson does not.
     - Meson installs `iceberg/catalog/catalog_util.h`, 
`iceberg/catalog/session_catalog.h`, and `iceberg/catalog/session_context.h`, 
but CMake does not install headers from `src/iceberg/catalog/`.
   - CMake includes `snapshot_summary_builder_test.cc` in `table_test`, but 
Meson does not include that test source, so the Meson CI path does not exercise 
it.
   
   The Meson bundle gap is already tracked by #256 and is outside the scope of 
this issue. Other intentional feature differences should likewise remain 
explicit rather than appearing as accidental drift.
   
   ## Expected behavior
   
   For features supported by both build systems, CMake and Meson should:
   
   - install the same public API headers;
   - compile the same applicable library sources; and
   - run the same applicable tests.
   
   ## Suggested work
   
   - Align the current public-header install lists and core test coverage.
   - Add an automated check, or centralize/generate the relevant file lists, so 
future source, test, and public-header changes cannot update only one build 
system unnoticed.
   - Document intentional CMake/Meson differences and exclude them explicitly 
from the parity check.
   
   ## Acceptance criteria
   
   - Public headers for shared features are identical in CMake and Meson 
installs.
   - Core test source coverage is identical, including 
`snapshot_summary_builder_test.cc`.
   - CI detects future unintended drift between the two build definitions.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to