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. Nothing recorded that before: our own crates and npm packages carried no licence field at all, which made `cargo deny` report them as `unlicensed` errors and left the actual policy nowhere. Crates now declare `LicenseRef-Proprietary` with `publish = false`. That string is deliberately not a real SPDX identifier, so it must never appear in a `deny.toml` allow list - a third-party crate claiming it would be a genuine finding. npm packages use `"license": "UNLICENSED"`, the equivalent convention there. `deny.toml` holds the permissive-only allow list. The policy itself, the audit, and the three categories cargo-deny cannot see (external binaries, ML model weights, self-hosted servers) are documented in continuum-common's docs/LICENSES.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
# 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"
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "continuum-schemas",
|
"name": "continuum-schemas",
|
||||||
|
"license": "UNLICENSED",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
name = "continuum-rust-types"
|
name = "continuum-rust-types"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
# 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
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "continuum_types"
|
name = "continuum_types"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@continuum/ts-types",
|
"name": "@continuum/ts-types",
|
||||||
|
"license": "UNLICENSED",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
Reference in New Issue
Block a user