Skip to content

Releases: dills122/footy-data-kit

Release v1.1.0

Choose a tag to compare

@github-actions github-actions released this 21 Jun 02:58
2ea65ac

footy-data-kit v1.1.0

Summary

  • Expands generated lower-tier data while preserving the top-four-tier contract: tier 5 and level 6 now cover the modern 1979-2025 lower-tier slice where source pages expose usable tables.
  • Grows generated club metadata from 232 to 375 records, reflecting the broader maintained dataset scope.
  • Adds club crest asset metadata with candidate provenance, license classification, generated placeholders, and review flags so consumers can choose an asset policy that matches their rights model.

Breaking Changes

None.

Data Changes

  • Keeps tier1 through tier4 season coverage unchanged from v1.0.0.
  • Expands generated tier5 coverage from 14 to 47 seasons.
  • Expands generated level-six coverage from 5 to 47 seasons, using tier6.divisions[] for parallel divisions.
  • Adds assets.crest bundles to data/club-metadata.json. The package stores URLs and provenance only; it does not download or redistribute image binaries.
  • Classifies crest records as usable, restricted, placeholder, or needs-more-research, with review issues captured in data/club-assets-review.json.
  • Leaves Hounslow as the only true needs-more-research crest/color case, with Bridgend Town, Bromsgrove Rovers, and Solihull Borough still marked for quality review.

Validation

  • Full local release-readiness checks passed before the pre-release branch: pnpm test, pnpm test:integration, pnpm typecheck, pnpm -s verify:data, pnpm -s schema:verify, pnpm format:check, pnpm -s docs:check, pnpm -s lint, and pnpm -s release:dry-run-data.
  • The release dry-run rebuilt the full 1888-2025 generated range into a temporary directory, produced 138 season records and 375 club metadata records, and passed data verification, club-continuity verification, and JSON Schema verification.
  • data/club-metadata-review.json is clean with issueCount: 0.
  • Known club asset review issues are limited to expected restricted-license club marks, one missing research case, and three quality-review candidates.

Consumer Notes

  • trackedFromSeason and trackedToSeason remain observed generated-data bounds, not founded or dissolved dates.
  • status.current remains a current high-level metadata status, not a season-row outcome.
  • Consumers should use usable crest assets by default, include placeholder only when generated fallback shields are acceptable, and include restricted only when their product can handle club mark licensing and trademark restrictions.
  • Treat needs-review, needs-more-research, and failed crest states as non-display states unless the consuming app has its own review workflow.

Known Limitations

  • The lower-tier expansion substantially broadens generated coverage, but it is still constrained by Wikipedia source page availability and structure.
  • Most discovered club marks are license or trademark restricted, so the new crest metadata is a provenance and filtering layer rather than a blanket permission grant.
  • The remaining non-license asset review items are intentionally carried forward rather than filled with weak assertions.

Published Data

  • Season coverage: 1888-2025 (138 season records)
  • League table records: 513 tier tables
  • Club metadata records: 375
  • Club status split: 290 active, 6 historical, 79 unknown
  • Clubs with source-backed lifecycle events: 164
  • Clubs with tracked absence explanations: 125

Data Change Summary

  • Seasons before: 138
  • Seasons after: 138
  • Added seasons: 0
  • Removed seasons: 0
  • Changed seasons: 0

No season-table changes were detected after regenerating the release data.

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.json
  • all-seasons.min.json
  • wiki_overview_tables_by_season.json
  • wiki_overview_tables_by_season.min.json
  • club-metadata.json
  • release-diff.json
  • release-diff.md
  • release-notes.md

The detailed machine diff is attached as release-diff.json; the compact markdown diff is attached as release-diff.md.

Release v1.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 22:11
2cdcd8b

footy-data-kit v1.0.0

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 tierN pyramid-level contract, including Third Division North/South under tier3.divisions[] before 1958 and modern National League North/South under the level-six parallel structure.
  • Added explicit row-level administrative outcomes with outcomeStatus for 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. Legacy rsssf/ code remains outside the active ingestion path.
  • No schema break is included in v1. Consumers should still treat outcomeStatus and documented metadata fields as the clearer source for administrative outcomes and lifecycle/status interpretation.
  • trackedFromSeason and trackedToSeason in club metadata are observed coverage bounds in the generated dataset, not founded/dissolved dates.
  • status.current is a current high-level club metadata status, not a per-season table-row outcome. Use row-level fields such as outcomeStatus, wasRelegated, wasReprieved, and notes for season-specific interpretation.
  • derived.relationships is 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.

