Tags: rezkam/persian
Tags
refactor: modernize tooling to uv, ruff, and ty Migrate from pip/flake8/black/isort/mypy to modern Astral toolchain for faster development workflow and unified configuration. This simplifies the tooling stack while maintaining strict code quality standards. - Replace pip with uv for package management - Replace flake8/black/isort with ruff for linting and formatting - Replace mypy with ty for type checking - Consolidate all tool configs into pyproject.toml - Update GitHub Actions with uv caching and fail-fast - Update documentation for new tooling - Add uv.lock for reproducible builds - Require Python 3.11+ (sphinx dependency requirement)
Improve Makefile and add pre-commit hooks (#24) • Centralized all documentation build logic in the main Makefile and removed the Sphinx Makefile, simplifying how docs are built and cleaned. • Made make clean truly comprehensive by cleaning all build, test, and documentation artifacts in one command. • Standardized documentation targets and fixed CI by routing all doc builds and link checks through Makefile targets instead of ad hoc commands.
Migrate to setuptools-scm for automated version management (#23) * Migrate to setuptools-scm for automated version management - Replace hardcoded version with dynamic versioning via setuptools-scm - Remove manual version verification step from publish workflow - Clean up README by removing outdated Persian.js reference * Add missing entries to .gitignore - Add .venv/ for Python virtual environments - Add .DS_Store for macOS system files - Add .claude/ for Claude artifacts - Add coverage.xml for test coverage reports * Exclude auto-generated _version.py from version control and linters - Add _version.py to .gitignore - Configure black, ruff, and isort to skip _version.py
Add Python 3.14 and 3.15 support to CI workflows (#22) * Add Python 3.14 and 3.15 support to CI workflows - Add Python 3.14 to test matrix across all platforms - Add dedicated test-prerelease job for Python 3.15.0-alpha.2 - Upgrade setup-python action from v4 to v5 - Update publish workflow to use Python 3.14 - Update lint, type-check, and security jobs to Python 3.14 - Add Python 3.14 and 3.15 classifiers to pyproject.toml - Update documentation to reflect new version support * Expand Python 3.15 pre-release testing to all platforms - Run Python 3.15.0-alpha.2 tests on Linux, macOS, and Windows - Update documentation to reflect cross-platform pre-release testing
Upgrade to Python 3.10+ and modernize project for v1.0.0 release (#21) * Upgrade to Python 3.10+ and modernize project structure - Upgrade minimum Python version to 3.10 with modern tooling (pyproject.toml, mypy) - Refactor core functionality into modular structure (core.py, constants.py) - Add comprehensive type hints and validation - Implement performance optimizations with benchmarks - Expand documentation (API, CHANGELOG, CONTRIBUTING, PERFORMANCE) - Add project configuration (Makefile, .flake8, mypy.ini) - Achieve 100% test coverage with 22 comprehensive tests - Maintain full backward compatibility with existing API * Add flake8 and isort to dev dependencies The CI lint job runs flake8 and isort but they were missing from the dev extra dependencies, which would cause the workflow to fail. * Update dev dependencies to latest stable versions - pytest: 8.0.0 → 9.0.0 - pytest-cov: 5.0.0 → 7.0.0 - pytest-benchmark: 4.0.0 → 5.2.0 - mypy: 1.8.0 → 1.19.0 - black: 24.0.0 → 25.12.0 - ruff: 0.8.0 → 0.14.0 - flake8: 7.0.0 → 7.3.0 - isort: 5.13.0 → 7.0.0 - build: 1.0.0 → 1.3.0 All tests pass with 100% coverage. * Add XML coverage report for Codecov integration The Codecov action requires an XML coverage report to upload coverage data. Added --cov-report=xml to pytest options to generate coverage.xml file. * Prepare v1.0.0 release with PyPI publishing workflow - Bump version to 1.0.0 (major release with Python 3.10+ requirement) - Remove Python 3.14 from CI matrix (not yet stable) - Add automated PyPI publishing workflow using trusted publishing - Update Python version targets in black configuration - Workflow triggers on version tags (e.g., v1.0.0) * Fix test workflow to run on main branch only Remove 'develop' branch from CI triggers since it doesn't exist. Tests now run on pushes to main and all PRs targeting main. * Align docs with 1.0.0 release * Update maintainer contact info