Skip to content

0.10.0

Compare
Choose a tag to compare
@orchetect orchetect released this 03 Feb 00:35
· 8 commits to main since this release

Overview

This release represents an overhaul of internals to make MIDIKit Swift 6 strict concurrency compatible.

Efforts have been made to retain as much flexibility and backwards-compatibility as possible while adopting new language features and requirements where appropriate.

Note

Minimum platform requirements are now macOS 10.15, iOS 13, tvOS 13, watchOS 6.
Xcode 16 is required to build.

Improvements

  • Refactors for Swift 6 strict concurrency (#222, #228)
    • MIDIKitIO:
      • MIDIManager: Now conforms to Sendable
      • ObservableMIDIManager: Refactored to be @Observable (observable devices and endpoints properties)
      • The prior ObservableMIDIManager class which conforms to ObservableObject has been renamed ObservableObjectMIDIManager for legacy support (observable devices and endpoints properties)
      • MIDIEndpoints: Added inputsOwned and outputsOwned properties for convenience
      • MIDI1Parser and MIDI2Parser: Now conform to Sendable
    • MIDIKitControlSurfaces:
      • HUIHost and HUISurface: Now conform to @Observable and Sendable
    • MIDIKitSync:
      • MTCGenerator and MTCReceiver: Now conform to Sendable

Changes

  • All package library products are no longer forced as static
  • MIDIManager: Removed NSObject superclass inheritance

Deprecations

  • Removed unofficialBusSelect MIDI event - unsupported by Apple operating systems (c9bade9)

Maintenance

  • Migrated unit tests to Swift Testing (#228)
  • Removed XCTestUtils dependency (#228)
  • Codebase cleanup
  • Updated documentation
  • Updated example projects