Skip to content

Pipe: disable unused logic for 2.0.10#18060

Merged
jt2594838 merged 8 commits into
apache:rc/2.0.10from
Caideyipi:codex/rc-2.0.10-disable-pipe-features
Jun 30, 2026
Merged

Pipe: disable unused logic for 2.0.10#18060
jt2594838 merged 8 commits into
apache:rc/2.0.10from
Caideyipi:codex/rc-2.0.10-disable-pipe-features

Conversation

@Caideyipi

Copy link
Copy Markdown
Collaborator

Description

Cherry-pick Pipe performance cleanup for the 2.0.10 release branch, resolving conflicts with the IoTConsensusV2 rename and the open-source release surface.

This keeps IoTConsensusV2 builtin plugin aliases for stale PipeMeta compatibility while disabling the unused builtin processors/sinks and the Pipe multi-cluster CI workflows.

Verification

  • rg conflict markers: clean
  • git diff --check: clean
  • mvn spotless:apply -pl iotdb-core/node-commons,iotdb-core/datanode
  • mvn -pl iotdb-core/node-commons,iotdb-core/datanode -DskipTests test-compile: node-commons passed; datanode still fails on existing generated-source/thrift/queryengine dependency mismatches unrelated to this change

Caideyipi and others added 8 commits June 29, 2026 18:26
* Refactor client-cpp build to single CMake entry with portable third-party cache

Move C++ client dependency resolution and compilation into one top-level
CMakeLists with Fetch* modules, cache tarballs under third-party/<os>/ for
offline copy-the-repo workflows, and slim the Maven POM to a CMake wrapper.
Skip server CI when only client-cpp changes; gate multi-language-client jobs
by language via paths-filter.

* Fix macOS client-cpp CI bison version and add source-build workflow

Install Homebrew bison on macOS package/IT runners so Thrift 0.21.0 builds
(%code requires Bison 2.4+). Add client-cpp-source-build workflow that uses a
minimal toolchain and online CMake fetch to verify zero-to-build compilation.

* Fix client-cpp-source-build: install clang-format-17 on all runners

Align Linux/macOS/Windows toolchain setup with client-cpp-package so
Spotless clang-format check during mvn package succeeds.

* Skip Spotless in client-cpp-source-build; drop clang-format install

Source-build workflow focuses on minimal-toolchain CMake fetch; pass
-Dspotless.skip=true instead of installing clang-format on runners.

* Refactor C++ client SDK: isolate Thrift and ship Windows DLL.

Reorganize sources into include/session/rpc with PIMPL so public headers no longer pull in Thrift or Boost. Embed Thrift in iotdb_session on all platforms; on Windows build a /MD shared library with import lib. Update examples, CI verification, and documentation for the slimmer SDK layout.

* fix(client-cpp): include ctime for std::tm in Common.h

Fixes Linux CI build where convertToTimestamp/int32ToDate declarations require std::tm from <ctime> (C++11).

* fix(client-cpp): CMake 4 Thrift policy and Session.cpp cstring

Pass CMAKE_POLICY_VERSION_MINIMUM=3.5 when configuring Thrift 0.21 on CMake 4.x (VS2026 CI). Include <cstring> in Session.cpp for memcpy/strlen/strstr on strict Linux builds.

* fix(client-cpp): Linux Thrift link and default Boost 1.84

Drop --whole-archive on Linux to avoid libgcc morestack duplicate symbols; build Thrift with -fno-split-stack. Bump default Boost to 1.84.0 for modern Clang on macOS CI.

* fix(client-cpp): Linux Thrift link and macOS Boost 1.84

Linux: keep --whole-archive for Thrift in libiotdb_session.so but add --allow-multiple-definition to avoid libgcc morestack duplicate symbols. macOS: default BOOST_VERSION to 1.84.0 for modern Clang enum checks (other platforms stay on 1.60.0).

* ci(client-cpp): multi-toolchain package matrix for release zips

Add per-classifier SDK packages (glibc 2.17 on CentOS 7, Windows VS2015-2026), workflow_dispatch variant filter, and documentation for choosing the right zip.

* fix(ci): write windows_matrix to GITHUB_OUTPUT without invalid format

* fix(ci): scope C++ triggers, glibc231 arm64, CentOS7 and VS2015 boost

- paths-ignore C++ workflows/scripts on Java IT jobs; narrow C++ path filters (no root pom.xml)

