Skip to content

0.1.2 — Refinement Patch

Latest

Choose a tag to compare

@github-actions github-actions released this 25 May 17:55

Released: 2026-05-25
Type: Patch release — refinement — purely additive on the public API surface

A refinement patch over the v0.1.1 surface that:

  • Closes the architectural cohesion gap with the peer streaming media ecosystem (swift-hls-kit, swift-srt-kit, swift-rtmp-kit, swift-icecast-kit) by refactoring the CLI into the idiomatic library + thin executable pattern — which also unblocks xcodebuild test on Apple platforms.
  • Brings industry-grade uniform DocC coverage across the entire ecosystem catalog: 94 new test-traceable Swift code samples across 22 articles (CMAFKit + CMAFKitDRM).
  • Removes the swift-crypto dependency that was declared in v0.1.0 but never wired into any code path (no import Crypto call sites; verified by audit).
  • Substantially expands ProtocolBufferReader / ProtocolBufferWriter documentation to legitimize their public visibility for consumers implementing custom DRM providers.

✨ Highlights

  • 🔧 xcodebuild test on Apple platforms unblocked — the CLI refactor adopts the canonical SPM library-target + thin-executable pattern. xcodebuild test -scheme swift-cmaf-kit-Package -destination 'platform=macOS' now works.
  • 📚 94 new test-traceable code samples across 22 documentation articles. Every sample traces to an existing @Test. The DocC catalog goes from 14 swift code blocks to 113 ecosystem-wide.
  • 🧹 Cleaner dependency treeswift-crypto removed (declared-but-unwired). Now 2 SPM dependencies instead of 3.
  • 📖 ProtocolBufferReader / ProtocolBufferWriter fully documented for consumers extending DRMInitDataParsing.
  • 🎯 Catalog migrationCMAFKitCLI.docc/CMAFKitCommands.docc/ (the testable library now owns its DocC catalog).
  • Zero breaking change on the public typed surface — every v0.1.1 call site compiles unchanged.

📦 What ships in 0.1.2

Category Detail
Architectural CLI refactored — new CMAFKitCommands library target + thin CMAFKitCLI executable wrapper; mirrors the peer-library pattern across the ecosystem
Dependency swift-crypto removed (declared-but-unwired; audit verified zero import Crypto call sites)
DocC CMAFKit +68 swift samples across 15 articles (6 from the 0.1.1 surface + 9 from the 0.1.0 surface)
DocC CMAFKitDRM +26 swift samples across 7 articles documenting 9 DRM providers (Widevine, PlayReady, FairPlay, ClearKey, Marlin, ChinaDRM, Nagra, Verimatrix, AdobePrimetime)
Protocol Buffer utilities ProtocolBufferReader + ProtocolBufferWriter doc-comments expanded substantially (wire-type primitives enumerated, public-visibility justification, swift-protobuf fallback note, per-method markup)
Catalog migration CMAFKitCLI.docc/CMAFKitCommands.docc/ (testable library owns the catalog)
Cleanup Stale Session 12 comment + empty resources: [] array removed from Package.swift
CI workflows .github/workflows/docc-deploy.yml, .github/workflows/coverage-report.yml, .github/workflows/platform-builds.yml updated to reflect the new target layout

🐞 Fixed

  • MVHEVCGuide.md — corrected heroLayerIDheroEye symbol reference and try await stop()await stop() non-throwing call
  • CodecStringReference.md — corrected avc1.42E01Eavc1.42e01e (lowercase RFC 6381 conformance) and hvc1.2.4.L120.B0hvc1.2.4.L123.90 (factual sample alignment)

✅ Validation

Check Result
swift test on macOS native 3 576 tests passed (up from 3 575 in v0.1.1; +1 for the post-merge patch-coverage gate)
swift test on Linux (swift:6.2-jammy Docker) 3 575 tests passed (cross-platform parity)
xcodebuild test -scheme swift-cmaf-kit-Package -destination 'platform=macOS' TEST SUCCEEDED (now works post-refactor)
xcodebuild matrix 5 Apple platforms BUILD SUCCEEDED × 5 (macOS native + iOS Sim + tvOS Sim + watchOS Sim + visionOS Sim)
DocC × 3 (CMAFKit + CMAFKitDRM + CMAFKitCommands) Zero warnings each
Global line coverage 93.53% (≥ 92% target maintained)
Codecov patch coverage 100%
swift-format strict + swiftlint --strict Clean
Forbidden patterns × 9 9/9 clean (same patterns enforced since v0.1.0)
Public symbols removed since v0.1.1 0 (only an internal AsyncParsableCommand struct rename)

🔄 Migration

None required for public consumers. The 0.1.2 patch is purely refinement on the public typed surface — every v0.1.1 call site compiles and behaves identically.

The only API-level change is an internal entry-point rename: the AsyncParsableCommand struct previously named CMAFKitCLI is now CMAFKitCommand (in the new CMAFKitCommands library target). The executable target's @main struct retains the name CMAFKitCLI (now an 11-line wrapper).

The command-line binary cmafkit-cli and its subcommands (probe, validate, dump-tree, decrypt-init) are unchanged from a consumer perspective.

If you have code that imports CMAFKitCLI for testing purposes (unusual — this was an executable target), migrate to import CMAFKitCommands.


🌐 Cross-impact for downstream libraries

  • HLSKit consumers — the 68 new CMAFKit DocC samples make HLSKit integration easier: complete code examples now ship for EXT-X-MEDIA CHARACTERISTICS emission, LANGUAGE attribute, RFC 6381 codec strings, MV-HEVC spatial composition, accessibility primitives.
  • Future DASH adopters — same readiness: cross-format primitives now have complete sample coverage in DocC.
  • CMAFKitDRM consumers — 9 DRM providers documented with test-traceable samples (was 7 swift blocks for 9 providers; now 33). ProtocolBufferReader / ProtocolBufferWriter documented for custom DRM provider implementations.

📚 Documentation

113 swift code samples across 25 documentation articles. Every sample traces to one of 3 576+ tests. Industry-grade uniform coverage achieved ecosystem-wide.

📖 Full DocC: https://atelier-socle.github.io/swift-cmaf-kit/


📊 Metrics

  • +94 swift code samples ecosystem-wide (14 → 113 blocks)
  • 22 articles enriched (6 + 9 + 7)
  • +~1900 LOC of test-traceable doc samples
  • -15 LOC net code change (CLI slimming + swift-crypto removal + cleanup)
  • Zero public symbol removed since v0.1.1
  • Zero forbidden patterns introduced
  • 3 SPM dependencies → 2 (swift-crypto removed; swift-argument-parser + swift-docc-plugin remaining)
  • 6 → 7 targets (CMAFKitCommands library added)

💻 Compatibility

  • Swift 6.2 strict concurrency
  • Apple platforms: macOS 14 / iOS 17 / iPadOS 17 / tvOS 17 / watchOS 10 / visionOS 1
  • Mac Catalyst
  • Linux — Swift 6.2.4, validated on swift:6.2-jammy Docker

📋 Full changelog

See CHANGELOG.md [0.1.2] for the complete shipped surface.


🏷️ License

Apache 2.0 — see LICENSE.


Atelier Socle SAS — building a pure-Swift open-source streaming media ecosystem.

What's Changed

  • swift-cmaf-kit 0.1.2 — Refinement Patch by @Sweefties in #2

Full Changelog: 0.1.1...0.1.2