as a debian user I'm looking forward to the new Bookworm release, presumable this summer, but this question is relevant for all (non-rolling release) distro's.
I have developed a set of roles for my servers as well as my clients and the playbooks to roll them out to the right hosts. When I was preparing for the release of Bullseye, I copied the entire 'roles' directory to 'roles/stretch' and 'roles/bullseye' and started testing and tweaking the roles in the 'roles/bullseye' folder. I updated the ansible configuration to include roles from 'roles/bullseye' (and exclude 'roles/stretch') and that was that.
What is the best practice here? I know it is possible to add conditionals to tasks and even entire roles, so I could add a variable to each host with the name of the distribution version, and then start adding conditionals to each task or role - but of course, that would require me to go through all of my roles/tasks and add a conditional to all of them.