diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index ee476daf7..4c9565b29 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -142,14 +142,14 @@ jobs: - name: Release | Python Semantic Release id: release - uses: python-semantic-release/python-semantic-release@350c48fcb3ffcdfd2e0a235206bc2ecea6b69df0 # v10.5.3 + uses: python-semantic-release/python-semantic-release@37a30a7987cfebb6d49240bf1c4e9cd9817d0673 # v10.6.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} verbosity: 1 build: false - name: Release | Add distribution artifacts to GitHub Release Assets - uses: python-semantic-release/publish-action@310a9983a0ae878b29f3aac778d7c77c1db27378 # v10.5.3 + uses: python-semantic-release/publish-action@4f3c5d7f5caddf6535050c4bcb55f033f000a7dd # v10.6.0 if: steps.release.outputs.released == 'true' with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 2623eccdf..198fd2c3a 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -112,7 +112,7 @@ jobs: - name: Build | Build next version artifacts id: version - uses: python-semantic-release/python-semantic-release@350c48fcb3ffcdfd2e0a235206bc2ecea6b69df0 # v10.5.3 + uses: python-semantic-release/python-semantic-release@37a30a7987cfebb6d49240bf1c4e9cd9817d0673 # v10.6.0 with: github_token: "" verbosity: 1 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5decef8f5..651e00b44 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -778,6 +778,39 @@ v10.0.0 (2025-05-25) .. _PR#1245: https://github.com/python-semantic-release/python-semantic-release/pull/1245 +.. _changelog-v9.21.2: + +v9.21.2 (2026-07-04) +==================== + +🪲 Bug Fixes +------------ + +* **hvcs**: Mask credentials in git URL debug logs, closes `#1426`_ (`PR#1450`_, `da0cb2b`_) + +📖 Documentation +---------------- + +* **github-actions**: Fix recommended upstream detection script's upstream name parsing (`911f62a`_) + +⚙️ Build System +---------------- + +* Mark for Python 3.14 compatibility (`86c0439`_) + +* **deps**: Bump ``tomlkit`` dependency from ``~=0.11.0`` to ``~=0.13.0`` (`5395d06`_) + +* **deps**: Prevent update to ``click@8.2.0`` (`128f06a`_) + +.. _#1426: https://github.com/python-semantic-release/python-semantic-release/issues/1426 +.. _128f06a: https://github.com/python-semantic-release/python-semantic-release/commit/128f06a512ff782b773df2989d3445f894672ace +.. _5395d06: https://github.com/python-semantic-release/python-semantic-release/commit/5395d065fc890813b1ef0df1c024a714668cb102 +.. _86c0439: https://github.com/python-semantic-release/python-semantic-release/commit/86c04399fc66fa9584c6c875698a43e91104186b +.. _911f62a: https://github.com/python-semantic-release/python-semantic-release/commit/911f62aa6ab0a169a4126bea44fbc8dfb4f967b6 +.. _da0cb2b: https://github.com/python-semantic-release/python-semantic-release/commit/da0cb2bb40ffdd898117b72e3309e2281fdf682c +.. _PR#1450: https://github.com/python-semantic-release/python-semantic-release/pull/1450 + + .. _changelog-v9.21.1: v9.21.1 (2025-05-05) diff --git a/pyproject.toml b/pyproject.toml index 8b3034531..7dd7607aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ # Ref: https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ # and https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html [build-system] -requires = ["setuptools >= 75.3.0, < 81.0.0", "wheel ~= 0.42"] +requires = ["setuptools >= 75.3.0, < 83.0.0", "wheel ~= 0.42"] build-backend = "setuptools.build_meta" [project] @@ -32,7 +32,7 @@ dependencies = [ "gitpython ~= 3.0", "requests ~= 2.25", "jinja2 ~= 3.1", - "python-gitlab >= 4.0.0, < 7.0.0", + "python-gitlab >= 4.0.0, < 9.0.0", "tomlkit ~= 0.13.0", "dotty-dict ~= 1.3", "importlib-resources ~= 6.0", diff --git a/src/semantic_release/changelog/context.py b/src/semantic_release/changelog/context.py index 563f6a3f4..202b2c373 100644 --- a/src/semantic_release/changelog/context.py +++ b/src/semantic_release/changelog/context.py @@ -169,6 +169,11 @@ def autofit_text_width(text: str, maxwidth: int = 100, indent_size: int = 0) -> ) ) + # Guard against empty paragraphs (e.g. from whitespace-only lines in commit bodies), + # which would cause words[0] to raise an IndexError. + if not words: + continue + # Initialize the line for each paragraph line = words[0] next_line = ""