- Python 2 dropped — minimum Python version is now 3.8. The codebase is fully Python 3 native with no compatibility shims.
- ACS/SAML retirement —
with_user_credentialsnow raises a clearRuntimeErrorfor SharePoint Online. Usewith_username_and_password(MSAL ROPC) instead. ACS App-Only (with_client_credentials) marked as deprecated with retirement notice. - Pyright type checking — the entire
office365/package is now in scope with 0 type errors. - Ruff linting — all rules enabled except 2 justified ignores (B008, PLC0415).
- Full type hints across all modules (runtime, directory, onedrive, outlook, teams, booking, sharepoint, intune, and more).
- Expanded pyright scope from 4 directories to the entire
office365/package. - Generator templates now emit
from __future__ import annotations. - CHANGELOG.md (this file).
- 237+ pyright type errors resolved during scoping.
- Circular import in
client_runtime_context.py/read_entity.py. NameError: name 'List' is not definedinfields/collection.pyat runtime.single()andfirst()return types corrected (never returnNone).after_executecallback type corrected (was claimingSelf, actually receivesAny).- Cryptography CVE-2026-26007, CVE-2026-39892, CVE-2026-34073 fixed (updated to 48.0.0).
- Removed unused
astunparsedependency (removed transitivewheelCVE). - Moved
pyrightfrom runtime to dev dependencies. - USGovernment GCC endpoints corrected (were using wrong URLs).
- TypeVars renamed for clarity (
T→ClientObjectT,ReturnT,ValueT,FuncT).
- README restructured — organized by client (ClientContext vs GraphClient), auth section split by modern/legacy with ACS retirement banner.
- Auth examples reorganized into
modern/andlegacy/subdirectories. - Generator templates now include
from __future__ import annotations. - Ruff config cleaned — removed 10 unused ignore rules.
.travis.ymlremoved (dead CI config with hardcoded credentials).
- Python 2.7 support.
.travis.yml(use GitHub Actions instead).requirements.txt/requirements-dev.txt(useuv/pyproject.toml).- Unused
astunparsedev dependency. pyrightruntime dependency (now dev-only).