- aarch64 package on Ubuntu 20.04 container (linux-aarch64-glibc231)

- CentOS7 script: vault repos, Adoptium API JDK, devtoolset deps

- VS2015/2017: pin boost-msvc-14.2/14.1 versions instead of missing boost-msvc-14.0

* fix(ci): docker-based glibc builds, CMake 3.28 on arm64, drop VS2015

- glibc217/aarch64: checkout on host, build inside docker (fixes CentOS7 + Node 24)

- aarch64: install Kitware CMake 3.28 (ARCHIVE_EXTRACT needs 3.18+)

- Remove VS2015 package matrix and related docs

* fix(client-cpp): flatten package zip name and layout

- Zip: client-cpp-<version>-<classifier>.zip (remove redundant -cpp- segment)

- Root folder client-cpp-<version>-<classifier>/ with include/ and lib/ inside

- Update examples (strip one dir on unpack), distribution assembly, CI artifact paths

- CentOS7 SCLo vault mirror fix; chown workspace after docker builds

* fix(ci): pin CentOS7 SCLo repos to vault 7.9.2009 for glibc217

centos-sclo-sclo baseurl with releasever=7 404s on vault; rewrite SCLo repo files and refresh yum cache before devtoolset-8 install.

* fix(ci): build glibc217 in manylinux2014 job container

Replace docker run on ubuntu-22.04 with job-level container quay.io/pypa/manylinux2014_x86_64 and checkout@v4, matching PyPA manylinux CI style.

* fix(ci): host checkout + docker manylinux2014 for glibc217

Job container cannot run Node-based actions on glibc 2.17. Run checkout/cache on ubuntu-latest and build inside manylinux2014 via docker run; use preinstalled devtoolset-10 in the image.

* fix(ci): avoid SIGPIPE 141 from head/tail under pipefail

Replace ldd | head -1 with sed -n 1p and find | head -1 with find -quit so glibc checks do not fail after a successful build.

* fix(client-cpp): force x64 for Visual Studio Windows packages

VS2017 generator defaults to Win32; pass -DCMAKE_GENERATOR_PLATFORM=x64 on Windows via Maven profile. Add CI PE check that iotdb_session.dll is x64.

* fix(ci): build linux-aarch64 glibc217 with manylinux2014

Use manylinux2014_aarch64 and the shared packaging script instead of Ubuntu 20.04 glibc231. Extend the script for aarch64 CMake/JDK arch and classifier auto-detection. Update docs and remove the obsolete ubuntu20-arm script.

* fix(client-cpp): PR review follow-ups for SDK branch

Guard checkTemplateExists against a null dataset, document DataIterator lifetime, correct README Maven vs CMake option names, drop unused IotdbResolveTarball.cmake, and skip server CI when only multi-language-client workflow changes.

* chore(ci): slim manylinux glibc217 package path

Rename the Linux packaging helper to a manylinux-specific script, drop unused CentOS7 fallback branches, and keep only build plus GLIBC<=2.17 verification steps. Also add concise C++ workflow comments and unify client-cpp CMake minimum version to 3.15.

* refactor(client-cpp): rename IoTDBDate and move tests

Rename public Date type from IoTdbDate to IoTDBDate across headers, RPC/session code, and ITs. Move tests from src/test to a top-level test directory and update CMake, Maven, and README paths accordingly.

* example: merge C Session demos into client-cpp-example

Move tree_example.c and table_example.c into client-cpp-example, build them from the shared CMake entry, and update EN/ZH docs. Remove the standalone client-c-example module and drop it from the with-cpp profile.

* style(client-cpp): apply spotless to C examples

* fix(ci): use curl for downloads in manylinux glibc217 script

* fix(ci): use curl directly in manylinux glibc217 script

* fix(client-cpp): centralize SessionConfig defaults and align fetchSize with Java

* ci(client-cpp): add glibc224 packages with explicit CXX11 ABI on manylinux_2_24

Add linux-*-glibc224 zips built on manylinux_2_24 with -D_GLIBCXX_USE_CXX11_ABI=1 wired through Session and Thrift. Document glibc224 as recommended over glibc217 for modern distros.

* fix(client-cpp): correct glibc224 CXX11 ABI check and Maven flag wiring

* fix(client-cpp): use CMake ABI tag file instead of nm for glibc224 CI

