@openwop/openwop-conformance 1.71.0 → 1.71.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -202,6 +202,14 @@ import caps from './vendor/capabilities.schema.json';
|
|
|
202
202
|
import caps from '@openwop/openwop-conformance/schemas/capabilities.schema.json';
|
|
203
203
|
```
|
|
204
204
|
|
|
205
|
+
**If you must vendor a copy, the copy now carries its own provenance.** The tarball's `schemas/` contains `CORPUS-STAMP.json`:
|
|
206
|
+
|
|
207
|
+
```jsonc
|
|
208
|
+
{ "suiteVersion": "1.71.1", "corpusCommit": "984ced5f…" }
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
It lives **inside** `schemas/` on purpose: `package.json`'s version is what a `cp -R schemas/ vendor/` throws away, and the stamp is what survives it. Comparing your vendored stamp against the one in your installed `@openwop/openwop-conformance` is a plain file read — no network, no sibling checkout, no pinning a branch. The stamp exists only in the published tarball, never in the repo tree, and carries no timestamp so the tarball stays reproducible.
|
|
212
|
+
|
|
205
213
|
**What this does not fix.** A host that keeps hand-copying gets no warning, and the corpus cannot see a host's local files — so this narrows the failure rather than eliminating it. Tracked as RFC 0145 G2.
|
|
206
214
|
|
|
207
215
|
The presence of these files at stable paths in the tarball is enforced by `scripts/check-npm-pack-contents.sh`, so a packaging change cannot quietly withdraw the contract copy a host depends on.
|
package/package.json
CHANGED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Provenance of this vendored schemas/ copy. See conformance/README.md \u00a7\"Resolving the contract\". Compare against the stamp in your installed @openwop/openwop-conformance to detect a stale hand-copied contract.",
|
|
3
|
+
"suiteVersion": "1.71.1",
|
|
4
|
+
"corpusCommit": "6103a20d4ba6fbab32e7c6e0dac5acaebf93887e"
|
|
5
|
+
}
|
|
@@ -515,8 +515,20 @@ function extractLocalMarkdownLinks(markdown: string): string[] {
|
|
|
515
515
|
|
|
516
516
|
// ── Scenarios ───────────────────────────────────────────────────────────
|
|
517
517
|
|
|
518
|
+
/**
|
|
519
|
+
* Provenance stamp written into the VENDORED `schemas/` at prepack (RFC 0145 G2).
|
|
520
|
+
* It never exists in the repo tree, but it DOES exist when this suite runs from the
|
|
521
|
+
* published package — where `SCHEMAS_DIR` points at the vendored copy that carries it.
|
|
522
|
+
* "Written only into the tarball" and "invisible to this gate" are therefore NOT the
|
|
523
|
+
* same claim, and the difference only shows up for a consumer, never locally.
|
|
524
|
+
* It is data about the contract, not a schema, so it is excluded by name rather than
|
|
525
|
+
* by extension — the `.json` suffix is what makes it readable, and what would
|
|
526
|
+
* otherwise feed it to Ajv.
|
|
527
|
+
*/
|
|
528
|
+
const CORPUS_STAMP = 'CORPUS-STAMP.json';
|
|
529
|
+
|
|
518
530
|
describe('spec-corpus: JSON Schemas compile under Ajv2020', () => {
|
|
519
|
-
const schemaFiles = listJsonFiles(SCHEMAS_DIR);
|
|
531
|
+
const schemaFiles = listJsonFiles(SCHEMAS_DIR).filter((f) => f !== CORPUS_STAMP);
|
|
520
532
|
const ajv = new Ajv2020({ allErrors: true, strict: false });
|
|
521
533
|
addFormats(ajv);
|
|
522
534
|
|