AllenNeuralDynamics / AllenNeuralDynamics/biodata-schema

Relax pydantic upper bound to <3.0

オープン
#3 コメント 1 件 リアクション 0 件 担当者 1 名 @dbirman が担当を希望しています GitHub で見る
主要言語
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 はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。