Skip to content

Add Automation of Python SDK Release Process.#168

Open
MOmarMiraj wants to merge 67 commits intomainfrom
omar/automate-wheel-build
Open

Add Automation of Python SDK Release Process.#168
MOmarMiraj wants to merge 67 commits intomainfrom
omar/automate-wheel-build

Conversation

@MOmarMiraj
Copy link
Copy Markdown
Contributor

@MOmarMiraj MOmarMiraj commented Apr 3, 2025

This PR will automate our python wheel building and publishing to PyPi to a GitHub action. This action will run when the RC branches are merged. This has been tested on the fork of my branch here.

I kept the build-wheels.sh script as fallback incase the action ever breaks and we need to run it manually.

On the Test RC MR below, you will see that the pipeline had the option to add release notes. I opted to remove that as GitHub's workflow manual job doesn't accept multiline strings whether its in the workflow dispatch or we grab it from the comments its a lot of workarounds and will make it messy. I feel like it will be easier to manually commit release notes.

The nice thing is the prep and release SDK flow can be incorporated into the Go SDK as well as the JS SDK.

Heres the MOmarMiraj#50 that I have on my fork which runs through this whole flow.

These are the specific jobs:
Release the SDKs on GitHub - https://github.com/MOmarMiraj/onepassword-sdk-python/actions/runs/14983407609

The workflow will be as follows:

Add the release notes manually (adding the release notes with correct markdown is very difficult for some reason so didn't include this in the prep workflow)
Run the release workflow manual on the RC branch which will build and publish on pypi aswell and increment the build and version number.
Our old flow was
make prep-release which would input the version + build + release notes (usually we would just skip this and add it manual)
make build-wheels this would build all the wheels (but build it very incorrectly and it wouldn't work correctly)
make release, we would also need to export our github token and have the pypi API token to publish on PyPi.

Dependencies Required for this PR to work:

  1. Upload GPG_SECRET_KEY and PASS_PHRASE to the repository to be able to have signed commits when we have the prep-release and release workflows.
  2. Upload a PAT on the checkout action of the commiting actions to properly sign the commits.
  3. Fix the binaries that we have to have a minimum MacOS Deployment Target of 12.0

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants