Skip to content

1.0.3

Latest

Choose a tag to compare

@coenttb coenttb released this 05 Nov 12:04
· 1 commit to main since this release

Bug Fixes

Swift 6 Concurrency Safety

Fixed task-local value binding issues that could cause runtime errors with Swift 6's strict concurrency checking.

Technical Changes:

  • Fixed dependency value capture in async rendering tasks (iOS & macOS)
  • Enabled StrictConcurrency feature flag on HtmlToPdfLive target
  • Added comprehensive Swift6ConcurrencyTests suite (6 test cases)
  • Replaced intermediate reference variables with proper capture lists
  • Verified full compliance with Swift 6 strict concurrency mode

Impact:

  • Eliminates potential runtime crashes when using @dependency in concurrent contexts
  • Provides regression testing for task-local binding edge cases
  • Ensures library remains forward-compatible with future Swift concurrency improvements

Resolves #16. Thank you @YasserB94 for identifying and fixing this critical concurrency issue.


Improvements

iOS CI Testing Infrastructure

Added comprehensive iOS simulator testing to continuous integration.

Technical Changes:

  • iOS Debug builds tested on every PR/push
  • iOS Release builds with strict concurrency verification
  • Dynamic simulator selection (first available iPhone)
  • Matches macOS test coverage (skips Performance/Stress/Memory tests)
  • Platform-agnostic test suite (no hardcoded platform references)

Benefits:

  • Catches iOS-specific regressions before release
  • Ensures UIKit codepath (UIPrintPageRenderer, WKWebView) works correctly
  • Verifies cross-platform compatibility of rendering logic

CI/CD & Tooling

  • Pinned SwiftLint to 0.62.2 for consistency
  • Improved GitHub Actions caching strategy
  • Added Swift 6.2 as minimum required version
  • Enhanced API breaking change detection workflow
  • Migrated formatting workflows to Linux runners for performance

Internal Changes

  • Code formatting improvements (swift-format)
  • Documentation accuracy improvements
  • SwiftLint configuration refinements
  • Removed obsolete Package@swift-6.0.swift file
  • Enhanced test isolation and reliability

Verification

All changes tested on:

  • macOS 14+ (Debug & Release, Xcode 26.0, Swift 6.2)
  • iOS 17+ (Debug & Release, iOS Simulator, Swift 6.2)
  • Swift 6 Strict Concurrency Mode enabled

Contributors

Thank you @YasserB94 for #17.


Full Changelog: 1.0.2...1.0.3