Right now, in order to issue a release, we download the latest libasherah bundle from the GitHub project, and include the compiled libraries for all platforms, then release a single wheel that is usable for all Python versions and all platforms. This is producing, currently, a 23mb wheel file.
What we should be doing instead is building the platform-specific libraries at bundle time, and bundling only the necessary libraries. From what I have been able to figure out so far, this will involve:
- Add a git submodule for asherah-cobhan
- Split the publish workflow to do builds across all supported Python versions and platforms
- Python 3.7, 3.8, 3.9, 3.10
- MacOS, Linux
- Have the individual builds compile libasherah, then produce version/platform specific wheels
- Ensure that libasherah is contained in the sdist
This will end up producing, for example, asherah-0.2.0-cp39-cp39-macosx_11_0_x86_64.whl
Our build/publish time will be massively increased, but wheel size will be massively decreased, and there will be no more magic bundling of external libraries that could stand out as a potential red flag to external folks.
One optimization I would hope for would be that we could produce asherah-0.2.0-py3-macosx_11_0_x86_64.whl. The difference here would be that it's platform dependent, but not python version dependent. I'm just not sure how to make this work, especially with Poetry.
Right now, in order to issue a release, we download the latest
libasherahbundle from the GitHub project, and include the compiled libraries for all platforms, then release a single wheel that is usable for all Python versions and all platforms. This is producing, currently, a 23mb wheel file.What we should be doing instead is building the platform-specific libraries at bundle time, and bundling only the necessary libraries. From what I have been able to figure out so far, this will involve:
This will end up producing, for example,
asherah-0.2.0-cp39-cp39-macosx_11_0_x86_64.whlOur build/publish time will be massively increased, but wheel size will be massively decreased, and there will be no more magic bundling of external libraries that could stand out as a potential red flag to external folks.
One optimization I would hope for would be that we could produce
asherah-0.2.0-py3-macosx_11_0_x86_64.whl. The difference here would be that it's platform dependent, but not python version dependent. I'm just not sure how to make this work, especially with Poetry.