release notes
v1.0.0
Marks the Wikipedia overview pipeline as v1-ready with fail-closed release gates, documented metadata semantics, explicit administrative outcomes, and 35.5% integration season coverage.
Release
Summary
- Marks the Wikipedia overview pipeline as the v1 source-of-truth path for the supported English league-table dataset: 138 season records from 1888 through 2025 and 232 generated club metadata records.
- Turns the release process into a fail-closed workflow with dry-run completeness checks, schema validation, data verification, club-continuity verification, release-note validation, docs generation, and integration coverage reporting.
- Clarifies the v1 data contract for consumers: tier keys represent pyramid levels, row-level administrative outcomes are explicit, club metadata fields are documented by stability/caution area, and known historical ambiguity is called out instead of guessed.
Breaking Changes
None.
Data Changes
-
Preserved the canonical
tierNpyramid-level contract, including Third Division North/South undertier3.divisions[]before 1958 and modern National League North/South under the level-six parallel structure. -
Added explicit row-level administrative outcomes with
outcomeStatusfor reviewed cases including resignation, folded clubs, expulsion, reprieve, points-deduction relegation, and expelled-and-folded rows. - Corrected 1957-58 restructure semantics so Fourth Division placement rows are no longer treated as ordinary relegation outcomes.
-
Kept generated club metadata at 232 records and documented the v1 meaning of generated
observations, curated/source-backed history, derived relationships, and caution areas in
docs/v1-metadata-audit.md. - Expanded integration fixtures to 49 of 138 seasons, or 35.5%, with coverage across early Football League seasons, test-match era movement, the first Third Division, Third Division North/South, the 1958 restructure, Premier League and EFL naming eras, COVID/pandemic seasons, administrative club outcomes, tier 5, and modern level 6.
Bug Fixes
- Fixed release verification so directory scans no longer treat non-FootballData JSON sidecars as valid "0 seasons" datasets.
- Fixed release dry-run behavior so incomplete regenerated output fails before minification and schema checks can produce a false green.
- Fixed administrative/restructure verification gaps around 1957-58 placement rows and 2019-20 Bury, Stevenage, and Macclesfield Town semantics.
- Fixed reprieve and canonical tier-label handling inherited from the v0.9.1 prep work.
Validation
- Release dry-run data generation completed with 138 seasons and 232 club metadata records, then passed data verification, club-continuity verification, and JSON Schema validation.
- Integration coverage reports 49 covered seasons, 57 live integration tests, 153 table-row assertions, 218 transition-team assertions, 16 tier-metadata assertions, and 15 season-info assertions.
-
pnpm -s test:jest,pnpm -s test:integration,pnpm -s verify:data,pnpm -s lint,pnpm -s typecheck,pnpm -s format:check,pnpm -s docs:check, and release-note validation have passed during v1 prep. - Release notes and docs pages are generated from checked-in release metadata, and release-note validation now guards required sections for the active package tag.
Consumer Notes
-
The v1 supported scope is the generated English league-table dataset from the maintained
wikipedia/overview pipeline. Legacyrsssf/code remains outside the active ingestion path. -
No schema break is included in v1. Consumers should still treat
outcomeStatusand documented metadata fields as the clearer source for administrative outcomes and lifecycle/status interpretation. -
trackedFromSeasonandtrackedToSeasonin club metadata are observed coverage bounds in the generated dataset, not founded/dissolved dates. -
status.currentis a current high-level club metadata status, not a per-season table-row outcome. Use row-level fields such asoutcomeStatus,wasRelegated,wasReprieved, and notes for season-specific interpretation. -
derived.relationshipsis an audit/navigation aid for lineage-like records, not legal proof of club continuity.
Known Limitations
- V1 is source-of-truth ready for the supported generated scope; it is not a claim of exhaustive lower-tier history or complete legal-entity modeling for every club.
- Tier 5 and tier 6 are covered by targeted modern fixtures and generated data where source pages expose usable tables, but they are not yet as deeply vetted as tiers 1-4.
- Club metadata includes source-backed lifecycle and lineage work for reviewed records, but unresolved historical ambiguity is documented or deferred rather than filled with weak assertions.
- TypeScript migration remains partial. The main contracts, output normalization, verification, and release gates are stronger, but parser-heavy modules are still mostly JavaScript.