AllenNeuralDynamics / AllenNeuralDynamics/biodata-schema
Relax pydantic upper bound to <3.0
- 主要言語
- Python
- スター
- 0
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
> [!Note]
> I'm opening this issue here because issues are disabled on the aind-data-schema repo, and [aind-data-schema#1870](https://github.com/AllenNeuralDynamics/aind-data-schema/issues/1870) directs all new requests to this repo.
## Problem
**aind-data-schema** restricts pydantic to `>=2.7, <2.12`. The upper bound was added
because of a regression in pydantic 2.12 around `model_validators`, but https://github.com/AllenNeuralDynamics/aind-data-schema/pull/1583 fixed that.
So the constraint seems to have outlived the bug.
## Proposal
Relax the bound to `pydantic>=2.7, <3.0`.
To catch this kind of breakage before downstream users do, you can test both ends of the declared range in CI using uv's [`--resolution` strategies](https://docs.astral.sh/uv/concepts/resolution/#resolution-strategy):
```yaml
strategy:
matrix:
resolution: ["lowest-direct", "highest"]
steps:
- uses: astral-sh/setup-uv@v5
- run: uv pip install -e .[dev] --resolution ${{ matrix.resolution }} --system
- run: coverage run -m unittest discover && coverage report
```
`highest` catches new releases (like pydantic 2.12) the day they ship. You can run it on a schedule and it fails here first, instead of in downstream projects. `lowest-direct` verifies the `>=2.7` floor still actually works. `uv pip install` is a drop-in replacement for the current `pip install -e .[dev]` step, so existing test/lint commands run unchanged.
Happy to open a PR for either piece.
コントリビューションガイド
評価
この issue はまだ評価されていません。