Skip to content

PingKit 0.6.2

Latest

Choose a tag to compare

@gewill gewill released this 29 Aug 12:06
· 2 commits to main since this release

PingKit 0.6.2 is a documentation release. There is no API or behavior
change
: every .swift change under Sources since 0.6.1 is a ///
comment.

Documentation

The DocC catalog grew from a single landing page to a landing page plus
two articles — Getting Started (installation through the lifecycle
contract and statistics) and Platform Notes (address families and
NAT64, the iOS local-network prompt and backgrounding, the Linux
ping_group_range requirement and identifier rewriting). Those platform
behaviors previously lived only in the README, invisible to anyone
reading the generated documentation.

Public symbol coverage, measured from the generated archive, went from
75% to 88%, and every public type now carries a summary. Two of the new
summaries record semantics that were not written down anywhere:

  • PingError separates setup failures, which throw for every run, from
    per-probe network outcomes, which reach a continuous run as
    PingResponse events and become a PingError only through the
    one-shot ping(_:).
  • PingStatistics.lost folds three fates into one number — timeouts,
    ICMP errors, and probes the socket refused to send — because only a
    matched echo reply increments received.

Swift Package Index

The repository is now public and submitted to the index
(SwiftPackageIndex/PackageList#15025). Upstream has paused new package
ingestion while they update infrastructure, so the request is queued.
The Swift version and platform badges added to the README read
"pending" until that completes, then fill in on their own.

Test

duplicateReplyCountedOnce raced a 1 ms polling task against a 50 ms
probe timeout and failed intermittently on the CI iOS Simulator. The
duplicate reply is now delivered inline from send through a new mock
hook; the assertions are unchanged, so a Pinger that counted
duplicates would still fail the test.

Verified

72 tests pass on macOS, the iOS Simulator, and Linux Swift 6.0 / 6.1.
DocC builds clean with --warnings-as-errors.