The interface for entry points is currently very minimal and not well specified (basically anything goes, leading to dependencies on internal details in some recipes).
Design an better API for entry points and move existing recipes to that API. Probably use entry_points from importlib.metadata to look up recipes, to enable having external recipes (alter on)
Considerations:
Some recipes have/need configuration
The module graph can contain orphaned nodes, recipes should by default work correctly with those (e.g. not include stuff that's only required by orphaned nodes)
The current prescript configuration is ugly, it is either a file-like object with the prescript or the file/module name of the prescript. This leads to messy code where recipes create a io.StringIO() to pass the pre-script to the main engine.
There needs to be a minimal and well defined API from py2app itself for use by recipes, otherwise recipes can block further evolution of py2app.
The interface for entry points is currently very minimal and not well specified (basically anything goes, leading to dependencies on internal details in some recipes).
Design an better API for entry points and move existing recipes to that API. Probably use entry_points from importlib.metadata to look up recipes, to enable having external recipes (alter on)
Considerations:
io.StringIO()
to pass the pre-script to the main engine.