Skip to content

build: migrate packaging to pyproject.toml, require Python >=3.10#6

Merged
Yuzki merged 4 commits into
mainfrom
build/pyproject-metadata
Jun 29, 2026
Merged

build: migrate packaging to pyproject.toml, require Python >=3.10#6
Yuzki merged 4 commits into
mainfrom
build/pyproject-metadata

Conversation

@Yuzki

@Yuzki Yuzki commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes uv's "No requires-python value found" warning by migrating package
metadata from setup.py into a [project] table in pyproject.toml, and pins
the supported Python range.

Setting requires-python surfaced a real inconsistency: the dev dependency
pytest>=9.0.3 needs Python 3.10+, but CI and the old setup.py (>=3.6)
included 3.9. Since 3.9 is EOL, this standardizes on >=3.10.

Changes

  • pyproject.toml: add [project] (name, version, description, readme,
    authors, classifiers, URL), requires-python = ">=3.10", and
    [tool.setuptools] packaging config (packages, include-package-data,
    package-data for the CSV).
  • Remove setup.py — now redundant; all metadata lives in pyproject.toml.
  • .github/workflows/python-package.yml: CI matrix 3.9/3.10/3.11
    3.10/3.11/3.12.
  • uv.lock: re-resolved.

Notable behavior changes

  • The built wheel now ships only the SanskritTransliteration package (with
    its transliteration_table.csv). The previous find_packages() also packaged
    tests/.
  • Placeholder author/url ("Your Name", yourusername/…) replaced with the
    real owner name and repository URL.
  • Declared support narrows from >=3.6 to >=3.10 (3.6–3.9 are EOL / untested).

Supersedes #5

PR #5 reformatted setup.py; this PR removes that file entirely, so #5 is
superseded and should be closed
.

Verification

  • uv build --wheel → wheel contains
    SanskritTransliteration/transliteration_table.csv, excludes tests/;
    Requires-Python: >=3.10.
  • uv sync → resolves cleanly, no more requires-python warning.
  • uv run ruff format --check / uv run ruff check → clean.
  • uv run ty check (whole repo) → All checks passed (the prior
    unresolved-import: setuptools from setup.py is gone).
  • uv run pytest → 20 passed.

🤖 Generated with Claude Code

Yuzki and others added 2 commits June 29, 2026 02:34
Move static metadata (name, version, description, readme, authors, classifiers, URL) from setup.py into a [project] table, and configure packaging via [tool.setuptools]. Remove the now-redundant setup.py.

Set requires-python = ">=3.10": 3.9 is EOL and the dev dependency pytest>=9.0.3 requires 3.10+, so >=3.9 broke uv resolution. This also clears uv's "no requires-python" warning and the ty 'unresolved-import: setuptools' diagnostic (setup.py is gone).

Packaging now ships only the SanskritTransliteration package with its CSV; the previous find_packages() also shipped tests/. Placeholder author/URL replaced with real values.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Align the CI matrix with requires-python >=3.10.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Yuzki and others added 2 commits June 29, 2026 02:58
Repo advertised MIT via the (now-removed) classifier but shipped no license text. Add the standard MIT license, (c) 2025-2026 Yuzuki Tsukagoshi, matching the authors field and the 2025 first-commit year.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
setuptools >=77 deprecates the "License :: OSI Approved :: MIT License" classifier, so the build emitted SetuptoolsDeprecationWarning. Replace it with a PEP 639 license = "MIT" expression plus license-files = ["LICENSE"], and pin setuptools>=77.0.0 in build-system requires since the bare-string SPDX expression is only honored there. Build is now warning-free and METADATA carries License-Expression: MIT.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Yuzki
Yuzki merged commit 69a7df0 into main Jun 29, 2026
3 checks passed
@Yuzki
Yuzki deleted the build/pyproject-metadata branch June 29, 2026 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant