From 4d09cc64a13cce1d2599ca0979eff5ac16cee7c4 Mon Sep 17 00:00:00 2001 From: wanlin31 Date: Wed, 10 Sep 2025 20:04:54 +0000 Subject: [PATCH] add python seprate release artifact --- .github/workflows/release-python-sdk.yml | 45 ++++++++++++++++++++++++ CONTRIBUTING.md | 25 +++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 .github/workflows/release-python-sdk.yml diff --git a/.github/workflows/release-python-sdk.yml b/.github/workflows/release-python-sdk.yml new file mode 100644 index 0000000..815ed0e --- /dev/null +++ b/.github/workflows/release-python-sdk.yml @@ -0,0 +1,45 @@ +# .github/workflows/release-python-sdk.yml + +name: Release Python SDK + +# This workflow runs when a tag starting with 'sdks/python/v' is pushed +on: + push: + tags: + - 'sdks/python/v*' + workflow_dispatch: + +permissions: + contents: write + +jobs: + build-and-upload: + name: Build Python SDK artifact + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - name: Install build dependencies + run: pip install build twine + + - name: Build Python wheel and source distribution + run: python3 -m build + working-directory: ./sdks/python + + - name: Create GitHub Release and Upload Artifacts + uses: softprops/action-gh-release@v2 + with: + # This will upload all files from the build output directory + # (e.g., your-package-0.2.0-py3-none-any.whl and your-package-0.2.0.tar.gz) + files: sdks/python/dist/* + # This will create a draft release require teammate to manually publish, once + # we are confident with the release process, we can set draft: false, which + # will automatic create the release. + draft: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ed9fc62..2aaa1fc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,3 +91,28 @@ After a new `test-server` binary is released, you need to update the checksums p 6. Publish the new version to npm following internal guidance at go/wombat-dressing-room. (When prompted, create a package specific publish token for `test-server-sdk`.) +### Release python sdk + +Publishing Python sdk is a relatively independent process, you can release python sdk without +any change on golang `test-server` binary. + +1. Ensure your local `main` branch is up-to-date and clean: + ```sh + git checkout main && git pull origin main && git clean -xdf + ``` +2. Update the version in `sdks/python/pyproject.toml`, create and merge the PR. + ``` + git add . + git commit -m "chore: Prepare for Python SDK release v0.1.0" + git push origin release/python-v0.1.0 + ``` +4. Find the current version of the python sdk in `sdks/python/pyproject.toml`. And + find the current golang test-server version, make sure + `sdks/python/src/test-server-sdk/checksums.json` include this version. +3. Create and push a new version tag. For example, for version `sdks/python/v0.1.0-core.0.2.8`: + ```sh + git tag -a sdks/python/v0.1.0-core.0.2.8 -m "Release Python SDK v0.1.0 for Core v0.2.8" + git push origin sdks/python/v0.1.0-core.0.2.8 + ``` +4. Find the draft release, verify the executable is built and uplaoaded successfully. +5. Publish the relase \ No newline at end of file