ronaldoussoren / py2app

py2app is a Python setuptools command which will allow you to make standalone Mac OS X application bundles and plugins from Python scripts.
Other
340 stars 36 forks source link

supplement modulegraph by having a runtime module-discovery component #486

Open glyph opened 1 year ago

glyph commented 1 year ago

A very common failure mode for me with py2app is to develop in --alias mode and then forget to test that the app launches at all before building it; and when it fails to launch, it almost always fails because I need to add a static import statement to account for some dynamic runtime behavior inside a library that is doing who-knows-what to dynamically satisfy its dependencies in a way that modulegraph can't read.

However, all of these would be avoided if, when running in --alias mode, I could click a button to dump out a list of everything that's been imported into a big --includes configuration for py2app.

It would be great if there were some test mode where py2app would build, launch, read the list of imported modules, and then exit. modulegraph is fine like 80% of the time, so this would really only need to be invoked if some kind of startup self-test fails.

ronaldoussoren commented 1 year ago

Seems like a useful addition.

I'm currently limiting the release branch to bugfixes only as I'm (very slowly) rewriting py2app on the master branch. I'll look into adding this feature to that code base once it actually builds applications (getting there, but I'm having very little time to work on this at the moment).

Long term I'd still prefer to include recipes for anything remotely popular on PyPI, but that will take time and doesn't account for the long tail of packages and in-house development.