Declare proprietary licensing and enforce permissive-only dependencies
Continuum is intended to be sold, so every dependency has to permit distribution in closed-source commercial software. This crate carried `license = "UNLICENSED"`, which is not valid SPDX and made `cargo deny` fail outright; `LicenseRef-Proprietary` with `publish = false` is what marks it first-party instead. The note in deny.toml matters more than the allow list here: the ONNX model weights this worker will load are licensed independently of the `ort` crate, and `cargo deny` cannot see them at all. Ultralytics YOLO and Obico's print-failure model are both AGPL-3.0 and cannot ship in a commercial product - see continuum-common's docs/LICENSES.md, and pick a permissive architecture before collecting training data rather than retraining because of a licence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -3,7 +3,10 @@ name = "continuum-ai-worker"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "Continuum AI worker - consumes camera frame batches from Redis Streams and runs print-failure detection"
|
||||
license = "UNLICENSED"
|
||||
# Proprietary: deliberately not an SPDX id, so cargo-deny treats it as
|
||||
# first-party. See docs/LICENSES.md in continuum-common.
|
||||
license = "LicenseRef-Proprietary"
|
||||
publish = false
|
||||
|
||||
[[bin]]
|
||||
name = "continuum-ai-worker"
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Licence policy for a closed-source commercial product.
|
||||
# See docs/LICENSES.md in continuum-common for the rationale and the
|
||||
# non-cargo dependencies (external binaries, ML models) this file cannot see.
|
||||
#
|
||||
# Run: cargo deny check licenses
|
||||
|
||||
[licenses]
|
||||
# Permissive only. Anything copyleft reaching a shipped binary would make
|
||||
# the product undistributable without releasing our source.
|
||||
allow = [
|
||||
"MIT",
|
||||
"Apache-2.0",
|
||||
"Apache-2.0 WITH LLVM-exception",
|
||||
"BSD-2-Clause",
|
||||
"BSD-3-Clause",
|
||||
"ISC",
|
||||
"Zlib",
|
||||
"Unicode-3.0",
|
||||
"Unlicense",
|
||||
"MPL-2.0",
|
||||
"CC0-1.0",
|
||||
"BlueOak-1.0.0",
|
||||
]
|
||||
confidence-threshold = 0.9
|
||||
|
||||
# Our own crates declare `LicenseRef-Proprietary`, which is deliberately not
|
||||
# an SPDX identifier and must never appear in the allow list above - a
|
||||
# third-party crate claiming it would be a real finding. They are recognised
|
||||
# as first-party by `publish = false` in their manifests.
|
||||
private = { ignore = true }
|
||||
|
||||
[bans]
|
||||
deny = []
|
||||
|
||||
[advisories]
|
||||
yanked = "deny"
|
||||
|
||||
# NOT VISIBLE TO THIS FILE: the ONNX model weights loaded at runtime carry
|
||||
# their own licence, independent of the `ort` crate (MIT). Ultralytics YOLO
|
||||
# and Obico's print-failure models are AGPL-3.0 and cannot ship in a
|
||||
# commercial product. See docs/LICENSES.md.
|
||||
Reference in New Issue
Block a user