This module publishes platform-specific Apache Thrift compiler archives used by IoTDB builds. The archives contain the thrift executable only.
Install the following software before building this module:
apache.releases.https in Maven settings.xmlLinux profiles build the thrift executable with -static, so the build host needs the static runtime libraries required by its C/C++ toolchain.
Use mvnw.cmd instead of ./mvnw on Windows.
Run the following command from this directory:
./mvnw clean package -DskipTests
The archive is generated under target/. Check that it contains bin/thrift and that the binary reports the expected Apache Thrift version.
The Build IoTDB Tools Thrift Artifacts workflow builds the six platform zip artifacts without signing or deploying them. Trigger it manually from GitHub Actions, optionally passing a branch, tag, or commit SHA in the git_ref input. The workflow verifies that each generated compiler reports the expected Apache Thrift version, and that Linux compilers are statically linked.
The workflow uploads one bundled artifact named iotdb-tools-thrift-all-platforms. Download and extract that artifact under target/ in this directory:
iotdb-tools-thrift/target/prebuilt-artifacts/
If you use the GitHub CLI, run:
gh run download <run-id> --name iotdb-tools-thrift-all-platforms --dir target/prebuilt-artifacts
The directory must contain these files:
iotdb-tools-thrift-${project.version}-linux-x86_64.zipiotdb-tools-thrift-${project.version}-linux-aarch64.zipiotdb-tools-thrift-${project.version}-mac-x86_64.zipiotdb-tools-thrift-${project.version}-mac-aarch64.zipiotdb-tools-thrift-${project.version}-windows-x86_64.zipiotdb-tools-thrift-${project.version}-windows-aarch64.zip${project.version} is the Maven project version, for example 0.23.0.0.
Verify the archives before deploying them. Each archive should contain only the bin/thrift executable, or bin/Release/thrift.exe on Windows, and the executable should report the expected Apache Thrift version.
Run the deploy locally from this directory after downloading the artifacts. This signs and deploys the six prebuilt platform artifacts from target/prebuilt-artifacts/:
./mvnw deploy -P apache-release,prebuilt-artifacts
If you need a clean build, run ./mvnw clean before downloading the prebuilt artifacts because clean removes target/.
Use prebuilt.artifacts.dir if the downloaded artifacts are in another directory:
./mvnw deploy -P apache-release,prebuilt-artifacts -Dprebuilt.artifacts.dir=/path/to/prebuilt-artifacts
This creates a new staging repository in Nexus. After the deploy completes, open https://repository.apache.org/#stagingRepositories and verify the uploaded artifacts.
If you need to re-run the local deploy into an existing staging repository, pass that exact staging repository id:
./mvnw deploy -P apache-release,prebuilt-artifacts -DstagingRepositoryId=orgapacheiotdb-1234
The stagingRepositoryId value must be an existing Nexus staging repository id. Do not use a made-up id.
If you do not use the prebuilt artifacts workflow, you can still deploy by building on each platform.
Run the first deploy on one platform without stagingRepositoryId:
./mvnw clean deploy -P apache-release
This creates a new staging repository in Nexus. After the deploy completes, open https://repository.apache.org/#stagingRepositories and copy the generated staging repository id, for example orgapacheiotdb-1234.
Run the deploy on each remaining platform with that exact staging repository id:
./mvnw clean deploy -P apache-release -DstagingRepositoryId=orgapacheiotdb-1234
Supported classifiers are:
linux-x86_64linux-aarch64mac-x86_64mac-aarch64windows-x86_64windows-aarch64After all platform archives have been deployed, verify the staging repository in Nexus, close it, and continue with the Apache release vote and release process.