* ci(client-cpp): remove source-build workflow

Drop client-cpp-source-build.yml; packaging is covered by client-cpp-package.yml.

* fix(ci): harden glibc checks and drop removed source-build workflow refs

Fail manylinux package scripts when GLIBC symbols cannot be parsed, and remove stale client-cpp-source-build.yml path triggers left after that workflow was deleted.

* fix(client-cpp): flatten package zip layout and add SHA512 checksums

Unpack directly to include/ and lib/ at zip root, generate .sha512 via checksum-maven-plugin, and upload checksums from the package workflow.

* fix sessionIT.cpp compilation

* fix(client-cpp): download Catch2 at build time instead of vendoring

Maven wget in generate-test-resources; CMake file(DOWNLOAD) fallback; remove test/catch2/catch.hpp from source tree.

* fix(client-cpp): download Catch2 before CMake compile phase

Run wget in generate-resources (not generate-test-resources, which runs after compile). CMake also downloads catch.hpp when the header is still missing.

* refactor(client-cpp): move SessionPool implementation into session sources

Place SessionPool.cpp under src/session to align with the existing source layout while keeping public headers in src/include.

* refactor(client-cpp): ship SDK tarballs with cmake/pkgconfig and bundled examples

Rename packages to iotdb-session-cpp-* classifiers, move examples into
client-cpp, drop glibc2.24 release matrix, and add CI smoke tests that build
and run examples against a standalone IoTDB server.

* fix(ci): normalize RUNNER_TEMP for Windows tar extract in cpp package smoke test

Git Bash on Windows runners passes D:\a\_temp to tar -C, which MSYS tar cannot
open; convert via cygpath -u before unpack and example build paths.

* chore(client-cpp): trim examples README and formatDatetime dead code

Simplify the SDK layout note in examples README and drop unused-parameter
casts for precision/zoneId in formatDatetime.

* fix(ci): locate Windows standalone scripts under sbin/windows in cpp smoke test

Distribution packages start/stop batch files at sbin/windows/, matching
client-cpp pom.xml; normalize GITHUB_WORKSPACE via cygpath for find on Windows.

* fix(ci): start IoTDB on Windows with cmd //c and wait for RPC port 6667

Git Bash mangles cmd.exe /c so start-standalone.bat never ran; use //c with
quoted paths and poll Test-NetConnection before running packaged examples.

* fix(ci): upload cpp SDK tarball before packaged example smoke tests

Resolve and upload artifacts on macOS and Windows immediately after packaging
so failed verify steps still retain the tarball; reuse pkg path in verify step.

* refactor(client-cpp): use zip for SDK release packages instead of tar.gz

Align Maven assembly, distribution bundle, CI resolve/upload, smoke-test
unpack (unzip), and docs on iotdb-session-cpp-<version>-<classifier>.zip.

* fix(ci): correct Git Bash quoting when starting IoTDB on Windows

Nested escaped quotes made cmd.exe treat the bat path as the command name; use //c with a single quoted path. Add a local script to replay verify steps.

* fix(ci): build packaged examples as x64 for VS2017 on Windows

Visual Studio 15/16 generators default to Win32 while the SDK is x64, causing LNK1112. Pass -A x64 in the verify step and set CMAKE_GENERATOR_PLATFORM in examples CMakeLists.

* Improve C++ session package documentation

* Set CXX11 ABI for glibc217 C++ package

* Fix C++ SDK CXX11 ABI propagation

* Fix C++ SDK package ABI verification

* Fix glibc217 C++ client ABI build

* Use link test for glibc217 C++ ABI check

* Rebuild C++ client when ABI changes

* Fail C++ client build on ABI mismatch

* Use old libstdc++ ABI for glibc217 package

* Use manylinux_2_28 for C++ client packages

* chore(ci): remove unused local Windows C++ example debug scripts

These scripts were one-off helpers for VS2017 x64 CI fixes; verification
logic already lives inline in client-cpp-package.yml.

* Fix MSVC debug C++ client build

* Document C++ client debug builds

* Address C++ client packaging review comments
@jt2594838 jt2594838 merged commit d99b102 into apache:rc/2.0.10 Jun 30, 2026
20 checks passed
@jt2594838 jt2594838 deleted the codex/rc-2.0.10-disable-pipe-features branch June 30, 2026 08:47
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.

3 participants