Hi all.
Roadmap update for you, since I’ve been getting some questions.
First off – Playbooks in 0.4 (“Unchained”) will not be changed much, so don’t look for much to happen. My desire is to close all bugs in the 0.4 milestone and be done with 0.4 when that happens. The goal for this, for people who are new to the list, is a mid may release.
Depending on the size of the incoming features, I may accommodate a few small module tweaks before then. Depending on how fast bugs are squashed, the release may happen earlier, but I’d encourage people interested in doing anything major to wait. This is encouragement to go squash bugs, as I will not be squashing all of them (hint, hint).
In 0.5 (“Amsterdam”), one of the first major blocking things I will be doing is making play books more object oriented, much like I recently did with inventory. This will mean there is going to be a class/file named ‘play’, another called ‘task’, one called ‘handler’,
and so on. This will also allow asking those objects meaningful questions – like what modules they use, what files they would use (given template input), etc. It will be able to ask a playbook for all of it’s plays, and be able to intelligently do things with them.
At this point in time, it should be possible to request a tempdir from runner and NOT destroy it immediately, but leave it open. It should be possible to take up all modules that need to be transferred, tar them (maybe), transfer them, and untar them in one
step. It should be possible to delete files only at the very end of the play. All things people have been asking for. This will not require any additional configuration.
At this point in time, YAML becomes the language of the playbook parser, but it would also be theoretically possible to run the playbooks from anything – though I doubt we’ll be doing that. playbooks.py will remain the place for the parser, but it will
grow lots shorter, and runner.py may acquire some methods only used by playbooks. The code will then be much easier to work on.
I say this because I’ve received a lot of questions for “wouldn’t it be nice if”, with regards to playbooks, optimizing operations, to some extent variable consistency (though some of that’s in 0.4) and so forth. Yes, those things would be nice… but doing those things now in playbooks/runner means those hacks will be harder to reimplement later.
Thus, at this point in 0.4, I wish to stabilize the current release, knock out bugs, and get it out the door. So, the next two weeks or so are about squashing bugs, and that’s pretty much it.
0.5 will focus extensively on streaming the playbook code – WITHOUT changing the playbook language – and opening the door up for better performance and possibly some improved reporting (TBD). I think you’ll like it. This means pretty sweeping code changes will happen early on in that release, and then we’ll let people riff on them and see what we can do with what they can enable.
I would request folks withhold requests for “moar faster stuff!!!” and language features until this happens. You’ll like it better if this happens in 0.5. Won’t be long.
–Michael