Published Data

  • Season coverage: 1888-2025 (138 season records)
  • League table records: 438 tier tables
  • Club metadata records: 232
  • Club status split: 195 active, 5 historical, 32 unknown
  • Clubs with source-backed lifecycle events: 88
  • Clubs with tracked absence explanations: 117

Data Change Summary

  • Seasons before: 138
  • Seasons after: 138
  • Added seasons: 0
  • Removed seasons: 0
  • Changed seasons: 0

No season-table changes were detected after regenerating the release data.

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.json
  • all-seasons.min.json
  • wiki_overview_tables_by_season.json
  • wiki_overview_tables_by_season.min.json
  • club-metadata.json
  • release-diff.json
  • release-diff.md
  • release-notes.md

The detailed machine diff is attached as release-diff.json; the compact markdown diff is attached as release-diff.md.

Release v0.9.1

Choose a tag to compare

@github-actions github-actions released this 19 Jun 18:15
f9359b8

footy-data-kit v0.9.1

Summary

  • Tightened existing generated data labels ahead of v1 by fixing reprieved-row flags and replacing generic overview tier titles with canonical league names.
  • Added verifier coverage so future releases fail when a row note says a club was reprieved but wasReprieved is not set.
  • Updated roadmap and next-work docs to reflect the post-v0.9.0 baseline and the v0.9.1 correctness scope.

Breaking Changes

None.

Data Changes

  • Rows with notes such as Reprieved from re-election or Reprieved from relegation now set wasReprieved: true.
  • Generic overview metadata titles such as League tables are replaced with canonical season/level labels including Premier League, Championship, League One, League Two, and Conference Premier.
  • Source leagueId values remain unchanged so consumers can still inspect the original Wikipedia heading identity.
  • The legacy promotion aggregate was regenerated from source and now drops several stale top-flight relegation flags/lists where the current source no longer marks those clubs as relegated: 1892:tier1, 1893:tier1, 1894:tier1, 1895:tier1, 1896:tier1, and 1987:tier1.

Bug Fixes

  • Fixed reprieve detection in the shared table parser and typed output normalizer.
  • Fixed generated tier metadata labels for overview pages whose source heading is generic but whose season/level position is unambiguous.

Validation

  • Added focused Jest coverage for reprieved row parsing, typed entry normalization, overview metadata title canonicalization, and verifier note/flag consistency.
  • Added a data verifier check for rows with reprieve notes and missing wasReprieved flags.

Consumer Notes

  • No schema shape change is included in this release.
  • wasRelegated semantics are unchanged for reprieved-from-relegation rows; this release adds the missing wasReprieved flag so consumers can distinguish those rows.
  • This is not a tier 5 or level 6 backfill release.

Known Limitations

  • The 1957-58 Third Division North/South restructure still needs a v1 decision on whether bottom-half placement into the new Fourth Division should remain represented as ordinary relegation or gain more explicit restructure-placement metadata.
  • Lower-tier historical coverage beyond the currently generated dataset remains deferred until after v1 readiness work.

Published Data

  • Season coverage: 1888-2025 (138 season records)
  • League table records: 438 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: 0

No season-table changes were detected after regenerating the release data.

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.json
  • all-seasons.min.json
  • wiki_overview_tables_by_season.json
  • wiki_overview_tables_by_season.min.json
  • club-metadata.json
  • release-diff.json
  • release-diff.md
  • release-notes.md

The detailed machine diff is attached as release-diff.json; the compact markdown diff is attached as release-diff.md.

Release v0.9.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 02:21
197e521

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, and 2024.
  • 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.leagueStructureSpecialCases so the published football-data schema matches the generated dataset contract.

Validation

  • Added release-notes:check, release-notes:check:all, release:check, and release:dry-run-data so release candidates can validate notes, docs output, and rebuilt data before publishing.
  • Added integration:coverage to 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:tier3 points-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 tier6 and tier7 lower-tier metadata still needs follow-up review as part of the tier 5/6 hardening work.
  • The live 2025-26 League One source currently orders Rotherham United above Port Vale while 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.json
  • all-seasons.min.json
  • wiki_overview_tables_by_season.json
  • wiki_overview_tables_by_season.min.json
  • club-metadata.json
  • release-diff.json
  • release-diff.md
  • release-notes.md

