Skip to content

Conversation

@kellerza
Copy link
Contributor

Changes:

  • Migrate to uv & removing setuptools requirement
  • Include py.typed marker (add mypy/pyright in the future)
  • Some existing dependencies now only support Python 3.8 as minimum

Copilot:

This pull request introduces a major modernization of the project's packaging and dependency management by migrating from legacy setup.py/requirements.txt to the new PEP 621-compliant pyproject.toml format and adopting the uv toolchain for dependency installation and management. It also updates CI workflows and pre-commit hooks to use uv, simplifies documentation, and removes obsolete configuration files. The changes streamline development, improve reproducibility, and align the project with current Python packaging standards.

Packaging and Dependency Management Modernization

  • Migrated project metadata and dependencies from setup.py, setup.cfg, and requirements*.txt to a new pyproject.toml using PEP 621, specifying build backend (uv_build), project details, dependencies, and development groups. Legacy files were deleted. [1] [2] [3] [4] [5]
  • Added and configured .github/dependabot.yml to enable automated dependency updates for GitHub Actions and (optionally) uv.

Continuous Integration (CI) and Tooling Updates

  • Updated GitHub Actions workflow in .github/workflows/python-app.yml to use uv for installing and running dependencies, switched to newer action versions, and integrated ruff and pylint via uv. [1] [2] [3] [4] [5]

Pre-commit Hook Improvements

  • Refactored .pre-commit-config.yaml to use local hooks running tools (pyproject-fmt, ruff, pylint, uv lock) via uv, removing direct references to legacy tool repos.

Documentation Simplification

  • Updated README-dev.md to document the new uv sync workflow for environment setup and testing, removing legacy venv and pip instructions.

Minor Codebase Updates

  • Added missing imports and @property decorators in a few modules for consistency. [1] [2] [3] [4]

@kellerza
Copy link
Contributor Author

uv run --with pypistats pypistats python_minor Office365-REST-Python-Client --last-month
┌──────────┬─────────┬────────────┐
│ category │ percent │  downloads │
├──────────┼─────────┼────────────┤
│ 3.10     │  39.91% │  5,169,960 │
│ 3.11     │  22.55% │  2,921,865 │
│ 3.12     │  15.81% │  2,048,031 │
│ 3.9      │   8.09% │  1,048,235 │
│ 3.7      │   5.27% │    683,099 │
│ 3.8      │   5.10% │    660,276 │
│ 3.13     │   2.55% │    330,402 │
│ null     │   0.41% │     53,727 │
│ 3.14     │   0.20% │     25,852 │
│ 2.7      │   0.09% │     11,689 │
│ 3.6      │   0.01% │      1,646 │
│ 3.5      │   0.00% │         21 │
│ 3.15     │   0.00% │          2 │
│ Total    │         │ 12,954,805 │
└──────────┴─────────┴────────────┘

@vgrem vgrem merged commit 3142621 into vgrem:master Jan 13, 2026
4 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.

2 participants