From 7f8b98cb66b78b17dc0957f269788d440e1ce799 Mon Sep 17 00:00:00 2001 From: MVCowley <51127523+MVCowley@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:53:44 +0100 Subject: [PATCH 1/6] build(version): Bump version in pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 33dbb2d..f3ae425 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "decombinator" -version = "5.0.0.dev0" +version = "5.0.1" description = "A fast and efficient tool for the analysis of T-cell receptor repertoire sequences produced by deep sequencing." readme = "README.md" license = {file = "LICENSE"} From 600f80cf28c43afde4658ff5d2f5e50a81539c3f Mon Sep 17 00:00:00 2001 From: MVCowley <51127523+MVCowley@users.noreply.github.com> Date: Tue, 5 Aug 2025 19:14:16 +0100 Subject: [PATCH 2/6] build(version): add version attribute --- src/decombinator/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/decombinator/__init__.py b/src/decombinator/__init__.py index e69de29..2fe5fde 100644 --- a/src/decombinator/__init__.py +++ b/src/decombinator/__init__.py @@ -0,0 +1 @@ +__version__ = "5.0.1" From c75680ec64eedae1ed407a27081d339475edf3a8 Mon Sep 17 00:00:00 2001 From: MVCowley <51127523+MVCowley@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:23:03 +0100 Subject: [PATCH 3/6] buld(actions): update sigstore action --- .github/workflows/publish-to-pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 15db348..68bc3d2 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -70,7 +70,7 @@ jobs: name: python-package-distributions path: dist/ - name: sign-with-sigstore - uses: sigstore/gh-action-sigstore-python@v2.1.1 + uses: sigstore/gh-action-sigstore-python@v3.0.1 with: inputs: >- ./dist/*.tar.gz @@ -117,4 +117,4 @@ jobs: - name: publish-dist-to-testpypi uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: https://test.pypi.org/legacy/ \ No newline at end of file + repository-url: https://test.pypi.org/legacy/ From 527cbf546edc102b73d05b6ceb1bc297a41f419c Mon Sep 17 00:00:00 2001 From: MVCowley <51127523+MVCowley@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:48:27 +0100 Subject: [PATCH 4/6] feat(actions): allow manual trigger of workflow and pypi upload skip --- .github/workflows/publish-to-pypi.yml | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 68bc3d2..2411c0e 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -5,6 +5,18 @@ on: tags: - v* + workflow_dispatch: + inputs: + tag: + description: 'Tag to create release for' + required: true + type: string + skip_pypi: + description: 'Skip PyPI publication' + required: false + type: boolean + default: false + jobs: build: name: build-dist 📦 @@ -33,7 +45,7 @@ jobs: publish-to-pypi: name: >- publish-to-pypi 📢 - if: ${{startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '.dev')}} # only publish to PyPI on tag pushes + if: ${{startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '.dev') && !inputs.skip_pypi }} # only publish to PyPI on tag pushes and skip if manually triggered needs: - build runs-on: ubuntu-latest @@ -56,13 +68,11 @@ jobs: name: >- signed-github-release ✍️ needs: - - publish-to-pypi + - build runs-on: ubuntu-latest - permissions: contents: write # IMPORTANT: mandatory for making GitHub Releases id-token: write # IMPORTANT: mandatory for sigstore - steps: - name: download-dists uses: actions/download-artifact@v4 @@ -80,18 +90,15 @@ jobs: GITHUB_TOKEN: ${{ github.token }} run: >- gh release create - '${{ github.ref_name }}' + '${{ inputs.tag || github.ref_name }}' --repo '${{ github.repository }}' --notes "" - name: Upload artifact signatures to GitHub Release env: GITHUB_TOKEN: ${{ github.token }} - # Upload to GitHub Release using the `gh` CLI. - # `dist/` contains the built packages, and the - # sigstore-produced signatures and certificates. run: >- gh release upload - '${{ github.ref_name }}' dist/** + '${{ inputs.tag || github.ref_name }}' dist/** --repo '${{ github.repository }}' publish-to-testpypi: From e438f1e34cd7b4282475ae6860e1dfff5ce3c5fb Mon Sep 17 00:00:00 2001 From: MVCowley <51127523+MVCowley@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:08:05 +0100 Subject: [PATCH 5/6] Revert "feat(actions): allow manual trigger of workflow and pypi upload skip" This reverts commit 527cbf546edc102b73d05b6ceb1bc297a41f419c. --- .github/workflows/publish-to-pypi.yml | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 2411c0e..68bc3d2 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -5,18 +5,6 @@ on: tags: - v* - workflow_dispatch: - inputs: - tag: - description: 'Tag to create release for' - required: true - type: string - skip_pypi: - description: 'Skip PyPI publication' - required: false - type: boolean - default: false - jobs: build: name: build-dist 📦 @@ -45,7 +33,7 @@ jobs: publish-to-pypi: name: >- publish-to-pypi 📢 - if: ${{startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '.dev') && !inputs.skip_pypi }} # only publish to PyPI on tag pushes and skip if manually triggered + if: ${{startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '.dev')}} # only publish to PyPI on tag pushes needs: - build runs-on: ubuntu-latest @@ -68,11 +56,13 @@ jobs: name: >- signed-github-release ✍️ needs: - - build + - publish-to-pypi runs-on: ubuntu-latest + permissions: contents: write # IMPORTANT: mandatory for making GitHub Releases id-token: write # IMPORTANT: mandatory for sigstore + steps: - name: download-dists uses: actions/download-artifact@v4 @@ -90,15 +80,18 @@ jobs: GITHUB_TOKEN: ${{ github.token }} run: >- gh release create - '${{ inputs.tag || github.ref_name }}' + '${{ github.ref_name }}' --repo '${{ github.repository }}' --notes "" - name: Upload artifact signatures to GitHub Release env: GITHUB_TOKEN: ${{ github.token }} + # Upload to GitHub Release using the `gh` CLI. + # `dist/` contains the built packages, and the + # sigstore-produced signatures and certificates. run: >- gh release upload - '${{ inputs.tag || github.ref_name }}' dist/** + '${{ github.ref_name }}' dist/** --repo '${{ github.repository }}' publish-to-testpypi: From 27292abd8db99a4f3b66d1cc27d3461005728b6b Mon Sep 17 00:00:00 2001 From: MVCowley <51127523+MVCowley@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:15:44 +0100 Subject: [PATCH 6/6] build(actions): add workflow trigger --- .github/workflows/publish-to-pypi.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 68bc3d2..d2a033e 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -4,6 +4,17 @@ on: push: tags: - v* + workflow_dispatch: + inputs: + tag: + description: 'Tag to create release for (e.g., v1.2.3)' + required: true + type: string + skip_pypi: + description: 'Skip PyPI publication (for manual runs)' + required: false + type: boolean + default: false jobs: build: @@ -33,7 +44,7 @@ jobs: publish-to-pypi: name: >- publish-to-pypi 📢 - if: ${{startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '.dev')}} # only publish to PyPI on tag pushes + if: ${{ (startsWith(github.ref, 'refs/tags/') && !contains(github.ref, 'dev')) || (github.event_name == 'workflow_dispatch' && !inputs.skip_pypi) }} needs: - build runs-on: ubuntu-latest