Merge main into go-int/work
Some checks are pending
Deploy to GitHub Pages / build (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Blocked by required conditions

This commit is contained in:
Doxa Maps 2026-09-28 02:20:11 +00:00
commit 3725930af9
3 changed files with 23 additions and 6 deletions

View file

@ -14,7 +14,7 @@ served folder". The licence travels with the asset; the explanation travels with
| `vendor/tabulator/tabulator.min.js` + `.min.css` | olifolkerd/tabulator v6.3.1 | MIT | **No** — the `.js` had only `(c) Oliver Folkerd 2025`; the `.css` had nothing | closed: upstream `LICENSE` now vendored beside it |
| `boundaries/gb-IND-ADM1*.geojson` (4 files) | geoBoundaries gbOpen, boundaryID `IND-ADM1-1811400` | **CC BY 2.5 IN**, licenceSource `github.com/datameet/maps`, year 2011 — fetched verbatim from the geoBoundaries API | **Yes** — `boundaries/ATTRIBUTION` now ships beside the data, plus the existing `.meta.json` sidecar | none (closed 2026-09-28) |
| `boundaries/gb-CHN-ADM1.geojson` | geoBoundaries gbOpen, boundaryID `CHN-ADM1-43563684` | **Public Domain**, licenceSource `commons.wikimedia.org`, year 2019 | recorded in `boundaries/ATTRIBUTION` | none — upstream records no attribution duty |
| `boundaries/world-adm0*.geojson` (2 files, 162 countries) | **geoBoundaries gbOpen, assembled per country** — corrected: its features carry geoBoundaries' own `iso3`/`shapeGroup`/`shapeName` properties, and the plugin's `data/adm0/PROVENANCE.json` names the source and endpoint. NOT Natural Earth, as this register first guessed | **MIXED — up to 162 different upstream licences.** gbOpen passes each country's own licence through | the principle is stated in `boundaries/ATTRIBUTION`; the per-country licences are **not** | **OPEN** — that PROVENANCE.json's `licences` table is EMPTY, so which of the 162 are CC BY is unestablished. Closing it means one API query per country. upg100-plugin's data; routed to them |
| `boundaries/world-adm0*.geojson` (2 files, 162 countries) | geoBoundaries gbOpen, assembled per country (its features carry geoBoundaries' own `iso3`/`shapeGroup`/`shapeName`; corrected — this register first guessed Natural Earth) | **MIXED, and ESTABLISHED per country as of 2026-09-28**: 162 upstream licences. **32** duty-free (28 Public Domain + 4 CC0) · **65** attribution-only · **65 SHARE-ALIKE CLASS** (58 ODbL 1.0 + 7 explicit ShareAlike: AGO GAB GEO GIN MMR NER TUR) | **Yes** — the per-country table (licence + licenseSource + boundaryID + boundarySource, fetched verbatim from the geoBoundaries API, 162 of 162, 0 failures) ships at `plugin-designs/my-upg-100-list/data/adm0/PROVENANCE.json`. `boundaries/ATTRIBUTION` references it by path rather than copying it | **OPEN, legal — not a measurement**: whether a redistributed boundary file is a "Derivative Database" under ODbL is unanswered, and half the duty-bearing countries turn on it. With the Driver's data-licensing item |
| `people-groups/*` (3 files, 8 MB) | peoplegroups.org | **not established** | no terms ship | **OPEN, judgment** — redistribution terms unknown |
| `pplr/*` (6 files, 16 MB) | **PPLR ArcGIS Online org** `services2.arcgis.com/S4ydGgujXcif36k3`, aggregating IMB (peoplegroups.org), Joshua Project, the ROP registry, and carrying WCD (World Christian Database) IDs. Built from a local 78 MB extract not present in this repo — evidence from exp-shepherd | **UNRESOLVED.** `aCountry` and `aIMBPeople` publish no `copyrightText`, description or licence (queried `f=json`) | nothing ships | **OPEN, judgment** — redistribution not established. WCD is a proprietary Brill database, so even the IDs need a check |
| `tables/*` (304 files, 36 MB) | derived by `library/scripts/research/fetch-*.mjs` from several upstream APIs | **varies, not established per table** | nothing ships; there is no source or licence doc in `tables/` | **OPEN, judgment** — the largest gap by volume |
@ -34,8 +34,16 @@ served folder". The licence travels with the asset; the explanation travels with
## What is NOT closed, and why it is not mine to close
Four rows above are marked OPEN. Two are simply unverified and someone should look
(`world-adm0` provenance, the `pplr` upstream). Two need a decision rather than a fetch:
★ ONE FACT IN THIS FILE IS ALSO ASSERTED ELSEWHERE, AND THAT IS WHERE IT WILL DRIFT. The world-adm0
licence counts appear both here and in `plugin-designs/my-upg-100-list/data/adm0/PROVENANCE.json`.
**That file is the authority; if the two disagree, it wins.** They have already drifted once: this
register said the licence table was EMPTY on the very commit where it held all 162, because the two
landings crossed and neither author could see the other's tree. A register that still reads
"unestablished" after the work is done is settled-by-omission in reverse — the absence of an update
reads as the absence of the work.
Three rows above are marked OPEN. One is simply unverified and someone should look
(the `pplr` upstream). Two need a decision rather than a fetch:
**people-groups** and the 304 **tables** carry data whose redistribution terms are not established,
and 36 MB of derived tables is the largest exposure by volume. Attaching a licence I have not
confirmed would be worse than the present gap, so those go to the Driver.

View file

@ -146,6 +146,10 @@ const SITES = [
// the catalogue default, its duplicate EN map is deleted, and section 9 keeps the ruling's PRECONDITION
// true rather than measured once.
// First site on the {t, te, locale} form: it needs locale for toLocaleString.
// ⚠ null, NOT a fallback. This row came back as 'fallback: (full) =>' in a merge, because the branch it
// merged from predates 0ded1a4e — the commit that carried out the embed-contract ruling here and deleted
// the inline EN map. Taking a SITES array wholesale from another branch re-asserts ITS view of every
// file in it, including the ones you changed; the gate caught it, which is the only reason it is right.
['plugin-designs/all-people-groups/all-people-groups.vue', 'useOptionalI18n', null],
// wave 3c — my-upg-100-list (owner: upg100-plugin). No namespace, since callers pass full keys.
// ⚠ THE THIRD COLUMN IS null, NOT 'humanizeKey(k)', and that is a DEPARTURE from 4c05e589, which

View file

@ -11,9 +11,14 @@
* is the point.
*
* FALLS BACK TO THE KEY. A missing string renders the English sentence rather than 'regions.Foo'.
* That matters here: our repo ships 11 locales and DX-life translates 8, so it/ro/zh have no
* regions.json at all and resolve through this fallback (library/i18n README: a missing area file
* is fine, fallbackLocale 'en' handles it).
* ✗ THE REASON GIVEN HERE IS NOW STALE, corrected 2026-09-27. It read: "our repo ships 11 locales and
* DX-life translates 8, so it/ro/zh have no regions.json at all and resolve through this fallback."
* MEASURED: all ELEVEN locales now carry a regions.json, it/ro/zh included. The fallback is still
* right and still load-bearing — a key absent from a catalogue renders its English sentence, which is
* exactly what a reader should see — but it is no longer three whole languages leaning on it.
* COVERAGE, measured the same day: 61 of the 61 keys this plugin actually calls are present in all 11
* locales. The 62nd that a raw source scan reports is t('Region') appearing only inside two COMMENTS,
* which say themselves that DX-life never needed the key (they have no all-regions state).
*
* PLACEMENT: plugin-local on purpose. It is four lines shaped entirely by how THESE pages were
* written, and the repo's rule is to default to the plugin folder and promote to library/ only