Skip to content

Conversation

@nightlark
Copy link
Contributor

Updating the packaging method to use a slightly more common build backend (scikit-build-core) for creating the wheels, and the newer pyproject.toml method of defining wheel metadata. The binary wheel created should be functionally the same as the one the existing script creates. The sdist isn't identical (this part could use a bit more work so that it functions fully offline... but most people will be instaling from the binary wheel).

The more interesting part from a maintenance perspective are the CI workflows added:

  • Automated LLVM version update PRs when the LLVM project releases a new version of clang -- removes the need to constantly monitor the upstream project for new releases
  • A CI workflow for building the sdist and wheel, that also uploads them to PyPI using Trusted Publishing instead of secret token (+ attestations for the provenance of the wheels being a CI run in this repository)
  • And dependabot to keep the various actions used in the CI workflows up to date (infrequent occurence)

Other things I'd still want to do:

  • Update the README to include basic instructions for importing/using the bindings
  • Include the LLVM License file in the wheel
  • Check if the clang bindings actually still support python 2 -- and add the py2 tag to the wheel if so

Copy link
Owner

@trolldbois trolldbois left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@trolldbois trolldbois merged commit a395c64 into trolldbois:master Feb 17, 2025
@nightlark
Copy link
Contributor Author

Side note, manually running the release workflow just verifies that the wheel built successfully and saves the artifact to be checked but doesn't do the PyPI upload. Pushing a git version tag (v18.1.8) triggers the workflow and also does the PyPI upload (assuming Trusted Publishing has been correctly set up on pypi.org for the project).

@trolldbois
Copy link
Owner

Thanks @nightlark that is definitively a huge improvement to the release process !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants