From 9ef5806d8ea5d89d7d8644402cf033457d5f162e Mon Sep 17 00:00:00 2001 From: Mackenzie Mathis Date: Sat, 14 Feb 2026 11:06:42 +0100 Subject: [PATCH 1/5] Update GitHub Actions workflow for PyPI release --- .github/workflows/python-package.yml | 62 +++++++++++++++++----------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9bdf7629..0a423a38 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,32 +1,48 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: Python package +name: Update pypi release on: push: - branches: [ main ] + tags: + - 'v*.*.*' pull_request: - branches: [ main ] - + branches: + - main + - public + types: + - labeled + - opened + - edited + - synchronize + - reopened jobs: - build: - + release: runs-on: ubuntu-latest - strategy: - # You can use PyPy versions in python-version. For example, pypy2 and pypy3 - matrix: - python-version: ["3.10"] steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - # You can test your matrix by printing the current Python version - - name: Display Python version - run: python -c "import sys; print(sys.version)" - #test installation of DLC-core dependencies: - - name: Install dependencies - run: pip install . + - name: Cache dependencies + id: pip-cache + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip + + - name: Install dependencies + run: | + pip install --upgrade pip + pip install wheel + pip install "packaging>=24.2" + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build and publish to PyPI + if: ${{ github.event_name == 'push' }} + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} + run: | + make dist + ls dist/ + tar tvf dist/deeplabcut-live-*.tar.gz + python3 -m twine upload --verbose dist/* From 50b7644705ee8ea0d7803c21d66da9f00ee31d38 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Feb 2026 11:16:51 +0100 Subject: [PATCH 2/5] Add missing twine installation to PyPI release workflow (#159) * Initial plan * Add twine installation to PyPI release workflow Co-authored-by: MMathisLab <28102185+MMathisLab@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: MMathisLab <28102185+MMathisLab@users.noreply.github.com> --- .github/workflows/python-package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 0a423a38..236ea6f7 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -32,6 +32,7 @@ jobs: pip install --upgrade pip pip install wheel pip install "packaging>=24.2" + pip install twine - name: Checkout code uses: actions/checkout@v3 From ee1132689d3c49fc5cd961cced13a052ff0d7ada Mon Sep 17 00:00:00 2001 From: Mackenzie Mathis Date: Sat, 14 Feb 2026 11:18:16 +0100 Subject: [PATCH 3/5] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/python-package.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 236ea6f7..adac5258 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -20,12 +20,21 @@ jobs: runs-on: ubuntu-latest steps: + - name: Setup Python + id: setup-python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + - name: Cache dependencies id: pip-cache uses: actions/cache@v4 with: path: ~/.cache/pip - key: ${{ runner.os }}-pip + key: ${{ runner.os }}-pip-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('pyproject.toml', 'requirements.txt', 'setup.cfg', 'setup.py') }} + restore-keys: | + ${{ runner.os }}-pip-${{ steps.setup-python.outputs.python-version }}- + ${{ runner.os }}-pip- - name: Install dependencies run: | From b62454bbe0ce1dd54a640b62eb633880ed487769 Mon Sep 17 00:00:00 2001 From: Mackenzie Mathis Date: Sat, 14 Feb 2026 11:20:41 +0100 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index adac5258..0ba313c8 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -44,7 +44,7 @@ jobs: pip install twine - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build and publish to PyPI if: ${{ github.event_name == 'push' }} From f2deb31e3c00a9cdd034ea15a34e90ad15c54711 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Feb 2026 11:25:14 +0100 Subject: [PATCH 5/5] Replace `make dist` with `python -m build` in PyPI workflow (#160) * Initial plan * Replace make dist with python -m build in PyPI workflow Co-authored-by: MMathisLab <28102185+MMathisLab@users.noreply.github.com> * Reorder pip install to place build before twine Co-authored-by: MMathisLab <28102185+MMathisLab@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: MMathisLab <28102185+MMathisLab@users.noreply.github.com> --- .github/workflows/python-package.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 0ba313c8..e0ed127d 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -41,6 +41,7 @@ jobs: pip install --upgrade pip pip install wheel pip install "packaging>=24.2" + pip install build pip install twine - name: Checkout code @@ -52,7 +53,7 @@ jobs: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} run: | - make dist + python -m build ls dist/ - tar tvf dist/deeplabcut-live-*.tar.gz + tar tvf dist/deeplabcut_live-*.tar.gz python3 -m twine upload --verbose dist/*