Skip to content

Split the licence so GitHub can read it - #291

Merged
Naruto merged 1 commit into
developfrom
docs/license-is-detectable
Aug 27, 2026
Merged

Naruto merged 1 commit into
developfrom
docs/license-is-detectable

Conversation

@Naruto

@Naruto Naruto commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

This repository is public, and GitHub reports its licence as Other:

$ gh repo view cri-middleware/SSPlayerForGodot --json licenseInfo
{"licenseInfo":{"key":"other","name":"Other","nickname":""}}

LICENSE.md holds the BSD-3-Clause text followed by a Japanese translation of it
under a horizontal rule. GitHub's detector compares the whole file against known
licence texts; the translation is about 40% of it, so nothing matches within the
confidence threshold.

Consequences beyond the sidebar label: license:bsd-3-clause search never finds
the repository, dependency scanners and SBOM tooling that read the licence API
cannot classify it, and anyone checking licence compatibility has to open the
file and read it themselves.

Measured, not guessed

licensee 10.1.0 — the detector GitHub runs — against each candidate file.
Its match threshold is 98%.

LICENSE.md contains Verdict Similarity
the English text alone (this PR) BSD-3-Clause 98.35%
the English text + an SPDX-License-Identifier line NOASSERTION 92.25% (closest is BSD-4-Clause at 93.33%)
English + the Japanese translation (today) NOASSERTION 57.53% at best
the English text alone, with LICENSE.ja.md beside it BSD-3-Clause 98.35%

Two things this settles:

  • The SPDX line has to stay out of the file. It is the standard machine-readable
    declaration and other tooling (REUSE, ScanCode, SBOM generators) does key off it,
    but licensee measures how close the file is to a known licence text — so a
    declaration line only dilutes it. One line costs six points and flips the verdict.
    The identifier belongs somewhere else; the SDK already carries it as
    license = "BSD-3-Clause" in Cargo.toml.
  • LICENSE.ja.md sitting next to it changes nothing. The translation is safe
    where it is.

What changed

  • LICENSE.md is now the BSD-3-Clause text alone.
  • LICENSE.ja.md carries the translation, labelled a reference translation with
    the English named as authoritative.
  • The leading SPDX-License-Identifier line is gone — see above. Nothing in the
    tree parsed it (git grep SPDX found only that line).

Two things fall out of the split:

  • The locale licence pages stop being the same page. docs/ja/license.md and
    docs/en/license.md both --8<-- included LICENSE.md, so a Japanese reader
    got the English text with a translation appended and an English reader got the
    reverse. Each now includes its own file.
  • Release packaging carries both. LICENSE.ja.md joins LICENSE.md in the
    addon root and in addons/spritestudio/licenses/, in all four build scripts,
    and in the archive check that proves they arrived.

Known: the margin is 0.35 points

98.35% against a threshold of 98%. The gap is clause 3, which names the company
where the canonical text says "the copyright holder"; restoring the canonical
wording measures 100.00%. Left alone here — that is a change to licence text, and
the same wording is in all ten repositories. Worth knowing that a later edit to
this file could drop it back under.

What this does not prove yet

GitHub runs licence detection against the default branch, so the label only
moves once this is merged. That is the point of doing it here first: this is the
one public repository, and the same LICENSE.md sits in all ten. If it turns into
BSD-3-Clause after merge, the same split rolls out to the other nine.

Checks

  • pwsh parses both .ps1 scripts; bash -n / zsh -n parse both shell scripts.
  • scripts/build-runtime.* still copies the SDK's own LICENSE.md into
    ss_player/runtime/. That file is the SDK's and is still bilingual — it follows
    when SpriteStudio-SDK gets the same treatment.

GitHub reports this repository's licence as "Other". LICENSE.md carries the
BSD-3-Clause text and a Japanese translation of it under a horizontal rule, and
the detector compares the whole file against known licence texts -- the
translation is about 40% of it, so nothing matches.

The English text moves out on its own and the translation becomes LICENSE.ja.md,
labelled a reference translation with the English named as authoritative. The
leading SPDX-License-Identifier line goes too: it is content the detector has to
account for as well, nothing in the tree parses it, and the point of this change
is to leave no reason for a near-miss.

Falling out of that, the two locale licence pages stop being the same page.
docs/ja/license.md included LICENSE.md, so a Japanese reader was served the
English text with its translation appended, and an English reader the reverse.
Each now includes its own.

Release packaging carries both files: LICENSE.ja.md joins LICENSE.md in the
addon root and in addons/spritestudio/licenses/, and in the archive check that
proves they arrived.
@Naruto
Naruto merged commit a691f11 into develop Aug 27, 2026
0 of 2 checks passed
@Naruto
Naruto deleted the docs/license-is-detectable branch August 27, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant