コンテンツにスキップ

カタログ

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)。

fixture説明$schemaspec の発火 ruleexit
good.wacz全 rule を pass する正常系 WACZ (browserhive producer)——0
good-webrecorder.waczwebrecorder producer の正常系。spec/lenient では valid、browserhive では cdxj/index-not-gzipped が error (byProfile になる)—cdxj/index-not-gzipped (warning)0
datapackage-no-profile.waczdatapackage.json の profile field を省略—datapackage/profile-required (error)1
datapackage-wrong-profile.waczdatapackage.json の profile が不正な値—datapackage/profile-required (error)1
datapackage-schema-only.waczData Package v2 に忠実な descriptor — $schema で名乗り、v2 が廃止した profile を持たない。WACZ 1.1 は profile を MUST とするので datapackage-no-profile と同じ error になる (仕様どうしの衝突であって書き忘れではない)https://datapackage.org/profiles/2.0/datapackage.jsondatapackage/profile-required (error)1
datapackage-unknown-version.waczwacz_version が未知の値 (9.9.9) — warning—datapackage/wacz-version-required (warning)0
datapackage-bad-hash.waczdatapackage.json の resource hash が実体と不一致—datapackage/resource-hashes (error)1
datapackage-absent.waczdatapackage.json を丸ごと欠落 (§5.2.4 の MUST 欠落 → required-files)—wacz/required-files (error)1
datapackage-frictionless-bad-name.waczresource.name が Frictionless の許容パターン外 (大文字)。WACZ 固有 rule は通り、frictionless-schema だけが warning (lenient では除外)—datapackage/frictionless-schema (warning)0
datapackage-empty-resources.waczresources を空配列に。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.waczpages/pages.jsonl が欠落 (§5.2.3 の MUST 欠落)。宣言も落とすので required-files 単独—wacz/required-files (error)1
wacz-missing-archive.waczarchive/ に WARC が無い (§5.2.1 の MUST 欠落)。宣言も落とすので required-files 単独—wacz/required-files (error)1
wacz-missing-indexes.waczindexes/ に 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.waczCDXJ の filename が archive-relative でない—cdxj/filename-archive-relative (error)1
cdxj-index-gzipped.waczindex を 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.waczCDXJ の offset が WARC 実体とずれている—cdxj/warc-offsets (error)1
cdxj-length-mismatch.waczCDXJ の length が WARC member 長と不一致 (length 分岐)—cdxj/warc-offsets (error)1
cdxj-mainpage-orphan.waczmainPageURL が CDXJ/pages に存在しない URL — warning—cdxj/pages-mainpage (warning)0
cdxj-index-not-cdxj.waczindexes/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.waczwebrecorder 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.waczWARC を DEFLATE 格納 (STORE であるべき) — warning—warc/storage-store (warning)0
warc-corrupt-member.waczWARC.gz の deflate stream を 1 byte 破壊 (decode 不能)—warc/members-independent (error), cdxj/warc-offsets (error)1
warc-payload-digest-bad.waczWARC-Payload-Digest header が実体と不一致 — warning—warc/payload-digest (warning)0
warc-extension-mismatch.waczgzip 済み 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.waczpages.jsonl の page 行が url/ts を欠く(§5.2.3)—pages/page-schema (warning)0
datapackage-digest-absent.waczdatapackage-digest.json が無い(§5.2.5 SHOULD)— warning—datapackage/digest (warning)0
datapackage-digest-bad-hash.waczdatapackage-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.waczresources に未宣言の孤児ファイル(extra.bin)— MUST—datapackage/resources-complete (warning)0
fixturerulespecbrowserhivelenient
good-webrecorder.waczcdxj/index-not-gzippedwarningerrorinfo
datapackage-frictionless-bad-name.waczdatapackage/frictionless-schemawarningwarning—
datapackage-empty-resources.waczdatapackage/resource-hasheserrorerrorerror
datapackage-empty-resources.waczdatapackage/frictionless-schemawarningwarning—
datapackage-empty-resources.waczdatapackage/frictionless-structureerrorerror—
datapackage-empty-resources.waczdatapackage/resources-completewarningwarninginfo
cdxj-filename-absolute.waczcdxj/filename-archive-relativeerrorerrorwarning
cdxj-index-gzipped.waczcdxj/index-recognised-by-wabacerrorerrorerror
cdxj-index-gzipped.waczcdxj/index-not-gzippedwarningerrorinfo
cdxj-offset-wrong.waczcdxj/warc-offsetserrorerrorwarning
cdxj-length-mismatch.waczcdxj/warc-offsetserrorerrorwarning
cdxj-mainpage-orphan.waczcdxj/pages-mainpagewarningwarninginfo
cdxj-index-not-cdxj.waczcdxj/index-valid-dataerrorerrorerror
cdxj-index-not-cdxj.waczcdxj/pages-mainpagewarningwarninginfo
cdxj-gzip-index-not-cdxj.waczcdxj/index-valid-dataerrorerrorerror
cdxj-gzip-index-not-cdxj.waczcdxj/index-not-gzippedwarningerrorinfo
warc-deflate.waczwarc/storage-storewarningwarninginfo
warc-corrupt-member.waczwarc/members-independenterrorerrorerror
warc-corrupt-member.waczcdxj/warc-offsetserrorerrorwarning
warc-extension-mismatch.waczdatapackage/resource-hasheserrorerrorerror
warc-extension-mismatch.waczdatapackage/resources-completewarningwarninginfo
warc-extension-mismatch.waczwarc/extension-gzip-matchwarningwarninginfo
pages-bad-line.waczpages/page-schemawarningwarninginfo
datapackage-digest-absent.waczdatapackage/digestwarningwarninginfo
reserved-dir-extra-file.waczwacz/reserved-dirs-cleanwarningwarninginfo
reserved-dir-extra-file.waczdatapackage/resources-completewarningwarninginfo
datapackage-orphan-file.waczdatapackage/resources-completewarningwarninginfo

上のカタログは corpus の manifest.json から生成しています。この ファイルは LFS 対象外の素の JSON なので、カタログの再生成に archive の実体も git lfs pull も要りません。

各標本は「どの rule を、どの profile で踏むはずか」を記録しています。これが corpus を fixture 集合として使える理由です — rule の挙動が変われば、謎の失敗ではなく 期待値の差分として現れます。