Skip to content

[Discussion] Remove meson build support #930

Description

@zhjwpku

I would like to propose removing meson build support from iceberg-cpp.

We currently have meson build support for:

  • iceberg: the core library
  • iceberg_data: the data reading and writing layer
  • iceberg_rest: the REST catalog client

But sadly, meson support is still not aligned with CMake, missing modules include iceberg_bundle (Arrow, Avro, and Parquet integrations), the Hive catalog, and the SQL catalog.

A major challenge is that we do not seem to have enough meson expertise available for ongoing maintenance and review. AI can help us write build definitions quickly, but we still need knowledgeable reviewers to verify that the changes work correctly across supported configurations and for downstream consumers.

For example, I used AI to help implement PR #912, which aims to align meson's library modules with CMake. The implementation was relatively quick, but the PR has not received any reviews so far. Without sufficient meson expertise, it is difficult to gain confidence in the implementation and maintain it over time.

Meanwhile, we run meson CI jobs on Linux, Windows, and macOS. These consume CI resources and require maintenance even though our meson support remains incomplete. Apache Iceberg already has limited CI capacity, so I think we should consider whether maintaining a second build system is a worthwhile use of those resources.

As far as I am aware, we do not currently have users relying on Meson to build iceberg-cpp. Given the maintenance burden, limited review capacity, and CI cost, I propose removing the meson build and associated CI jobs.

If you are using meson to build iceberg-cpp, or are willing to help maintain and review its build support, please share your use case and thoughts. All feedback and alternative suggestions are welcome.

cc @wgtmac @manuzhang @WillAyd @abnobdoss @HuaHuaY

Activity

  1. zhjwpku commented on Sep 9, 2026

    @zhjwpku
    CollaboratorAuthor

    Also cc @Fokko and @kevinjqliu, as they helped creating the project and maintain the CI workflows.

  2. WillAyd commented on Sep 10, 2026

    @WillAyd
    Contributor

    Hey @zhjwpku thanks for bringing this up. I think its a fair question to ask - ultimately I started putting Meson into a few Apache projects as a way to try and get around the rough edges of CMake. I think overall success was mixed across different projects.

    Another motiviation was making C++ libraries more accessible to Python wrappers; meson-python was at the time further ahead than CMake alternatives, although I think that gap has closed more recently

    If its a maintenance burden I don't see a problem with removing unless someone wants to champion it

  3. wgtmac commented on Sep 10, 2026

    @wgtmac
    Member

    I think the main challenge for us to maintain meson parity is the lack of its expertise. Contributors and reviewers just blindly trust what AI suggests. In addition, current setup does not support Arrow and Avro yet so it is still incomplete.

  4. WillAyd commented on Sep 10, 2026

    @WillAyd
    Contributor

    Sounds good. If no one has provided support and its a burden then +1 to remove. If it ends up being important/useful it can always come back

  5. manuzhang commented on Sep 10, 2026

    @manuzhang
    Member

    +1 to remove meson build for now. Another thing to consider is dependabot support. If one day meson adds dependabot support as well as Arrow and Avro, I'd love to learn and maintain meson in this repo.

  6. zhjwpku commented on Sep 11, 2026

    @zhjwpku
    CollaboratorAuthor

    It seems we've reached a preliminary consensus. I'll wait a bit longer for any additional comments, if there are no further objections, I'll start working on a PR to remove the meson build next week.

  7. WillAyd commented on Sep 11, 2026

    @WillAyd
    Contributor

    as well as Arrow and Avro

    FYI there is already a Meson wrap entry for Arrow (granted back to v21 - could use updating). Avro has been in progress (admittedly for some time, but still actively under work) see mesonbuild/wrapdb#2270

  8. added a commit that references this issue on Sep 17, 2026
    1eabbc6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions