chore: relicense to AGPL-3.0-or-later and add SPDX headers
Replaces LICENSE (GPLv3 -> AGPLv3) and prepends `SPDX-License-Identifier: AGPL-3.0-or-later` to every source file across decnet/, decnet_web/, tests/, scripts/, and tools/. Rationale: closes the GPLv3 ASP loophole so any party operating a modified DECNET as a network service must offer their modified source. Personal copyright (Samuel Paschuan) + inbound=outbound contributions make a future unilateral relicense infeasible. - LICENSE: full AGPL-3.0 text (gnu.org/licenses/agpl-3.0.txt) - COPYRIGHT: project copyright notice - tools/add_spdx_headers.py: idempotent header injector (shebang- and PEP 263-aware) Touches 1565 source files (.py, .ts, .tsx, .js, .jsx, .css, .sh). No behavior change; comments only.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Shared fixtures for canary tests — minimal DOCX/XLSX/HTML/PDF fixtures.
|
||||
|
||||
We synthesise the OOXML zips inline rather than checking real binary
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Smoke coverage for the ``decnet canary`` CLI subcommand.
|
||||
|
||||
We don't run the worker (it would block on HTTP/DNS sockets) — we
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Realism-driven canary cultivation.
|
||||
|
||||
Stage 7 of the realism migration: the orchestrator's planner picks a
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Smoke coverage for the deploy-time canary baseline seed.
|
||||
|
||||
The deployer hook calls ``decnet.canary.planter.seed_baseline`` for
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coverage for the generator/instrumenter factory + MIME dispatch.
|
||||
|
||||
The concrete generators and instrumenters land in subsequent commits;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Tests for the HTML/SVG fingerprint canary generators.
|
||||
|
||||
Skipped when the Node toolchain (or vendored javascript-obfuscator) is
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coverage for the synthesised-artifact generators.
|
||||
|
||||
Each generator MUST be deterministic for a given ``CanaryContext`` —
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coverage for the operator-upload instrumenters.
|
||||
|
||||
Each instrumenter is round-tripped against a small, real-shaped
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Smoke coverage for the Pydantic request/response shapes + helpers.
|
||||
|
||||
The tables themselves are exercised end-to-end in
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Tests for :mod:`decnet.canary.obfuscator` — the per-mint JS obfuscator.
|
||||
|
||||
Skipped when Node or the vendored ``javascript-obfuscator`` package is
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coverage for the persona-aware path resolver + placement validator."""
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coverage for the canary planter (docker exec wrapper).
|
||||
|
||||
We don't actually invoke docker — :func:`asyncio.create_subprocess_exec`
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Repository CRUD coverage for canary blobs / tokens / triggers.
|
||||
|
||||
Same harness as the rest of :mod:`tests.db` — spin up a SQLite-backed
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coverage for the on-disk blob store."""
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Sanity check on the decnet-canary.service unit + decnet.target.
|
||||
|
||||
Tests are deliberately static (no rendering, no systemd) — they just
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Coverage for the canary bus-topic builder + constants.
|
||||
|
||||
The builder shares :func:`_reject_tokens` with every other family in
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""DNS surface coverage for the canary worker.
|
||||
|
||||
We don't open a real UDP socket — instead we drive
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""HTTP surface coverage for the canary worker.
|
||||
|
||||
We exercise the FastAPI app via Starlette's TestClient so the test
|
||||
|
||||
Reference in New Issue
Block a user