Log Message: py-pyobjc*: updated to 10.0 Version 10.0 Update bindings for macOS 14 Symbols newly introduced in macOS 14 were added to the existing bindings, and \ the following new bindings were introduced: Cinematic MediaExtension SensitiveContentAnalysis Symbols The “IMServicePlugIn” bindings are no longer available The entire framework was deprecated in macOS 10.13 and removed in macOS 14. The \ bindings can not be build using the latest SDK, and had (at best) limited use. PyObjC 10 requires Python 3.8 and no longer supports Python 3.7 Removed all MAC_OS_X_VERSION* constants from objc. These constants are needed in practice (switch to objc.available() to check for \ platform availability), and caused unnecessary code churn. The value for objc.options.deprecation_warnings is now a string instead of an \ integer. Fix unintended incompatibility with pytest in PyObjCTools.TestSupport The lazy loading machinery by default no longer uses objc.ObjCLazyModule, but \ uses module level __dir__ and __getattr__ instead. The class objc.ObjCLazyModule \ is still available, but is deprecated As a side effect of this objc is no longer an attribute of framework binding \ packages (e.g Foundation.objc is no longer a valid attribute). Another side effect of this is that all attributes added by the import system \ are now correctly present in the packages for framework bindings. And a final side effect is that private symbols (prefixed with underscore) are \ no longer imported from dependencies of framework bindings (more closely \ matching the from dependency import * behaviour that the lazy importer emulates. Add attribute __framework_identifier__ to all framework bindings with the \ identifier of the corresponding system framework. Introduce objc.createFrameworkDirAndGetattr() to create module level __dir__ and \ __getattr__ for use by framework bindings. Tests now validate the bundle identifier value used in framework bindings. This resulted in a number of changes to framework bindings with incorrect bundle \ identifier values. This shouldn’t affect user code because the bundle loader \ falls back on the framework path when the identifier cannot be found. Avoid test failures in pyobjc-core when pyobjc-framework-Quartz is not installed. A number of classes can no longer be subclasses in Python because they are \ marked as non-subclassable in the macOS 14 SDK (either directly or as \ “subclassing is deprecated”: CKAllowedSharingOptions, CKAsset, CKContainer, CKDatabase, \ CKDatabaseNotification, CKDatabaseSubscription, \ CKFetchRecordZoneChangesConfiguration, CKNotification, CKNotificationID, \ CKNotificationInfo, CKOperationConfiguration, CKOperationGroup, CKQuery, \ CKQueryCursor, CKQueryNotification, CKQuerySubscription, CKRecord, CKRecordID, \ CKRecordZone, CKRecordZoneID, CKRecordZoneNotification, \ CKRecordZoneSubscription, CKReference, CKServerChangeToken, CKShare, \ CKShareMetadata, CKShareParticipant, CKSubscription, CKSyncEngine, \ CKSyncEngineAccountChangeEvent, CKSyncEngineConfiguration, \ CKSyncEngineDidFetchChangesEvent, CKSyncEngineDidFetchRecordZoneChangesEvent, \ CKSyncEngineDidSendChangesEvent, CKSyncEngineEvent, \ CKSyncEngineFailedRecordSave, CKSyncEngineFailedZoneSave, \ CKSyncEngineFetchChangesOptions, CKSyncEngineFetchedDatabaseChangesEvent, \ CKSyncEngineFetchedRecordDeletion, CKSyncEngineFetchedRecordZoneChangesEvent, \ CKSyncEngineFetchedZoneDeletion, CKSyncEnginePendingDatabaseChange, CKSyncEnginePendingRecordZoneChange, CKSyncEnginePendingZoneDelete, \ CKSyncEnginePendingZoneSave, CKSyncEngineRecordZoneChangeBatch, \ CKSyncEngineSendChangesContext, CKSyncEngineSendChangesOptions, \ CKSyncEngineSentDatabaseChangesEvent, CKSyncEngineSentRecordZoneChangesEvent, \ CKSyncEngineState, CKSyncEngineStateSerialization, CKSyncEngineStateUpdateEvent, \ CKSyncEngineWillFetchChangesEvent, CKSyncEngineWillFetchRecordZoneChangesEvent, \ CKSyncEngineWillSendChangesEvent, CKSystemSharingUIObserver, CKUserIdentity, \ CKUserIdentityLookupInfo. The encoding of a number of basic types changes, in particular those of \ CoreFoundation struct types and SIMD struct types. None of this should affect \ user code. objc.getClassList now has an optional positional argument to ignore classes with \ a name that aren’t identifiers. Some of the functionality in CoreFoundation was rewritten in Swift in macOS 14, \ with Swift subclasses of NSArray and NSDictionary. Those classes break an \ invariant of PyObjC: the superclass of the root of the Swift class hierarchy \ changes when the class is instantiated for the first time (from NSObject to the \ correct superclass). PyObjC 10 contains a workaround for this by ignoring these classes unless they \ are needed to create a proxy for an instance (FB12286520). Fix crash when the method signature retrieved from the Objective-C runtime \ contains the class name for a method returning id. Remove old 32-bit support in metadata override files. Restructure objc.simd: The matrix types are now named simd_float3x3 instead of \ matrix_float3x3, with the older name as an alias (to match older system \ headers). Fix crash when loading the libdispatch bindings on recent macOS versions (at \ least macOS 13, possibly earlier) dispatch.dispatch_source_t is renamed to dispatch.dispatch_source_type_t to \ match the type name in C code. Xcode 15 has a bug when using weak symbols and targeting older macOS versions. \ Switch to the old linker when detecting Xcode 15.