I just released ruote 0.9.20. The original release text is on github, but I’m reproducing it here, with more details.
This release is not backward compatible. Changing the engine and restarting with a batch of persisted processes will not work. Start with new processes or migrate them.
Speaking of persistence, this release features revised and new persistence mechanisms. The most common one, the one directly bound to the file system has been revised to use Ruby marshalling instead of YAML with a net performance increase. Tokyo Cabinet and Tokyo Tyrant persistence mechanisms have been added as well, along with a DataMapper one.
Should the need to move from one persistence mecha to the other arise, a pooltool.ru has been included for easy migrations, back and forth.
On the front of expressions themselves, ‘sleep’ and ‘wait’ have been merged, as was pointed out to me, “wait ‘2d'” sounds more businessy than “sleep ‘2d'”.
Each expression may now have a on_cancel and/or on_error attribute, pointing to a subprocess or participant called in case of error or cancel respectively. This was suggested by Raphael Simon and Kenneth Kalmer.
There is a new way to define process via Ruby :
OpenWFE.process_definition :name => 'cfp' do sequence do prepare_call concurrence do vendor1 vendor2 vendor3 end decide_which end end
Many thanks to everybody who contributed code, feedback, ideas to Ruote !
Ruote’s source : http://github.com/jmettraux/ruote/