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:
PingErrorseparates setup failures, which throw for every run, from
per-probe network outcomes, which reach a continuous run as
PingResponseevents and become aPingErroronly through the
one-shotping(_:).PingStatistics.lostfolds three fates into one number — timeouts,
ICMP errors, and probes the socket refused to send — because only a
matched echo reply incrementsreceived.
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.