This is an automated email from the ASF dual-hosted git repository.
yuxia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss-rust.git
The following commit(s) were added to refs/heads/main by this push:
new 3cdeb8c chore: introduce deny to check licenses (#267)
3cdeb8c is described below
commit 3cdeb8cc6dbe7e280a136991866e375d212a5173
Author: yuxia Luo <[email protected]>
AuthorDate: Sat Feb 7 11:36:27 2026 +0800
chore: introduce deny to check licenses (#267)
---
.github/workflows/ci.yml | 8 ++++++++
DEVELOPMENT.md | 9 +++++++++
bindings/cpp/Cargo.toml | 1 +
bindings/python/Cargo.toml | 2 +-
crates/fluss/Cargo.toml | 1 +
bindings/cpp/Cargo.toml => deny.toml | 36 ++++++++++++++++++------------------
6 files changed, 38 insertions(+), 19 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index cf7a126..e9048fb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,6 +38,14 @@ jobs:
- name: Check License Header
uses: apache/skywalking-eyes/[email protected]
+ - name: Install cargo-deny
+ uses: taiki-e/install-action@v2
+ with:
+ tool: [email protected]
+
+ - name: Check dependency licenses (Apache-compatible)
+ run: cargo deny check licenses
+
- name: Install protoc
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index a8a6d53..a0669a7 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -104,6 +104,15 @@ cargo test --features integration_tests --workspace
```
+### License check (cargo-deny)
+
+We use [cargo-deny](https://embarkstudios.github.io/cargo-deny/) to ensure all
dependency licenses are Apache-compatible. When present, configuration lives in
a `deny.toml` file at the repo root and should enforce an Apache-compatible
license policy.
+
+```bash
+cargo install cargo-deny --locked
+cargo deny check licenses
+```
+
### Formatting and Clippy
Our CI runs cargo formatting and clippy to help keep the code base styling
tidy and readable. Run the following commands and address any errors or
warnings to ensure that your PR can complete CI successfully.
diff --git a/bindings/cpp/Cargo.toml b/bindings/cpp/Cargo.toml
index 0bbcbf0..0b83de9 100644
--- a/bindings/cpp/Cargo.toml
+++ b/bindings/cpp/Cargo.toml
@@ -19,6 +19,7 @@
name = "fluss-cpp"
version = "0.1.0"
edition.workspace = true
+license.workspace = true
rust-version.workspace = true
publish = false
diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml
index ff4d687..0a0daff 100644
--- a/bindings/python/Cargo.toml
+++ b/bindings/python/Cargo.toml
@@ -19,7 +19,7 @@
name = "fluss_python"
edition = "2024"
version = "0.1.0"
-license = "apache-2.0"
+license.workspace = true
rust-version = "1.85"
[lib]
diff --git a/crates/fluss/Cargo.toml b/crates/fluss/Cargo.toml
index 6b2707b..c923594 100644
--- a/crates/fluss/Cargo.toml
+++ b/crates/fluss/Cargo.toml
@@ -17,6 +17,7 @@
[package]
edition = { workspace = true }
+license.workspace = true
rust-version = { workspace = true }
version = { workspace = true }
name = "fluss"
diff --git a/bindings/cpp/Cargo.toml b/deny.toml
similarity index 66%
copy from bindings/cpp/Cargo.toml
copy to deny.toml
index 0bbcbf0..18ed544 100644
--- a/bindings/cpp/Cargo.toml
+++ b/deny.toml
@@ -15,22 +15,22 @@
# specific language governing permissions and limitations
# under the License.
-[package]
-name = "fluss-cpp"
-version = "0.1.0"
-edition.workspace = true
-rust-version.workspace = true
-publish = false
+[licenses]
+allow = [
+ "Apache-2.0",
+ "Apache-2.0 WITH LLVM-exception",
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "CC0-1.0",
+ "ISC",
+ "MIT",
+ "Unicode-3.0",
+ "Zlib",
+]
-[lib]
-crate-type = ["staticlib"]
-
-[dependencies]
-anyhow = "1.0"
-arrow = { workspace = true, features = ["ffi"] }
-cxx = "1.0"
-fluss = { path = "../../crates/fluss" }
-tokio = { version = "1.27", features = ["rt-multi-thread", "macros"] }
-
-[build-dependencies]
-cxx-build = "1.0"
+exceptions = [
+ # open data licenses that SHOULD be OK
+ { crate = "webpki-roots", allow = [
+ "CDLA-Permissive-2.0",
+ ] },
+]
\ No newline at end of file