You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The XCframework utility script that is used to process the dylibs in the Python standard library does two things:
Copies the standard library from the XCframework location in the Xcode project into the app
Processes all libraries in the lib/python3.x folder, and turns them into frameworks.
If you build a thin simulator framework (i.e., a single architecture), it explicitly excludes the libPython dylib from step (1). However, this isn't done for a multi-architecture simulator framework. This historically wasn't necessary, because the libPython is platform specific, and was contained in the lib-<arch> folder.
However, as a result of #141692, a multi-architecture framework now includes a lib folder that has a libpython dylib. This means step (1) now copies. By introducing a symlink in the lib folder, the util script now has two problems:
There's content in the lib folder that will be rejected by the App Store validation process
The util script breaks in such a way that it doesn't find the python3.X folder that needs to be processed in step (2).
This problem can be seen by building a full framework (i.e., python Apple ci --slow-ci) - a handful of tests will fail because .origin files for modules in the standard library aren't written. It doesn't affect the "--fast-ci" path (which is what GitHub Actions runs), as that only generates a "thin" framework.
Bug description:
The XCframework utility script that is used to process the dylibs in the Python standard library does two things:
lib/python3.xfolder, and turns them into frameworks.If you build a thin simulator framework (i.e., a single architecture), it explicitly excludes the libPython dylib from step (1). However, this isn't done for a multi-architecture simulator framework. This historically wasn't necessary, because the libPython is platform specific, and was contained in the
lib-<arch>folder.However, as a result of #141692, a multi-architecture framework now includes a lib folder that has a libpython dylib. This means step (1) now copies. By introducing a symlink in the lib folder, the util script now has two problems:
libfolder that will be rejected by the App Store validation processpython3.Xfolder that needs to be processed in step (2).This problem can be seen by building a full framework (i.e.,
python Apple ci --slow-ci) - a handful of tests will fail because.originfiles for modules in the standard library aren't written. It doesn't affect the "--fast-ci" path (which is what GitHub Actions runs), as that only generates a "thin" framework.CPython versions tested on:
CPython main branch
Operating systems tested on:
Other
Linked PRs