I like pyapp a lot more than the alternatives (e.g .pyinstaller which in single-file model is agonisingly slow to launch and w/ multi-file you run into execution/quarantine issues on Mac) - there's just a couple of things that maybe could be done better?
If I were to package my app with pyapp, I'd need to think about data persistence - my app's size on disk ballooning with every new release my users download/install. What can we do to mitigate this? I see that pyapp uses https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.data_local_dir but $TMPDIR might be more appropriate? Should a new release be able to prune old releases? I also worry about the terminology - pyapp says that it's "installing" my app but it's really just unpacking it (+ fetching dependencies if skip_install is not set, but Windows users in particular might imagine something else entirely). Users might feel a little uneasy about a self-installing CLI - "unpack" is more palatable. I might want to let users decide what the unpack location should be, e.g. if pyapp could be told to respect the value of MYAPPNAME_UNPACK_LOCATION env var falling back on the default dir if it's unset.
The other thing I'd like is maybe to simplify the bundling of app deps. I see there's now the option to bundle an sdist/wheel of my app in addition to the Python dist, but pyapp will still need to grab all of my Python dependencies from PyPI. Would it be possible, say, for pyapp to unpack the Python dist AOT, install the provided wheel and all of its dependencies in it and repack it? I'm doing this manually right now (having to remap python-build-standalone releases to Rust build targets),but it'd be really helpful if it could be managed by pyapp.