hongzhi-gao opened a new pull request, #17801:
URL: https://github.com/apache/iotdb/pull/17801

   ## Summary
   
   Refactor the C++ Session client packaging/build path to be release-friendly 
and integrator-friendly: single CMake entry, CI package matrix, flatter SDK zip 
layout, and checksum artifacts.
   
   ---
   
   ### 1. User-friendly release layout (flattened)
   
   Release zip packages are intentionally minimal and now use a **flat root 
layout**:
   
   - `include/` — public IoTDB Session API headers (e.g. `Session.h`, 
`SessionBuilder.h`, `SessionC.h`, `Common.h`, ...)
   - `lib/` — one runtime library:
     - Linux: `libiotdb_session.so`
     - macOS: `libiotdb_session.dylib`
     - Windows: `iotdb_session.dll` + import `iotdb_session.lib`
   
   Not shipped in the package (and not required by SDK consumers):
   
   - Apache Thrift headers/libs/generated artifacts
   - Boost headers/libs
   
   Package artifact format:
   
   - `client-cpp-<version>-<classifier>.zip`
   - unzip result is directly `include/` + `lib/` at root (no extra nested 
directory layer)
   
   Also added checksum generation:
   
   - `client-cpp-<version>-<classifier>.zip.sha512`
   
   ---
   
   ### 2. Ops-friendly CI: package matrix + validation
   
   #### Release packaging workflow (`client-cpp-package.yml`)
   
   The workflow builds and uploads one package per target/toolchain (triggered 
by manual dispatch, `release:published`, `v*` tags, and `rc/**` with C++ path 
changes):
   
   | Target | Classifier | Notes |
   |---|---|---|
   | Windows x64 + VS 2017 | `windows-x86_64-vs2017` | 
   | Windows x64 + VS 2019 | `windows-x86_64-vs2019` | 
   | Windows x64 + VS 2022 | `windows-x86_64-vs2022` | 
   | Windows x64 + VS 2026 | `windows-x86_64-vs2026` | 
   | Linux x86_64, glibc baseline 2.17 | `linux-x86_64-glibc217` | 
   | Linux aarch64, glibc baseline 2.17 | `linux-aarch64-glibc217` | 
   | Linux x86_64, glibc baseline 2.24 + CXX11 ABI | `linux-x86_64-glibc224` | 
   | Linux aarch64, glibc baseline 2.24 + CXX11 ABI | `linux-aarch64-glibc224` 
| 
   | macOS x86_64 | `mac-x86_64` | 
   | macOS arm64 | `mac-aarch64` | 
   
   Workflow-level hardening:
   
   - uploads both `.zip` and `.zip.sha512` artifacts together
   
   ---
   
   ### 3. Developer-friendly build model
   
   C++ client is driven by a single entry point:
   
   - `iotdb-client/client-cpp/CMakeLists.txt`
   
   CMake modules under `cmake/` handle dependency/toolchain bootstrap and 
Thrift source generation. Build output is installed to `target/install`, then 
Maven wraps:
   
   - cmake configure/build/install
   - optional tests
   - assembly package
   - checksum generation
   
   Standalone build remains supported:
   
   ```bash
   cmake -S iotdb-client/client-cpp -B build && cmake --build build --target 
install
   ```
   
   ---
   
   ### 4. Additional cleanups included
   
   - merged C session examples into `example/client-cpp-example`
   - updated docs/examples to match new package layout and classifiers


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

Reply via email to