Skip to content

Release v1.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 22:11
· 8 commits to main since this release
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.