Repository navigation
Release v0.9.0
footy-data-kit v0.9.0
Summary
- Added the release-notes workflow needed for safer pre-releases, including checked-in curated notes, generated docs-site release pages, and validation that required release-note sections are present.
- Expanded source-of-truth readiness work with stronger schema verification, generated schema documentation, release dry-run checks, and an explicit integration coverage report.
- Continued the TypeScript migration by adding TypeScript checking infrastructure and converting the output generation path into typed modules.
Breaking Changes
None.
Data Changes
- No intentional generated season-table data change is included in this release.
- Added integration fixtures for 10 high-value seasons:
1921,1923,1930,1951,1991,1994,2004,2019,2021, and2024. - Expanded direct integration coverage to 43 of 138 season records, or 31.2% of the checked-in dataset.
- Added direct fixture coverage through
tier7, including split Third Division seasons, failed re-election and demotion cases, folded-club rows, the EFL rebrand, COVID/points-per-game handling, tier 5, and modern National League North/South rows.
Bug Fixes
- Fixed release schema verification ordering so generated schemas can be checked reliably during release validation.
- Added schema coverage for
seasonInfo.leagueStructureSpecialCasesso the published football-data schema matches the generated dataset contract.
Validation
- Added
release-notes:check,release-notes:check:all,release:check, andrelease:dry-run-dataso release candidates can validate notes, docs output, and rebuilt data before publishing. - Added
integration:coverageto report unique-season fixture coverage, source modes, asserted tiers, assertion counts, and tagged scenario coverage without fetching live pages. - Added a pre-release CI workflow that checks release notes, docs generation, type checking, linting, formatting, schema verification, and data verification.
- Tracked the current
2025:tier3points-order exception explicitly so the release verifier can distinguish that source-order anomaly from ordinary table-order regressions. - Added docs-site deployment gating for changes to release notes, docs-site generation, schemas, and package metadata after merge to
main.
Consumer Notes
- No intentional schema break is included in this release.
- The new release-note pages make release details easier to inspect on the docs site; the GitHub release body should stay shorter and link to the full docs page.
- Integration coverage percentage means unique seasons with at least one live integration fixture. It does not mean every row or every club in those seasons has exhaustive assertions.
Known Limitations
- Lower-tier historical coverage still needs deeper vetting before every tier can be treated as equally mature.
- TypeScript migration is in progress; the codebase is not fully typed yet.
- Current
tier6andtier7lower-tier metadata still needs follow-up review as part of the tier 5/6 hardening work. - The live
2025-26League One source currently ordersRotherham UnitedabovePort Valewhile exposing fewer points for Rotherham; this is treated as a narrow source-order exception, not as a general relaxation of table-order validation.
Published Data
- Season coverage: 1888-2025 (138 season records)
- League table records: 473 tier tables
- Club metadata records: 232
- Club status split: 196 active, 5 historical, 31 unknown
- Clubs with source-backed lifecycle events: 87
- Clubs with tracked absence explanations: 117
Data Change Summary
- Seasons before: 138
- Seasons after: 138
- Added seasons: 0
- Removed seasons: 0
- Changed seasons: 15
Changed seasons:
- 1921: season metadata
- 1957: season metadata
- 1958: season metadata
- 1987: season metadata
- 1991: season metadata
- 1992: season metadata
- 1993: season metadata
- 1994: season metadata
- 2004: season metadata
- 2019: 1 changed tier(s); season metadata
- 2021: 2 changed tier(s)
- 2022: 1 changed tier(s)
- ...and 3 more changed season(s).
Validation
Release data is regenerated from the Wikipedia overview pipeline and checked before publishing.
- Jest unit tests
- Wikipedia integration tests
- ESLint
- Prettier format check
- FootballData structural validation
- Club continuity and historical-reason validation
- Table points-order validation, with known points-per-game and source-order exceptions explicitly exempted
Assets
all-seasons.jsonall-seasons.min.jsonwiki_overview_tables_by_season.jsonwiki_overview_tables_by_season.min.jsonclub-metadata.jsonrelease-diff.jsonrelease-diff.mdrelease-notes.md
The detailed machine diff is attached as release-diff.json; the compact markdown diff is attached as release-diff.md.