0
-= OpenWFE
-ru 0.9.17 released
0
+= OpenWFE
ru (Ruote) 0.9.18 released
0
OpenWFEru is an open source workflow / BPM engine implemented in Ruby.
0
+download : http://rubyforge.org/frs/?group_id=2609
0
-This release mainly focuses on separating OpenWFEru from its Rufus components [1], lots of code pieces reusable elsewhere have been extracted out of OpenWFEru as Ruby gems.
0
+The gems have been renamed "ruote" and "ruote-extras". The require paths have not changed.
0
+This name is shorter, easier to spell and serves as a handy prefix for subprojects like "ruote-web" and "ruote-rest".
0
+The source of all the Ruote projects (and the Rufus ones) has moved from RubyForge subversion to GitHub [1], feel free to fork.
0
+This new "ruote" uses threads in a more economic way. This adaptation was driven by deployments on JRuby 1.1.1 which exposed flaws in the way threads were used by OpenWFEru. Ruote now runs happily on Ruby 1.8.6 and JRuby 1.1.1.
0
-There
has been a lot of work put in simplifying the internals of the engine, nothing changed on the surface though.
0
+There
is a new "step" expression [2], spaghetti processes are now easier to script (it's OK as "ruote" is the name of a pasta variety).
0
-Th
e engine.register_participant method now sports a :position optional argument (can be set to :first to insert a participant in the first position).
0
+Th
is "step" expression is heavily involved in a new sub-project named "ruote-transition" [3][4]. It's a kind of translator that turns XPDL and YAWL process definitions to the Ruote process definition language.
0
-
Process 'tags' have been made more visible via the process status (see [2]).
0
+
Another addition to the "ruote" family is "ruote-rest" [5], a RESTful workflow / BPM system based on OpenWFEru and the Sinatra [6].
0
-Tomaso provided us with a more compact variant of the ActiveRecord based workitems, requiring less space (but less searchable).
0
-Many changes in OpenWFEru are visible via its demo web application, Densha [3], there is also a new example / tutorial, heavily leveraging Densha, it's available at [4].
0
+[1] http://github.com/jmettraux
0
+[2] http://openwferu.rubyforge.org/expressions.html#exp_step
0
+[3] http://github.com/jmettraux/ruote-transition
0
+[4] http://jmettraux.wordpress.com/2008/05/18/xpdl-for-fun/
0
+[5] http://jmettraux.wordpress.com/2008/05/07/restful-workflow-engine-on-sinatra/
0
+[6] http://sinatrarb.com
0
-The nicest new feature visible through Densha is probably "process gardening" where a 'business process administrator' can modify running process instances on the fly (see [5]).
0
+Many thanks to all that have contributed patches, suggested ideas and provided feedback.
0
-Feedback is welcome at : http://groups.google.com/group/openwferu-users
0
-[1] http://rufus.rubyforge.org/
0
-[2] http://jmettraux.wordpress.com/2007/12/03/state-machine/
0
-[3] http://difference.openwfe.org:3000/
0
-[4] http://openwferu.rubyforge.org/ttt/p0.html
0
-[5] http://jmettraux.wordpress.com/2008/03/10/process-gardening/
0
+user mailing list : http://groups.google.com/group/openwferu-users
0
+dev mailing list : http://groups.google.com/group/openwferu-dev
0
-- 1.0 (instead of 0.9.18) ?
0
-- integration of rufus-verbs
0
+- 1.0 (instead of 0.9.19) ?
0
-- simplification for engine level crons
0
- more expressions display support for Densha process definition graphical rendering
0
+- http verbs in the process definition language
0
-- todo #18861 : aliased 'restore' to 'set-fields' and turned it into
0
- a ValueMixin user - s1617
0
-- todo #18806 : removed require "rubygems" from engine, leaving responsability
0
- to customer code - s1610
0
-- todo #18769 : now keeping track of raw_representation for all exps - s1604
0
-- todo #18773 : implemented engine.update_expression(fexp) - s1601
0
-- todo #18771 : deprecated SymbolHash (raw expression representation) - s1600
0
-- todo #18747 : allowing "iterator :on => :f" (symbol for designated source
0
-- todo #18745 : let [concurrent-]iterator accept on-field, on-var, ... - s1597
0
-- todo #18701 : implemented engine.update_expression_data(fei, d) - s1583
0
-- bug #18700 : FlowExpressionId.from_h not working with jsonified hashes.
0
-- todo #18671 : added is_paused?(wfid) to StatusMixin - s1579
0
-- bug #18643 : made the workitem search a bit more 'google-like' - s1571
0
-- bug #18580 : active participant last_modified not kept. Fixed - s1568
0
-- bug #18557 : exp 'participant' not replying with applied item to cancel()
0
-- todo #18531 : added 'unapplied' option to engine.process_stack() - s1547
0
-- bug #18348 : cron subprocesses subid reset at 0 upon restart. Fixed - s1542
0
-- bug #18254 : socketlistener not replying with <ok-reply/>. Fixed - s1530
0
-- bug #18218 : intermittent process_status.paused? failure. Fixed - s1520
0
-- todo #16635 : allowed recursion for top processes - s1518
0
-- todo #18192 : dropped SimpleExpRepresentation for Array - s1514
0
-- todo #18152 : simplified raw_xml and raw_prog to only raw.rb - s1513
0
-- todo #18110 : switched from open-uri to rufus-verbs for reading [remote]
0
- process definitions - s1512
0
-- todo #18145 : moved to no-params constructors for FlowExpression based
0
-- todo #18078 : <break if="${f:f}"/> will now work if field f is set - s1507
0
-- todo #15813 : isolated ValueMixin and used it in 'set', 'print', 'eval',
0
- 'reval' and 'log' - s1504
0
-- todo #17888 : optimized Workitem.search() - s1498
0
-- bug #17873 : ActiveParticipant not accepting string fields with length
0
-- bug #17850 : proc definitions whose 1st line is blank were not accepted.
0
-- todo #17851 : caching the paused? process info - s1494
0
-- todo #17826 : simplified workitem [] and []= impl - s1489
0
-- todo #17823 : implemented basecamp participant (extras) - s1486
0
-- todo #17744 : extracted sqs.rb and now depending on gem 'rufus-sqs' - s1470
0
-- patch #17720 : Tomaso's workitem.unset_attribute(). Patched - s1466
0
-- todo #17475 : extracted csv stuff and now depending on gem 'rufus-decision'
0
-- todo #17476 : extracted kotoba.rb and now depending on gem 'rufus-mnemo'
0
-- todo #17472 : extracted safe.rb and now depending on gem 'rufus-eval' - s1450
0
-- todo #17442 : extracted dollar.rb and now depending on gem 'rufus-dollar'
0
-- todo #16658 : extracted scheduler and now depending on gem 'rufus-scheduler'
0
-- todo #17100 : extracted lru and now depending on gem 'rufus-lru' - s1440
0
-- todo #17063 : compact workitems - s1438
0
-- todo #16976 : allowing compact :var, :v and :f for the '[un]defined'
0
-- todo #16831 : allowing compact :var, :v and :f for :variable and :field
0
- (and also :val for :value) (for exp attributes) - s1431
0
-- todo #16825 : implemented the 'exp' doppelganger expression - s1429
0
-- bug #16833 : not using a monitor anymore in the scheduler, relying on
0
- queues. Finer granularity, more robust scheduler - s1425
0
-- bug #16791 : subprocess ref="sub_proc" was always looking for "sub-proc".
0
-- todo #16654 : allow every jobs to unschedule or reschedule self - s1404
0
-- todo #16586 : added the '[ is][ not] set' concept to the $ notation - s1397
0
-- todo #16588 : set a min frequency of 0.3s for WaitingExpression impls - s1395
0
-- todo #16492 : optimized the 'reserve' expression - s1390
0
-- todo #16323 : added wfname() and wfrevision() to ProcessStatus - s1360
0
-- todo #16254 : relaxed the rules for process name/revision detection
0
- in Ruby defined processes - s1347
0
-- todo #16228 : fulldup delegation - s1345
0
-- todo #16205 : replaced the expstorage each() system with the
0
- find_expressions() one - s1344
0
-- todo #16152 : scheduler : made schedule_every() reschedule even if
0
- it experienced an exception - s1337
0
-- todo #16066 : require 'openwfe/engine' and 'openwfe/participants' now ok
0
-- todo #16040 : implemented ProcessStatus.tags - s1323
0
-- todo #15925 : implemented engine.get_variables(fei_or_wfid) - s1319
0
-- todo #15985 : register_participant now has a :position param - s1313
0
-- todo #15954 : moved ${r:x} eval to safe level 4 - s1305
0
-- todo #15897 : revised expression_pool.cancel's fetch_root - s1298
0
-- bug #15830 : cancelling a cursor or a loop did not cancel active child
0
- expression. Fixed - s1293
0
-- bug #15814 : loop and cursor and no proper environment. Fixed - s1289
0
-- bug #15793 : hide db_id from user forms - s1287
0
-- todo #15758 : implemented the 'eval' expression - s1278
0
-- todo #15757 : made sure evaluation of process segments is accepted - s1276
0
+- todo #20221 : added engine.process_representation(wfid) method
0
+- todo #20244 : 'description' is now an expression like any other
0
+- todo #20228 : made sure removed expressions did not appear in
0
+ process_stack.representation()
0
+- bug #20225 : 'description' problem in process_stack.representation. Fixed.
0
+- todo #20202 : using 'ref' as the main 'step' attribute
0
+- bug #18954 : activity feed service stuck after 100 entries. Fixed.
0
+- bug #20128 : upgraded to atom-tools 2.0.1
0
+- todo #20111 : step_tail optimization of the "step" expression
0
+- todo #18222 : the <a> expression now accepts JSON
0
+- todo #20108 : upgraded the <a> expression to OpenWFE::Xml
0
+- bug #20059 : wfid growing .0.1.2.3 instead of .3 in some cases. Fixed.
0
+- todo #18935 : implemented "step" expression (test/ft_79b)
0
+- bug #20061 : get_description broken with Ruby pdef with no desc. Fixed.
0
+- todo #20016 : allowing "define 'process_def_name' do ... end"
0
+- todo #19933 : reintroduced ${vf:x} and ${fv:y}
0
+- todo #19536 : added :engine_name application context parameter
0
+- todo #19839 : moved storeparticipants out of worklist/
0
+- bug #19739 : made sure that ActiveParticipant didn't flatten Date and Time
0
+ instances found in workitem fields
0
+- todo #19704 : introduced parameter :definition_in_launchitem_allowed
0
+- bug #19607 : preventing cancel root expression bug (in case of error
0
+- todo #19559 : using Queue instead of schedule_every for threaded
0
+- todo #19624 : 'if' now logs a warning message if more than 2 or 3 children
0
+- todo #19620 : making sure that the custom thread names are displayed
0
+- todo #19615 : making sure WorkQueue is freed when stopped.
0
+- bug #19576 : update_raw_expression() broken. Fixed.
0
+- todo #19575 : turned WorkQueueMixin into the WorkQueue service
0
+- todo #19532 : removed unnecessary synchronizations
0
+- todo #19471 : implemented new, lighter xml codec openwfe/util/xml
0
+- patch #19500 : size patch for db backed engine by Maarten Oelering
0
+- todo #19026 : keeping track of raw_representation in-flight changes
0
+ in [replying] children
0
+- : switched source to http://github.com/jmettraux/ruote
0
+- todo #19060 : added representation() to the result of engine.process_stack()
0
+- todo #19339 : fixed fulldup for Time and Date[Time] as reported by Maarten
0
+- todo #19104 : reformed the template system ( see http://tinyurl.com/2y6z9r )
0
+- bug #19095 : namespace problem for db enabled engine. Fix by Tomaso.
0
+- todo #19072 : 'cron' now leaves his template in the expool
0
+- todo #19061 : lib/openwfe/engine/ cleanup (more later)
0
+- todo #18995 : made 'cron' aware of process pause
0
+- todo #18518 : changed 'cron', broke the // exception
0
+- patch #18953 : smart dsub for expression args by Nick Petrella
Comments
No one has commented yet.