Greetings list,

> 3. Executables forms other than "single file".
4. Support for C extensions.

@CHB, @Barnwell 
I haven't replied in full to a previous email of Mr Moore,
but the no support for C extensions  is a crucial point
for packaging. If the stdlib has to support a packaging tool,
it has to not provide support for C extensions. 

It has to do with the nature of Python. The indecisiveness of
to include or not C extensions halted the packaging issue.
Python is very backwards (in terms of packaging) compared
to where it should have been given it's maturity and adoption
index. C is not in the spirit of Python. Currently, the only tool
included in the stdlib for packaging is Zipapps. As such i am 100%
for Zipapps not to include C extensions and to be in a single file.
This is in the spirit of packaging for VM-based languages.
In other words we must enhance Zipapps as far as possible.
The branding of language X runs on billions of devices is as true
as it is for Python. We just have to enhance Zipapp more.

Notes:

- Single files: one must be aware has some severe limitations such
as you cannot pack sqlite dbs and save your changes. You can only
read data. This applies not only for Zipapps but also for .exe and even 
jar files. You have to include the path to the resources. This is a reasonable
choice. This is why many projects has the structure:

folder1/
folder2/
folder3/
main_compressed_entry_point

The resources are expressed as relative paths and the tool, much like
PyInstaller does, gives you your project with codefiles compressed while
keeping such a structure

- C extensions: Everybody is welcomed to find ideas on how to execute C
extensions while maintaining a Zipped state. In the lack of such a solution,
it's better to Zipapps to leave it out. 

That's why including the ability to have native executables is a must for Python.
Python is different from other languages in the sense that for a dynamic lang, it
has close ties with C which gives it fearful powers.

To sum up: 
For pure Py projects, use Zipapps.
For projects including C-extensions use the tool for native executables.

Kind Regards,

Abdur-Rahmaan Janhangeer
github
Mauritius