カタログ
corpus の manifest.json から corpus:docs が生成します。再生成は
CORPUS_DIR=<path> pnpm --filter @wacz-validator/core corpus:docs です。
$schema 列は各標本の datapackage.json が宣言する値です。値が入るのは
datapackage-schema-only の 1 行だけで、残りは v1 の profile で名乗るため —
です(詳しくは manifest.json)。
全標本(spec profile)
Section titled “全標本(spec profile)”| fixture | 説明 | $schema | spec の発火 rule | exit |
|---|---|---|---|---|
good.wacz | 全 rule を pass する正常系 WACZ (browserhive producer) | — | — | 0 |
good-webrecorder.wacz | webrecorder producer の正常系。spec/lenient では valid、browserhive では cdxj/index-not-gzipped が error (byProfile になる) | — | cdxj/index-not-gzipped (warning) | 0 |
datapackage-no-profile.wacz | datapackage.json の profile field を省略 | — | datapackage/profile-required (error) | 1 |
datapackage-wrong-profile.wacz | datapackage.json の profile が不正な値 | — | datapackage/profile-required (error) | 1 |
datapackage-schema-only.wacz | Data Package v2 に忠実な descriptor — $schema で名乗り、v2 が廃止した profile を持たない。WACZ 1.1 は profile を MUST とするので datapackage-no-profile と同じ error になる (仕様どうしの衝突であって書き忘れではない) | https://datapackage.org/profiles/2.0/datapackage.json | datapackage/profile-required (error) | 1 |
datapackage-unknown-version.wacz | wacz_version が未知の値 (9.9.9) — warning | — | datapackage/wacz-version-required (warning) | 0 |
datapackage-bad-hash.wacz | datapackage.json の resource hash が実体と不一致 | — | datapackage/resource-hashes (error) | 1 |
datapackage-absent.wacz | datapackage.json を丸ごと欠落 (§5.2.4 の MUST 欠落 → required-files) | — | wacz/required-files (error) | 1 |
datapackage-frictionless-bad-name.wacz | resource.name が Frictionless の許容パターン外 (大文字)。WACZ 固有 rule は通り、frictionless-schema だけが warning (lenient では除外) | — | datapackage/frictionless-schema (warning) | 0 |
datapackage-empty-resources.wacz | resources を空配列に。frictionless-structure が構造 MUST 違反を error 検出 (resource-hashes・frictionless-schema・resources-complete も連鎖)。lenient では structure/schema は除外されるが resource-hashes が残るので valid:false のまま | — | datapackage/resource-hashes (error), datapackage/frictionless-schema (warning), datapackage/frictionless-structure (error), datapackage/resources-complete (warning) | 1 |
wacz-missing-pages.wacz | pages/pages.jsonl が欠落 (§5.2.3 の MUST 欠落)。宣言も落とすので required-files 単独 | — | wacz/required-files (error) | 1 |
wacz-missing-archive.wacz | archive/ に WARC が無い (§5.2.1 の MUST 欠落)。宣言も落とすので required-files 単独 | — | wacz/required-files (error) | 1 |
wacz-missing-indexes.wacz | indexes/ に index が無い (§5.2.2 の MUST 欠落)。required-files に加え index-recognised-by-wabac も発火 (相補的) | — | wacz/required-files (error), cdxj/index-recognised-by-wabac (error) | 1 |
cdxj-filename-absolute.wacz | CDXJ の filename が archive-relative でない | — | cdxj/filename-archive-relative (error) | 1 |
cdxj-index-gzipped.wacz | index を gzip 化 (browserhive layout)。index-not-gzipped と index-recognised-by-wabac が発火 | — | cdxj/index-recognised-by-wabac (error), cdxj/index-not-gzipped (warning) | 1 |
cdxj-offset-wrong.wacz | CDXJ の offset が WARC 実体とずれている | — | cdxj/warc-offsets (error) | 1 |
cdxj-length-mismatch.wacz | CDXJ の length が WARC member 長と不一致 (length 分岐) | — | cdxj/warc-offsets (error) | 1 |
cdxj-mainpage-orphan.wacz | mainPageURL が CDXJ/pages に存在しない URL — warning | — | cdxj/pages-mainpage (warning) | 0 |
cdxj-index-not-cdxj.wacz | indexes/index.cdxj の中身が CDXJ でない(§5.2.2 MUST contain CDXJ data)。index-valid-data が error。CDXJ entry が無いので pages-mainpage の no-cdxj-record warning も連鎖する | — | cdxj/index-valid-data (error), cdxj/pages-mainpage (warning) | 1 |
cdxj-gzip-index-not-cdxj.wacz | webrecorder layout の index.cdx.gz を gunzip すると非CDXJ(§5.2.2 後半 MAY be gzip compressed の中身検証)。index-valid-data が error、webrecorder layout 由来の index-not-gzipped も連鎖 | — | cdxj/index-valid-data (error), cdxj/index-not-gzipped (warning) | 1 |
warc-deflate.wacz | WARC を DEFLATE 格納 (STORE であるべき) — warning | — | warc/storage-store (warning) | 0 |
warc-corrupt-member.wacz | WARC.gz の deflate stream を 1 byte 破壊 (decode 不能) | — | warc/members-independent (error), cdxj/warc-offsets (error) | 1 |
warc-payload-digest-bad.wacz | WARC-Payload-Digest header が実体と不一致 — warning | — | warc/payload-digest (warning) | 0 |
warc-extension-mismatch.wacz | gzip 済み WARC を .warc.gz でなく archive/data.warc 名で格納(§5.2.1 拡張子) | — | datapackage/resource-hashes (error), datapackage/resources-complete (warning), warc/extension-gzip-match (warning) | 1 |
pages-bad-line.wacz | pages.jsonl の page 行が url/ts を欠く(§5.2.3) | — | pages/page-schema (warning) | 0 |
datapackage-digest-absent.wacz | datapackage-digest.json が無い(§5.2.5 SHOULD)— warning | — | datapackage/digest (warning) | 0 |
datapackage-digest-bad-hash.wacz | datapackage-digest.json の hash が datapackage.json と不一致 — error | — | datapackage/digest (error) | 1 |
reserved-dir-extra-file.wacz | 予約ディレクトリ archive/ に異物ファイル(archive/notes.txt)— MUST NOT | — | wacz/reserved-dirs-clean (warning), datapackage/resources-complete (warning) | 0 |
datapackage-orphan-file.wacz | resources に未宣言の孤児ファイル(extra.bin)— MUST | — | datapackage/resources-complete (warning) | 0 |
profile で severity が変わる標本
Section titled “profile で severity が変わる標本”| fixture | rule | spec | browserhive | lenient |
|---|---|---|---|---|
good-webrecorder.wacz | cdxj/index-not-gzipped | warning | error | info |
datapackage-frictionless-bad-name.wacz | datapackage/frictionless-schema | warning | warning | — |
datapackage-empty-resources.wacz | datapackage/resource-hashes | error | error | error |
datapackage-empty-resources.wacz | datapackage/frictionless-schema | warning | warning | — |
datapackage-empty-resources.wacz | datapackage/frictionless-structure | error | error | — |
datapackage-empty-resources.wacz | datapackage/resources-complete | warning | warning | info |
cdxj-filename-absolute.wacz | cdxj/filename-archive-relative | error | error | warning |
cdxj-index-gzipped.wacz | cdxj/index-recognised-by-wabac | error | error | error |
cdxj-index-gzipped.wacz | cdxj/index-not-gzipped | warning | error | info |
cdxj-offset-wrong.wacz | cdxj/warc-offsets | error | error | warning |
cdxj-length-mismatch.wacz | cdxj/warc-offsets | error | error | warning |
cdxj-mainpage-orphan.wacz | cdxj/pages-mainpage | warning | warning | info |
cdxj-index-not-cdxj.wacz | cdxj/index-valid-data | error | error | error |
cdxj-index-not-cdxj.wacz | cdxj/pages-mainpage | warning | warning | info |
cdxj-gzip-index-not-cdxj.wacz | cdxj/index-valid-data | error | error | error |
cdxj-gzip-index-not-cdxj.wacz | cdxj/index-not-gzipped | warning | error | info |
warc-deflate.wacz | warc/storage-store | warning | warning | info |
warc-corrupt-member.wacz | warc/members-independent | error | error | error |
warc-corrupt-member.wacz | cdxj/warc-offsets | error | error | warning |
warc-extension-mismatch.wacz | datapackage/resource-hashes | error | error | error |
warc-extension-mismatch.wacz | datapackage/resources-complete | warning | warning | info |
warc-extension-mismatch.wacz | warc/extension-gzip-match | warning | warning | info |
pages-bad-line.wacz | pages/page-schema | warning | warning | info |
datapackage-digest-absent.wacz | datapackage/digest | warning | warning | info |
reserved-dir-extra-file.wacz | wacz/reserved-dirs-clean | warning | warning | info |
reserved-dir-extra-file.wacz | datapackage/resources-complete | warning | warning | info |
datapackage-orphan-file.wacz | datapackage/resources-complete | warning | warning | info |
上のカタログは corpus の manifest.json から生成しています。この
ファイルは LFS 対象外の素の JSON なので、カタログの再生成に archive の実体も
git lfs pull も要りません。
各標本は「どの rule を、どの profile で踏むはずか」を記録しています。これが corpus を fixture 集合として使える理由です — rule の挙動が変われば、謎の失敗ではなく 期待値の差分として現れます。