The detailed machine diff is attached as release-diff.json; the compact markdown diff is attached as release-diff.md.

Release v0.8.2

Choose a tag to compare

@github-actions github-actions released this 18 Jun 01:33
07cf694

Release Diff Summary

Metadata

  • Previous generator: wikipedia-combined
  • Previous generatedAt: 2026-06-13T01:20:30.973Z
  • Previous gitSha: f62ed8b
  • Current generator: wikipedia-combined
  • Current generatedAt: 2026-06-18T01:33:19.668Z
  • Current gitSha: 07cf694

Summary

  • Seasons before: 138
  • Seasons after: 138
  • Added seasons: 0
  • Removed seasons: 0
  • Changed seasons: 1

Changed Seasons

  • 2025: changed tiers: 1

Release v0.8.1

Choose a tag to compare

@github-actions github-actions released this 13 Jun 01:33
b76157a

Release Diff Summary

Metadata

  • Previous generator: wikipedia-combined
  • Previous generatedAt: 2026-06-13T01:20:30.973Z
  • Previous gitSha: f62ed8b
  • Current generator: wikipedia-combined
  • Current generatedAt: 2026-06-13T01:33:52.419Z
  • Current gitSha: b76157a

Summary

  • Seasons before: 138
  • Seasons after: 138
  • Added seasons: 0
  • Removed seasons: 0
  • Changed seasons: 0

Changed Seasons

  • No season-level differences detected.

Release v0.8.0

Choose a tag to compare

@github-actions github-actions released this 13 Jun 01:08
f62ed8b

Release Diff Summary

Metadata

  • Previous generator: wikipedia-combined
  • Previous generatedAt: 2026-06-13T00:10:01.248Z
  • Previous gitSha: 69bf804
  • Current generator: wikipedia-combined
  • Current generatedAt: 2026-06-13T01:07:56.792Z
  • Current gitSha: f62ed8b

Summary

  • Seasons before: 138
  • Seasons after: 137
  • Added seasons: 0
  • Removed seasons: 1
  • Changed seasons: 13
  • Removed season keys: 1984

Changed Seasons

  • 1915: season info: season metadata
  • 1916: season info: season metadata
  • 1917: season info: season metadata
  • 1918: season info: season metadata
  • 1939: season info: season metadata
  • 1940: season info: season metadata
  • 1941: season info: season metadata
  • 1942: season info: season metadata
  • 1943: season info: season metadata
  • 1944: season info: season metadata
  • ...and 3 more changed seasons

Release v0.7.0

Choose a tag to compare

@github-actions github-actions released this 14 Mar 02:26
8c37130

Release Diff Summary

Metadata

  • Previous generator: wikipedia-combined
  • Previous generatedAt: 2026-03-14T01:21:15.674Z
  • Previous gitSha: f377012
  • Current generator: wikipedia-combined
  • Current generatedAt: 2026-03-14T02:26:32.968Z
  • Current gitSha: 8c37130

Summary

  • Seasons before: 137
  • Seasons after: 137
  • Added seasons: 0
  • Removed seasons: 0
  • Changed seasons: 11

Changed Seasons

  • 1915: season info: season metadata
  • 1916: season info: season metadata
  • 1917: season info: season metadata
  • 1918: season info: season metadata
  • 1939: season info: season metadata
  • 1940: season info: season metadata
  • 1941: season info: season metadata
  • 1942: season info: season metadata
  • 1943: season info: season metadata
  • 1944: season info: season metadata
  • ...and 1 more changed seasons

Release v0.6.1

Choose a tag to compare

@github-actions github-actions released this 11 Mar 03:44
fbad414
v0.6.1

Release v0.6.0

Choose a tag to compare

@github-actions github-actions released this 07 Mar 05:17
8812799
Added more Verifiers, Cleaned Data: v0.6.0 (#16)

* Clarify Wikipedia export schema contract

* Normalize Wikipedia tier metadata schema

* update season data

* add & enhance verification scripts, found bad data gaps so filled those

* regenerated the data files

* Prepare 0.6.0 release workflow