diff --git a/bin/validate b/bin/validate index 8d45f1d..aea4a12 100755 --- a/bin/validate +++ b/bin/validate @@ -962,6 +962,7 @@ while IFS= read -r community_file; do done < <(jq -r '.files[].source' "${community_health_config}") profile_readme=${root}/community-health/profile/README.md +# shellcheck disable=SC2016 # Markdown code markers are intentionally literal. for required_text in \ '# Atrinik' \ 'Atrinik is an open-source cooperative fantasy role-playing world' \ @@ -970,6 +971,9 @@ for required_text in \ 'They do not yet form a complete game release.' \ 'Game content and' \ 'media remain separately licensed' \ + '[Tools](https://github.com/atrinik/tools)' \ + 'is MIT by default with a GPL-2.0-or-later `map-checker-qt/` exception; historical' \ + 'tools tags and releases remain under the terms that applied when published' \ 'historical MIT provenance registry' \ 'exact, independently separable' \ 'copy it, migrate or port it, translate or adapt it, or' \ diff --git a/community-health/profile/README.md b/community-health/profile/README.md index 649e524..34aa13e 100644 --- a/community-health/profile/README.md +++ b/community-health/profile/README.md @@ -11,7 +11,9 @@ implementation is being developed with Go, Rust, and Protobuf foundations. They do not yet form a complete game release. Game content and media remain separately licensed under the terms in their source repositories. -Classic and [tools](https://github.com/atrinik/tools) remain GPL as distributed. +Classic remains GPL as distributed. [Tools](https://github.com/atrinik/tools) +is MIT by default with a GPL-2.0-or-later `map-checker-qt/` exception; historical +tools tags and releases remain under the terms that applied when published. Under the [historical MIT provenance registry](https://github.com/atrinik/atrinik/blob/main/docs/PROVENANCE.md), an MIT destination may inspect exact, independently separable material as diff --git a/tests/validate-community-health.sh b/tests/validate-community-health.sh index 15da1e2..a445165 100755 --- a/tests/validate-community-health.sh +++ b/tests/validate-community-health.sh @@ -34,6 +34,18 @@ sed -i 's/GPL-licensed/GPL-compatible/' "${profile}" assert_invalid 'an organization profile without the Classic license boundary' reset_repository +sed -i 's/MIT by default/MIT-only/' "${profile}" +assert_invalid 'an organization profile without the tools mixed-license boundary' +reset_repository + +# shellcheck disable=SC2016 # Markdown code markers are intentionally literal. +sed -i \ + 's/GPL-2.0-or-later `map-checker-qt\/` exception/GPL-2.0-or-later `wrong-checker\/` exception/' \ + "${profile}" +printf '\nUnrelated replacement tracker: map-checker-qt/.\n' >>"${profile}" +assert_invalid 'an organization profile without the tools path-scoped exception' +reset_repository + jq 'del(.files[] | select(.target == "profile/README.md"))' \ "${temporary}/repository/config/community-health.json" \ >"${temporary}/community-health.json"