Skip to content

MINIFICPP-2861 Add Conan support for docker and clang CI builds - #2216

Open
lordgamez wants to merge 1 commit into
apache:MINIFICPP-2860from
lordgamez:MINIFICPP-2861
Open

MINIFICPP-2861 Add Conan support for docker and clang CI builds#2216
lordgamez wants to merge 1 commit into
apache:MINIFICPP-2860from
lordgamez:MINIFICPP-2861

Conversation

@lordgamez

Copy link
Copy Markdown
Contributor

https://issues.apache.org/jira/browse/MINIFICPP-2861

Depends on #2214


Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.

In order to streamline the review of the contribution we ask you to ensure the following steps have been taken:

For all changes:

  • Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

  • Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

  • Has your PR been rebased against the latest commit within the target branch (typically main)?

  • Is your initial contribution a single, squashed commit?

For code changes:

  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE file?
  • If applicable, have you updated the NOTICE file?

For documentation related changes:

  • Have you ensured that format looks appropriate for the output in which it is rendered?

Note:

Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

@lordgamez
lordgamez requested a review from Copilot July 29, 2026 08:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Adds Conan-based dependency handling for Docker builds and the Ubuntu clang CI job, including a custom Conan recipe for paho-mqtt-c and wiring credentials/flags through CMake → DockerBuild.sh → Dockerfiles.

Changes:

  • Introduce a custom Conan recipe + metadata for paho-mqtt-c and switch MiNiFi’s Conan dependency to @minifi/develop
  • Add Docker build support for running bootstrap/main.py --run-conan-install and using Conan toolchains
  • Update CI to enable Conan for clang builds and upload Conan packages

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
thirdparty/paho-mqtt/config.yml Adds third-party Conan recipe version mapping for paho-mqtt
thirdparty/paho-mqtt/all/conanfile.py Introduces custom Conan recipe for paho-mqtt-c
thirdparty/paho-mqtt/all/conandata.yml Adds source + patch metadata for the recipe
docker/settings_user.yml Adds Conan settings_user.yml override for Linux libc (musl)
docker/rockylinux/Dockerfile Adds Conan bootstrap/install path and optional upload in Rocky build
docker/Dockerfile Adds Conan bootstrap/install path and optional upload in Alpine build
docker/DockerBuild.sh Adds build args/secrets for Conan and wires them into docker buildx
conanfile.py Switches paho-mqtt-c ref to custom remote and tweaks toolchain blocks
cmake/PahoMqttC.cmake Adjusts patch path for paho-mqtt-c build
cmake/MiNiFiOptions.cmake Adds docker Conan options and filters them from MINIFI_OPTIONS passed into images
cmake/DockerConfig.cmake Passes Docker Conan options into DockerBuild.sh invocation
bootstrap/package_manager.py Adds APK package manager support for Alpine
bootstrap/minifi_option.py Adds DOCKER_USE_CONAN to bootstrap option handling
bootstrap/main.py Adds --run-conan-install entrypoint
bootstrap/cli.py Improves Conan settings detection (libc++) and forces m4 build on Linux
.github/workflows/ci.yml Enables Conan in CI (Docker + clang job) and uploads Conan packages
.dockerignore Ensures docker/settings_user.yml is included in Docker build context

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docker/Dockerfile
Comment thread cmake/DockerConfig.cmake
Comment thread conanfile.py
Comment thread .github/workflows/ci.yml
Comment thread docker/DockerBuild.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants