Skip to content

0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Sep 08:03
· 3 commits to main since this release
35d190d

Changed (breaking)

  • Performance.Descent.initialDescent is now a Performance.MachDescentBand
    rather than a DescentBand. EUROCONTROL publishes the initial descent as a
    Mach number and a rate of descent, never as an IAS, so the band the model
    asked for could never be assembled and the field was always nil.
  • Performance.Climb.machClimb is now a Performance.MachClimbBand rather
    than a bare Double, so the band's rate of climb — published by EUROCONTROL
    alongside its Mach number, and previously discarded — is available. The Mach
    itself is now machClimb?.mach.
  • RECATEU.code is now String?, because the new RECATEU.special case
    carries no CAT-X code.

Added

  • A Distribution Watch workflow that probes the FAA workbook daily and parses
    the full distribution whenever it changes — or monthly regardless, since the
    EUROCONTROL side cannot be probed cheaply. Coverage is compared against the
    previous check, so a field that quietly stops being parsed is reported even
    though it raises no error.
  • SwiftACD_E2E parse --report <path> writes a JSON report of profile counts,
    per-record errors, and how many profiles carry each field; --baseline <path>
    compares that against an earlier report and exits non-zero when a field loses
    all of its values.
  • The FAA's ICAO_WTC column now fills Categories.wakeTurbulence for types
    EUROCONTROL does not list, which carried no wake category at all before.
    EUROCONTROL still wins where both publish one, since it gives the ICAO letter
    directly, and a type the FAA records as straddling two categories
    ("Light/Medium") is left empty rather than rounded to one side.
  • RECATEU.special, the "Special" category EUROCONTROL publishes for types
    it separates case by case (A225, B2, B52), which previously decoded to
    nil alongside genuinely uncategorized types.
  • Dimensions.wingspanWithWinglets (and its wingspanWithWingletsFt scalar)
    expose the FAA's winglet/sharklet wingspan column, which the parser
    previously ignored.

Fixed

  • The EUROCONTROL index page (apd/listpage.html) is no longer parsed as an
    aircraft detail page, so the profile dictionary no longer contains an empty
    entry keyed listpage.
  • Types whose FAA row fills in only the winglet-equipped wingspan column (for
    example GLF6 and the E-Jets) no longer report a wingspan of 0 ft;
    Dimensions.wingspan falls back to that column before falling back to
    EUROCONTROL.