Skip to content

Conversation

@l50
Copy link
Contributor

@l50 l50 commented Dec 8, 2025

Key Changes:

  • Increased minimum supported Python version to 3.10 for dependency updates
  • Improved pre-commit and CI typing/linting automation and user feedback
  • Upgraded pre-commit hook versions for better compatibility and features
  • Enhanced code linting and formatting automation with ruff

Added:

  • debug.html now ignored in .gitignore to prevent accidental commits of
    debug output files

Changed:

  • Python version compatibility for Renovate updated to require Python >=3.10,<3.14
    (from ^3.8), ensuring use of newer language features and improved security
  • Typing and linting hook now checks and formats all files in the repository,
    with ruff output set to GitHub format and auto-fixing enabled; feedback
    messages updated for clarity - .hooks/typing_and_linting.sh
  • Pre-commit configuration:
    • Upgraded pre-commit-hooks from v5.0.0 to v6.0.0
    • Made typing and linting run on every commit for Python files, not just on
      pre-push, and ensured it doesn't pass file names (runs on the repo)
  • pyproject.toml: Disabled import-not-found error for ruff, reducing noise
    from false positives in import checks

Removed:

  • Restriction to only run typing and linting on pre-push stage in
    .pre-commit-config.yaml; now runs on commit for better feedback cycle

**Changed:**

- Updated Renovate configuration to allow Python versions >=3.10 and <3.14,
  replacing previous restriction to ^3.8
- Changed GitHub Actions workflow to use Python 3.13 instead of 3.14 for
  setting up the environment
@dreadnode-renovate-bot dreadnode-renovate-bot bot added the area/github Changes made to GitHub Actions label Dec 8, 2025
l50 added 2 commits December 8, 2025 18:15
…e docs

**Added:**

- Added `debug.html` to `.gitignore` for improved local dev experience
- Added explicit `exceptiongroup`, `backports-asyncio-runner`, and `tomli` for
  Python <3.11 compatibility in `uv.lock`
- Added conditional dependencies (e.g., `typing-extensions`, `cloudpathlib`) for
  Python <3.11 or <3.13 in `uv.lock`
- Added `ruamel-yaml-clib` as a dependency for `ruamel-yaml` for CPython
- Added `tomli` as a dependency in packages that require it for <3.11

**Changed:**

- Updated `pyproject.toml`:
  - Lowered required Python version from 3.14 to 3.10+ and capped at <3.14
  - Relaxed and corrected `fsspec[s3]` version range to support 2024.12.0–2025.10.0
- Updated `uv.lock`:
  - Refactored dependency tree to properly separate dependency versions for
    Python 3.10, 3.11, and 3.12+ (e.g., `numpy`, `scipy`, `networkx`,
    `ipython`, `scikit-learn`)
  - Added and updated wheels and sdist hashes for the new supported Python versions
  - Added conditional dependencies (`typing-extensions`, `tomli`,
    `exceptiongroup`) for Python <3.11 and <3.13
  - Updated `pandas`, `scikit-learn`, `soundfile`, `thinc`, `torch`, `spacy`,
    `moviepy`, `imageio`, and other packages to reference the correct numpy/scipy
    versions for their Python range
  - Updated `setuptools` dependency only for Python >=3.12 in `torch`
- Updated API documentation (`docs/sdk/api.mdx`):
  - Documented that `get_user_data_credentials` now requires `organization_id`
    and `workspace_id` as parameters
  - Updated code samples and docstring to match new signature
  - Updated request logic to include query parameters for org/workspace
- Updated SDK documentation (`docs/sdk/main.mdx`):
  - Updated `CredentialManager` initialization to use the new
    `get_user_data_credentials` signature with organization/workspace IDs

**Removed:**

- Removed Python 3.14-only dependency constraints and wheels from lockfile to
  ensure compatibility with Python 3.10–3.13
- Removed unused/obsolete wheels for Python 3.14 from `uv.lock` to reduce
  confusion and resolve dependency resolution issues

**Why:**

- Enables support for Python 3.10, 3.11, and 3.12 by pinning dependencies to
  versions compatible with those interpreters
- Fixes packaging and dependency resolution issues in environments that do not
  use Python 3.14
- Documents the new signature of `get_user_data_credentials` and updates all
  relevant doc and code samples
- Ensures the project can be installed and run on a wider range of Python
  versions and platforms
**Changed:**

- Updated `.hooks/typing_and_linting.sh` to run ruff linting with GitHub output,
  apply autofixes, and always format code instead of only checking formatting
- Upgraded `pre-commit-hooks` to v6.0.0 in `.pre-commit-config.yaml`
- Modified typing and linting pre-commit hook to run on all Python files, not
  just at pre-push, and disabled file passing for consistency
- Added `import-not-found` to disabled error codes in pyright configuration to
  suppress specific import errors
@dreadnode-renovate-bot dreadnode-renovate-bot bot added area/docs Changes to documentation and guides area/python Changes to Python package configuration and dependencies area/pre-commit Changes made to pre-commit hooks type/docs Documentation updates and improvements labels Dec 8, 2025
l50 added 2 commits December 8, 2025 18:33
…aints-in-ci-and-renovate

Resolved conflicts:
- .pre-commit-config.yaml: removed docs generation hook, kept pre-push stage for linting
- pyproject.toml: adopted wider fsspec version range for Python 3.10-3.13 compatibility
- uv.lock: regenerated after dependency changes
- docs/sdk/api.mdx, docs/sdk/main.mdx: removed (deleted in main)
**Changed:**

- Run mypy type checking on the entire project directory instead of a subdirectory
  for more comprehensive coverage in `.hooks/typing_and_linting.sh`
- Update pre-commit hook configuration to use `types: [python]` and disable
  `pass_filenames`, ensuring hooks run only on relevant files and do not
  receive filenames as arguments in `.pre-commit-config.yaml`
@l50 l50 changed the title build: update python version constraints for ci and dependency management chore: update development tooling and python compatibility requirements Dec 8, 2025
@l50 l50 merged commit e1032a9 into main Dec 8, 2025
10 checks passed
@l50 l50 deleted the jayson/eng-3689-update-python-version-constraints-in-ci-and-renovate branch December 8, 2025 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Changes to documentation and guides area/github Changes made to GitHub Actions area/pre-commit Changes made to pre-commit hooks area/python Changes to Python package configuration and dependencies type/docs Documentation updates and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants