-
Notifications
You must be signed in to change notification settings - Fork 6
Description
I created a milestone and have started creating issues to track antsibull-core v3. My impetus for starting up this effort is wanting to add support for pydantic v2, but there's also a good amount deprecated code to remove. @felixfontein, what do you think about the following plan?
For antsibull-core v3, I'd like to completely drop support for pydantic v1 and stick to pydantic v2. antsibull-core v2 can stick to pydantic v3. Maintaining compatibility for both is a bit tricky, and parts of the pydantic API that are exposed/used by antsibull-core as part of the LibContext and AppContext objects are changing in a backwards compatible way, so we would probably want to add support in a new major release anyways.
We might consider dropping support for Python 3.9, as well, to allow us to adopt newer typing features and other improvements. ansible-core has already dropped support for Python 3.9 on the controller.
antsibull and antsibull-docs can keep concurrent support for both antsibull-core v2 and v3 for a little while, like we did for antsibull-core v1. I'm not sure about when we'd want to cut a antsibull-docs v3 release to drop support for antsibull-core v2. antsibull-docs is more your area than mine.
I think I'll be able to write some compat code for antsibull-docs to remain compatible with both pydantic versions (and thus both antsibull-core versions). I already submitted ansible-community/antsibull-build#564 for antsibull. It uses LibContext and AppContext but doesn't have its own pydantic models, so that was easier.