Skip to content

MINIFICPP-2813 Upgrade thirdparty libraries part 1#2174

Open
lordgamez wants to merge 28 commits into
apache:mainfrom
lordgamez:MINIFICPP-2813_part_1
Open

MINIFICPP-2813 Upgrade thirdparty libraries part 1#2174
lordgamez wants to merge 28 commits into
apache:mainfrom
lordgamez:MINIFICPP-2813_part_1

Conversation

@lordgamez
Copy link
Copy Markdown
Contributor

@lordgamez lordgamez commented May 14, 2026

This is the first part of upgrading the thirdparty libraries before releasing MiNiFi C++ 1.0:

  • Upgrade jsoncons lib to v1.7.0
  • Upgrade paho.mqtt.c library to v1.3.16
  • Upgrade grpc to v1.80.0
  • Upgrade benchmark lib to v1.9.5
  • Upgrade ArgParse lib to v3.2
  • Upgrade librdkafka to v2.14.1
  • Upgrade Absiel lib to version 20260107.1
  • Upgrade RpMalloc to v1.4.5
  • Upgrade liblzma to v5.8.3
  • Upgrade lz4 library to v1.10.0
  • Upgrade zlib to v1.3.2
  • Upgrade Lua to version 5.4.8
  • Upgrade magic_enum lib to v0.9.8
  • Upgrade zstd to v1.5.7
  • Upgrade libssh2 to version 1.11.1
  • Upgrade json-schema-validator to v2.4.0 and nlohmann_json to v3.12.0
  • Upgrade kubernetes lib to v0.14.0 and libwebsockets lib to v4.5.8
  • Upgrade mimalloc to version 3.3.2
  • Upgrade yaml-cpp to version 0.9.0
  • Upgrade MbedTLS to v3.6.6 and Open62541 to v1.5.4
  • Upgrade alpine docker base image to version 3.22.4
  • Upgrade gsl-lite to version 1.1.0

Note: Each upgrade is done in a separate commit, so it is recommended to review the PR commit by commit for easier understanding.


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 marked this pull request as draft May 14, 2026 10:01
@lordgamez lordgamez force-pushed the MINIFICPP-2813_part_1 branch from 3b944d8 to 386949e Compare May 15, 2026 11:22
@lordgamez lordgamez marked this pull request as ready for review May 15, 2026 16:25
Comment thread cmake/KubernetesClientC.cmake Outdated
utils::Identifier container_id;
auto eventRead = FlowFileRecord::DeSerialize(gsl::make_span(it->value()).as_span<const std::byte>(), content_repo_, container_id);
const auto slice = it->value();
auto eventRead = FlowFileRecord::DeSerialize(std::span<const std::byte>(reinterpret_cast<const std::byte*>(slice.data()), slice.size()), content_repo_, container_id);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I didn't check yet, but we should see if we can avoid the reinterpret_cast in favor of as_bytes or as_writable_bytes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It seems to be working, updated in 9269fbd

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

There are a lot more instances of this pattern, could you go through all of them in this diff?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I could only find one instance in the diff and one other instance in a separate test, fixed in fa0d11a Please point them out if I missed any other instances.

@lordgamez lordgamez force-pushed the MINIFICPP-2813_part_1 branch from ff45cfa to 9269fbd Compare May 18, 2026 10:21
Copy link
Copy Markdown
Member

@martinzink martinzink left a comment

Choose a reason for hiding this comment

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

One small improvement idea, but if that causes any compilation issue feel free to ignore it.

Otherwise LGTM great work 👍

Comment thread cmake/ZLIB.cmake
Comment thread extensions/mqtt/tests/ConsumeMQTTTests.cpp
Comment thread CMakeLists.txt Outdated
Comment thread CMakeLists.txt
include(GslLite)

# Add necessary definitions based on the value of STRICT_GSL_CHECKS, see gsl-lite README for more details
list(APPEND GslDefinitions gsl_CONFIG_DEFAULTS_VERSION=1)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why did you choose to delete this definition? I'd keep the config defaults version explicitly specified.

Copy link
Copy Markdown
Contributor Author

@lordgamez lordgamez May 21, 2026

Choose a reason for hiding this comment

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

I removed it because that's the default, but we can keep it to be explicit if you prefer.

Copy link
Copy Markdown
Member

@szaszm szaszm May 21, 2026

Choose a reason for hiding this comment

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

I think I'd prefer to keep this one explicitly specified, in order to not accidentally defeat gsl-lite backwards compatibility efforts by automatically adopting a breaking change in default settings.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

what's the source of this patch? Is it still necessary?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I wrote it, it is needed to specify the flags manually for the bundled openssl otherwise the build tries to check these flags through compiling examples using the system installed openssl to check which feature is available.

Copy link
Copy Markdown
Member

@szaszm szaszm May 21, 2026

Choose a reason for hiding this comment

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

Can you add this info to the top of the file? (that you wrote it and because otherwise it would use the system openssl otherwise)

fyi: This patch captured my attention because it's related to openssl, and patching crypto code should be a last resort.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants