Next | Query returned 5 messages, browsing 1 to 10 | previous

History of commit frequency

CVS Commit History:

   2024-04-02 19:26:02 by Adam Ciarcinski | Files touched by this commit (150) | Package updated
Log message:
py-pyobjc*: updated to 10.2

Version 10.2
Fix a number of warnings found by adding -Wpendantic to the CFLAGS for pyobjc-core

Fix undefined behaviour warnings:

Suppress the undefined behaviour warning about out of range values in double to \ 
(unsigned) long long in the OC_PythonNumber implementation as these are \ 
unavoidable when matching NSNumber behaviour.
Switch to using memcpy instead of direct assignment in converting plain C values \ 
to/from Python because “packed” structs might result in accessing values \ 
through unaligned pointers.
Updated bindings for the macOS 14.4 SDK (Xcode 15.3)

Added bindings for the “BrowserEngineKit” framework on macOS 14.4 or later.

Add obj.registerPathType() to register a Python type as a path like type with \ 
PyObjC. By default only pathlib.Path is registered as such.

A minor backward compatibility issue is that instances of the registered types \ 
will be written to NSArchive and NSKeyArchive archives as instances of NSURL and \ 
won’t roundtrip back to the original Python type. This might change in future \ 
versions of PyObjC, at least for pathlib.Path.

Instances of pathlib.Path (and other types registered with \ 
objc.registerPathType) are bridged into Objective-C as instances of NSURL.

This means that these types can be used as values passed to APIs expecting a \ 
filesystem URL, e.g.:


path = pathlib.Path(“/Applications/”) bundle = \ 
NSBundle.bundleWithURL_(path) ```

Fix some warnings in pyobjc-core when testing with Python 3.13a4.

Add support for NSBezierPathElementQuadraticCurveTo in \ 

Fix compilation error in pyobjc-framework-Cocoa with a recent deployment target.
   2024-01-23 23:15:03 by Adam Ciarcinski | Files touched by this commit (154) | Package updated
Log message:
py-pyobjc*: updated to 10.1

Version 10.1
Upgrade framework bindings for the macOS 14.2 SDK

Make sure the and scripts in the repository work when run \ 
out of tree.

os.fspath(someURL) will not work with Cocoa URLs (NSURL, CFURLRef) that refer to \ 
local filesystem paths. TypeError will be raised for other URLs.

This enables using regular Python filesystem APIs with URLs that refer to local \ 
filesystem paths.

Fix compilation issue when building on macOS 13 or earlier

Fix build error on ancient macOS versions where clang doesn’t support -flto=thin.

Add a workaround for a crash in pyobjc-core when running the testsuite on macOS \ 

Fix some issues found while running the testsuite on macOS 10.9 to macOS 13, \ 
instead of only testing on the latest macOS version. Most issues found where \ 
problems in the testsuite itself, but not all.

Some of the changes skip tests on older macOS versions (10.12, 10.13 and 10.14) \ 
due to running into what appears to be crashing platform bugs.

Fix dependencies between framework binding packages

Fix build error with the current Python 3.13 alpha release (3.13a2).
   2023-11-19 18:03:09 by Adam Ciarcinski | Files touched by this commit (457) | Package updated
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:

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 \ 

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, \ 

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 \ 

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.
   2023-06-18 07:03:10 by Adam Ciarcinski | Files touched by this commit (143) | Package updated
Log message:
py-pyobjc*: updated to 9.2


Version 9.2

Added warning objc.ObjCSuperWarning that is used to warn about classes that use \ 
argument-less super without binding that name to objc.super.

Document that objc.super must be used instead of builtin.super when calling \ 
superclass methods in a Cocoa subclass.

Add minimal pyproject.toml to all subprojects

Fix crash in pyobjc-core when using Python 3.12a7.

Added explicit tests for dealing with Objective-C categories that are loaded \ 
while using classes from Python.

Fix the version of macOS where the SafariServices framework is present.

Fixed some issues found by testing on a macOS 10.11 system

Trying to implement a method with SIMD types as arguments or return value will \ 
now give a more useful error when the bridge does not support the signature.

Fix incomplete metadata for CoreMediaIO.CMIOObjectSetPropertyData

Fix incorrect metadata

Removed Quartz.CGColorConversionInfoCreateFromListWithArguments. This function \ 
was already documented as unsupported, but was still present in the framework \ 

Removed Quartz.CVPixelBufferCreateWithPlanarBytes. This function requires a \ 
manual binding, but was still present with a generic (and non-working) binding.

Removed CoreMedia.CMBufferQueueCreate, \ 
CoreMedia.CMBufferQueueGetCallbacksForSampleBuffersSortedByOutputPTS, \ 
CoreMedia.CMBufferQueueGetCallbacksForUnsortedSampleBuffers, \ 
CoreMedia.CMVideoFormatDescriptionGetH264ParameterSetAtIndex, \ 
CoreMedia.CMVideoFormatDescriptionGetHVECParameterSetAtIndex, These functions \ 
require a manual binding, but were still present with a generic (and \ 
non-working) binding.

Explicitly exclude definitions from CMIOHardwarePlugIn.h from the CoreMediaIO \ 

Added deref_result_pointer key to the metadata for a return value. Use this when \ 
a callable returns a pointer to a single value (for example \ 

Removed unsupported functions from the ApplicationServices bindings (not named \ 
individually due to the size of the list). Also fixed annotations for other \ 
ApplicationServices bindings.

Add manual binding for CFNetwork.CFNetServiceBrowserCreate, \ 
CFNetwork.CFNetServiceSetClient, and CFNetwork.CFNetServiceMonitorCreate.

Fix incompatibility with Python 3.12 beta 1.
   2023-04-07 07:25:21 by Adam Ciarcinski | Files touched by this commit (140) | Package updated
Log message:
py-pyobjc: updated to 9.0.1

Version 9.0.1
* Fix metadata for \ 
webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler: \ 
and \ 
webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler: \ 
in the WebKit bindings.

* Reintroduce support for bridgesupport files that was dropped in 9.0.

There are external users for this interface and the replacement used by PyObjC \ 
itself is not yet in a state where it can be used by other projects.

Framework bindings were updated for the SDK included in Xcode 14.1

* Fix bad markup in overview of wrapped frameworks

* Fix compile error with Python 3.12

Version 9.0
Support for macOS 13 (Xcode 14 beta 4)

Updated framework bindings for macOS 13

The list below lists the frameworks that have API changes that affect the \ 
framework bindings.

Added bindings for the following frameworks (all new in macOS 13):

The definition of a number of basic structs has moved in the SDK for macOS 13 \ 
and PyObjC conforms to this change on all platforms.

In particular:

CGPoint, CGSize, CGVector, CGRect, CGAffineTransform and \ 
CGAffineTransformComponents are now defined in the CoreFoundation module.
NSPoint, NSSize and NSRect are now aliases for the corresponding CG* types
(instead of the other way around in previous versions of PyObjC).
Both changes should require no changes to scripts, unless code relies on the \ 
particular __name__ of a type.

The extension API (“pyobjc-api.h”) now has nullability annotations, which \ 
may lead to compilation errors or warnings when compiling 3th-party extensions \ 
using this API.

The extension API (“pyobjc-api.h”) has a changed interface for creating \ 
method IMPs, because of this extensions for older versions of PyObjC cannot be \ 
used with PyObjC 9.

* PyObjC 9.0 requires Python 3.7 or later

* Remove support for BridgeSupport files

The bridge itself hasn’t used these files for a long time, and system \ 
bridgesupport files are basically unusable.

* Remove objc._setClassExtender

This was an internal function that’s no longer used by PyObjC itself.

* Remove -[OC_PythonNumber getValue:forType:]

This method is never actually used by the system and is not part of the NSNumber \ 
interface (but possibly was in the past)

* Removed bindings for the Message and ServerNotification frameworks.

Both frameworks were removed in macOS 10.9 and hence cannot be used on a \ 
platform that’s still supported by PyObjC.

* Removed the type attribute for ObjCPointer

The typestr attribute contains the same value and has more consistent naming \ 
with the rest of PyObjC.

* Quarrtz.CVPixelBufferCreateWithBytes now conforms to the PyObjC standard for \ 
returning values: it returns a tuple of two values, the C return value and the \ 
value return through pixelBufferOut.

In older versions the return value was only the value return through pixelBufferOut.

464: The encodings objc._C_NSBOOL and objc._C_BOOL are now treated exactly the \ 
same as the types BOOL and bool have the same size and representation on arm64 \ 
and x86_64.

* Add support for SIMD types in APIs (types such as vector_float3)

The python representation of these types are types with the same name in defined \ 
in objc.simd.

Because the FFI library used by PyObjC (libffi) does not support these types the \ 
bridge only supports the method signatures found in system frameworks, other \ 
signatures will result in exceptions at runtime.

The relevant libffi issue for this is 408. But note that even if that issue were \ 
to be fixed PyObjC likely won’t use SIMD support in libffi until that’s \ 
merged in the system version on macOS.

Because of the previous change APIs that have a SIMD type are now callable from \ 

Changes due to generic implementation for SIMD types:

SpriteKit.SK3DNode.projectPoint_: The result is now objc.simd.vector_float3 \ 
instead of a tuple
SpriteKit.SK3DNode.unprojectPoint_: The result is now objc.simd.vector_float3 \ 
instead of a tuple
SpriteKit.SKFieldNode.direction: The result is now objc.simd.vector_float3 \ 
instead of a tuple
SpriteKit.SKPhysicsWorld.sampleFieldsAt_: The result is now \ 
objc.simd.vector_float3 instead of a tuple
Still not supported (requires some more infrastructure):

The registered metadata can now contain a key full_signature with the full \ 
encoding type signature for a method. This is used to replace the encoding \ 
extracted from the Objective-C runtime when one or more types have an empty \ 
encoding in the Objective-C runtime (such as the SIMD types mentioned earlier)

The Objective-C proxy for Python methods that require a custom helper (instead \ 
of using libffi) now use imp_implementationWithBlock.

* For a number of classes in AVFoundation the system actually uses instances \ 
from a parallel class hierarchy with _Tundra as a suffix of the class name.

Updated the metadata generator to automatically register the same metadata \ 
updates for these classes as for the original classes.

* Fix typos in CoreMedioIO metadata for CoreFoundation types

* Added two new assertions to PyObjCTools.TestSupport.TestCase:

These assert that the type of an argument or return value is a Objective-C or \ 
CoreFoundation object, or a pointer to one.

Fix internal error when an object that cannot be used in a boolean context is \ 
used for an ObjC argument that expects a bool or BOOL value.

* Fix incompatibility with Nuitka.

Earlier version of PyObjC failed when compiled using Nuitka, this version does \ 
work when using Nuitka 1.1.6 or later.


The automatic calculation of the method signature in selector() assumes that \ 
methods return id for Nuitka compiled code.

That should not be a problem in practice.

As a side effect of this builtin functions are accepted as the callable for a \ 
selector, even when not specifying a signature (e.g. objc.selector(dir) now \ 

Fixed crash in objc.selector due to uninitialized memory.

Move helpers for NSInvocation from pyobjc-framework-Cocoa to pyobjc-core.

* Don’t use static buffer during creation of “native” selector objects

This can avoid an objc.error exception when introspecting existing Cocoa classes.

* Revert change that made it impossible to replace a method with a property.

Next | Query returned 5 messages, browsing 1 to 10 | previous