Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/publish-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,11 @@ jobs:
done
test "$(ls dist/*.whl | wc -l)" -eq 7 || { echo "::error::expected 7 wheels"; exit 1; }

# PyPI validates metadata on upload and rejects a file mid-batch, leaving a release with some files and not
# others. Checking here fails before anything is uploaded.
- name: Check the metadata
run: pipx run twine check --strict dist/*

- name: "Dry run: summary"
if: ${{ inputs.dry_run }}
run: echo "::notice::DRY RUN — built and checked sister-software-spliterator ${{ needs.check.outputs.version }}; nothing uploaded."
Expand Down
3 changes: 3 additions & 0 deletions crates/spliterator-py/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ dev = ["pytest>=8"]
python-source = "python"
module-name = "spliterator._native"
features = ["pyo3/extension-module"]
# The sdist puts pyproject.toml at its root but this directory's files under crates/spliterator-py/, so the license
# is also copied to the root, where the `License-File` metadata entry says it is. PyPI rejects an sdist without it.
include = [{ path = "LICENSE.md", format = "sdist" }]

[tool.ruff]
line-length = 120
Expand Down
Loading