# What changed in griffe

> 6 changes in griffe 2 from its official release notes, upgrade guides and advisories: 1 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/pypi/griffe/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## griffe 2

### Breaking changes

- Python 3.10 is no longer supported by the griffelib and griffecli packages. (2.3.1) — [release notes](https://github.com/mkdocstrings/griffe/releases/tag/2.3.2), [release notes](https://github.com/mkdocstrings/griffe/releases/tag/2.3.1)

### New APIs and options

- Adds an option to give docstrings in stubs precedence over docstrings in source. (2.3.0) — [release notes](https://github.com/mkdocstrings/griffe/releases/tag/2.3.0)

### Fixes and other changes

- Checking the API now exits gracefully when no tags are found. (2.3.1) — [release notes](https://github.com/mkdocstrings/griffe/releases/tag/2.3.1)
- Preserves nested f-string format specifications. (2.3.0) — [release notes](https://github.com/mkdocstrings/griffe/releases/tag/2.3.0)
- Preserves parentheses in nested tuples. (2.3.0) — [release notes](https://github.com/mkdocstrings/griffe/releases/tag/2.3.0)
- Passing warnings=False now disables all docstring warnings. (2.3.0) — [release notes](https://github.com/mkdocstrings/griffe/releases/tag/2.3.0)
