Skip to content
This repository was archived by the owner on Oct 21, 2025. It is now read-only.
This repository was archived by the owner on Oct 21, 2025. It is now read-only.

Set up individual platform builds #7

@tarkatronic

Description

@tarkatronic

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:

  1. Add a git submodule for asherah-cobhan
  2. 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
  1. Have the individual builds compile libasherah, then produce version/platform specific wheels
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    MVP

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions