bumpsmith — Three real breaks, then a stop

fixtures/B
suite: /path/to/a/pydantic2/python -m pytest -q

reverted

4
suite runs
3
breaks classified
25
sites rewritten
3
changes taken back

The chain, one break at a time

Step 1ROOT_MODELrc=2 · local

To define root models, use `pydantic.RootModel` rather than a field called '__root__'

pytest blamed
emnify/modules/api/models.py:397
rule written
Replace a `__root__` field with pydantic.RootModel
rule matched
19 sites across 2 files
edits
19 written to disk
pytest named 1the rule found 19
Step 2REGEX_KEYWORDrc=2 · local

constr() got an unexpected keyword argument 'regex'

pytest blamed
emnify/modules/api/models.py:640
rule written
Rename the `regex=` argument to `pattern=`
rule matched
5 sites across 1 file
edits
5 written to disk
pytest named 1the rule found 5
Step 3VALIDATOR_FIELD_CONFIGrc=2 · local

The `field` and `config` parameters are not available in Pydantic V2, please use the `info` parameter instead.

pytest blamed
emnify/modules/device/models.py:25
rule written
Remove a v1 validator's `field` and `config` parameters
rule matched
1 site across 1 file
edits
1 written to disk
Step 4UNKNOWNrc=1 · local

1 validation error for RetrieveDevice

pytest blamed
emnify/modules/device/manager.py:286

How it ended

The edits did not make the suite pass, so every one of them was taken back.

It stopped at no-rule — the failure classified as UNKNOWN, which does not narrow to one rule; a rule naming the wrong transformation is worse than none.