Skip to content

Releases: RISCfuture/SwiftMETAR

3.2.0

Choose a tag to compare

@RISCfuture RISCfuture released this 07 Jul 05:06
c16d61e

Added

  • Linux support for the core SwiftMETAR library and the decode-winds-aloft
    CLI. Conditional FoundationNetworking/FoundationXML imports and a
    String(localized:) shim cover the platform gaps. The METARFormatting
    module and the decode-metar/decode-taf CLIs remain Apple-only, as they
    rely on Measurement.FormatStyle, which open-source Foundation does not
    provide; all targets still build on Apple platforms.

3.1.0

Choose a tag to compare

@RISCfuture RISCfuture released this 27 Jun 18:19
29f3b6c

Changed

  • Adopted Swift's Approachable Concurrency upcoming-feature flags
    (NonisolatedNonsendingByDefault and InferIsolatedConformances),
    aligning the package's async execution semantics with modern Swift 6
    defaults. No public API signatures changed: the async from(string:)
    parsers and the from(xml:) AsyncStream producers behave the same
    from a caller's perspective.
  • Dropped the now-redundant @preconcurrency qualifier from
    import RegexBuilder across all parser files. Sendability of the
    cached, actor-confined compiled regexes is still provided by the
    package's Regex: @retroactive @unchecked Sendable conformance, which
    is retained until the standard library conforms Regex to Sendable
    itself.

3.0.0

Choose a tag to compare

@RISCfuture RISCfuture released this 01 May 22:20
800c87c

[3.0.0] - 2026-03-20

Added

  • XML parsing for METARs and TAFs from aviationweather.gov cache files.
    • METAR.from(xml:) and TAF.from(xml:) return AsyncStream<Result<..., Error>>
      for resilient batch parsing with per-entry error handling.
  • Winds aloft parsing.

Changed

  • CLI tools (decode-metar, decode-taf) now support --format xml and
    --output json options.
  • Log messages in CLI tools now go to stderr to keep JSON output clean.
  • Updated to Swift 6.2.
  • Added swift-format for code formatting.

Fixed

  • Fixed CSV parsing for updated aviationweather.gov format (quoted raw text,
    separate station_id column).
  • Fixed handling of TAF periods where the end date comes before the start date
    (e.g., crossing month boundaries).

2.0.1

Choose a tag to compare

@RISCfuture RISCfuture released this 20 Aug 08:03
13d066f

Fixed

  • Better handling of pressure tendency remarks ("5 group").
    • Pressure change value is negated for downwards trends.
    • Localized string fixed to indicate pressure value is a change.

2.0.0

Choose a tag to compare

@RISCfuture RISCfuture released this 20 Aug 08:01
b4c209d

This version introduces Swift 6 language support and concurrency mode.

Added

  • Swift 6 language support and concurrency mode.
    • METAR, TAF, and associated objects all now Sendable.
    • parse functions are now async.
  • Adds METARFormatting library for locale-aware METAR and TAF formatting.
    • Adds DecodeMETAR and DecodeTAF CLI tools to demonstrate formatting library.
    • Adds documentation for METARFormatting.
  • Group now includes the raw text as text.

Changed

  • NSLocalizedString usages removed in favor of xcstrings catalogs and
    String(localized:)
  • Added Visibility.notRecorded case to differentiate "VSNO" from "M".
  • Minimum OS versions advanced.
  • Added some utility functions to Weather and Remark.
  • Made Remark.Urgency sortable.

Fixed

  • More lenient parsing of direction ranges.
  • Removed unused Error case.
  • Fixed handling of TAF periods that cross month boundaries.
  • Documentation fixes.

Internal Changes

  • Uses new RegexBuilder API instead of NSRegularExpression.
    • METAR, TAF, and Remark parsers are now actors.

Removed

  • Removes METARGauntlet as the functionality is now included in the new CLI
    tools.

1.0.0

Choose a tag to compare

@RISCfuture RISCfuture released this 20 Aug 08:01
7310667

Initial release.