As we’ve gotten larger and attempted to keep up with tremendous volume, some things like runner/init.py have gotten a bit - eh - expedient. Not bad, just in need of some cleanup. Regular maintaince as we haven’t been able to do as we’ve been trying to honor lots of submissions.
Just wanted to let folks know we’re planning on starting a refactor on this soon – likely on another branch so as to not upset core until we’re ready, with the aims of making something not only much more testable at a unit level (yay) but also easier to extend, with aims of also bringing this forward elsewhere into the app as we go. No real release aligned yet, but might be 1.5 still.
This shouldn’t really effect any open pull requests on Runner code as we can merge them to this branch first before adapting.
I’ll post more details as this happens, we’re likely to want to get a bit more of a design going first.
As Ansible is pretty darn modular and most happens in terms of plugins and modules, I don’t think this will really make any waves, but also wanted to pass along to let you know it was happening, and if you have any major changes going on against the core of Runner, to consider that.
We’ll be keeping the Python API as defined by Playbook code and plugins that use it compatible.
(This may (no promises) also allow greater experimentation with alternative topologies (like what happens if you wanted to parallelize by host versus task) in the long run, though obviously the current pattern would still be the default. And I’m getting ahead of myself!)