Skip to content

⬆️ Upgrade to Python 3.10+ and modernize build system - #5

Merged
TechNickAI merged 5 commits into
mainfrom
feature/python-3.10-modernize
Nov 27, 2025
Merged

⬆️ Upgrade to Python 3.10+ and modernize build system#5
TechNickAI merged 5 commits into
mainfrom
feature/python-3.10-modernize

Conversation

@TechNickAI

@TechNickAI TechNickAI commented Nov 27, 2025

Copy link
Copy Markdown
Owner

Summary

Modernizes the Python package to follow 2025 best practices:

  • Drops Python 3.8-3.9 support (both EOL)
  • Sets minimum to Python 3.10
  • Adds proper multi-version testing infrastructure
  • Modernizes build configuration

Changes

Python Version Support

  • ✅ Minimum version: Python 3.10 (3.8-3.9 are EOL)
  • ✅ Actively tested: 3.10, 3.11, 3.12, 3.13
  • ✅ Updated classifiers in pyproject.toml

Build System Modernization

  • ✅ Added optional dependencies (test, dev) to pyproject.toml
  • ✅ Fixed license format to SPDX string (setuptools 77+ requirement)
  • ✅ Fixed setuptools_scm tag regex to handle both v* and releases/v* patterns
  • ✅ Updated GitHub Actions to v4/v5 (latest)

Multi-Version Testing

  • ✅ Created tox.ini for testing across Python versions
  • ✅ Added new GitHub Actions workflow (python-test.yml)
    • Tests all 4 Python versions in parallel
    • Runs linting with ruff
    • Verifies package builds correctly
  • ✅ Runs on every PR to catch version-specific issues

Developer Experience

  • ✅ Updated README with Development section
  • ✅ Documented both tox (traditional) and uv (modern) workflows
  • ✅ Clear instructions for local testing

Test Plan

  • Build succeeds locally
  • All tests pass on Python 3.13
  • setuptools_scm correctly detects version from git tags
  • No setuptools deprecation warnings (license format fixed)
  • CI passes on all Python versions (will verify in PR)

Breaking Changes

⚠️ This drops support for Python 3.8 and 3.9. Both versions reached EOL:

  • Python 3.8: October 2024
  • Python 3.9: October 2025 (approaching EOL)

Users on these versions will need to upgrade to Python 3.10+ to use future releases.

🤖 Generated with Claude Code


Note

Drops Python 3.8–3.9, standardizes on 3.10+, adds multi-version testing and packaging, and updates CI/publishing workflows to latest actions.

  • Python package:
    • Raise minimum to python>=3.10; update classifiers to 3.10–3.13 and set license = "MIT" in python/pyproject.toml.
    • Add optional deps test/dev; include package data via [tool.setuptools.package-data]; set zip-safe = false.
    • Add Ruff config and Black/pytest settings in pyproject.toml.
    • Introduce python/tox.ini with envs for py310–py313, lint, and build.
  • CI/workflows:
    • .github/workflows/build.yaml: expand Python matrix to 3.10–3.13; cache pip; run tests with coverage; build wheel; verify import; test against installed wheel; upload artifacts; refine job names.
    • .github/workflows/pypi-publish.yml: bump to actions/checkout@v4 and setup-python@v5; add diagnostics; build from python/ and publish via pypa/gh-action-pypi-publish.
  • Docs:
    • python/README.md: add Development section with tox/uv workflows, testing, and build instructions.

Written by Cursor Bugbot for commit 82d6823. This will update automatically on new commits. Configure here.

- Drop Python 3.8-3.9 support (both EOL)
- Set minimum Python version to 3.10
- Modernize pyproject.toml with optional dependencies (test, dev)
- Add tox.ini for multi-version testing (3.10, 3.11, 3.12, 3.13)
- Create GitHub Actions workflow for testing across Python versions
- Update PyPI publish workflow to latest actions (v4, v5)
- Fix setuptools_scm tag regex to handle both 'v*' and 'releases/v*' patterns
- Update license format to SPDX string (setuptools 77+ requirement)
- Add Development section to README with testing instructions for both tox and uv

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Comment thread python/tox.ini
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Comment thread python/pyproject.toml Outdated
Nick Sullivan and others added 3 commits November 27, 2025 12:41
…sions

- Remove redundant python-test.yml workflow
- Expand build.yaml matrix to test Python 3.10, 3.11, 3.12, 3.13
- Keeps all functionality in one comprehensive 'Build and Test' workflow
- Pre-commit, Python tests with coverage, and TypeScript jobs all in one place

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Job names now clearly indicate what they do:
- ✨ Code Quality (Pre-commit)
- 🐍 Python 3.10/3.11/3.12/3.13
- 💎 TypeScript Lint & Format
- 🧪 TypeScript Tests
- 📦 TypeScript Build

Makes CI status much easier to scan at a glance!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…m tag regex

- Add setuptools-scm>=6.2 to dev dependencies (fixes tox build environment)
- Remove overly complex custom tag_regex - use setuptools_scm defaults
- Deleted problematic releases/v0.3.2 tag (use v* convention only)
- Simpler is better - let setuptools_scm handle all PEP 440 formats (dev, post, rc, etc.)

Fixes Cursor bot reviews on PR #5

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@TechNickAI
TechNickAI merged commit 295b1b0 into main Nov 27, 2025
9 checks passed
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