Forum OpenACS Q&A: Workflow Weekly Status Updates

Posted by Lars Pind on
Hi All,

To keep everyone in the loop, we're going to post weekly status updates on our progress on implementing workflow to this thread.

Here's the first one, about what was done last week:

  • Continued work on the workflow specification, most notably assignments, notifications, service contracts for callbacks, and the API for workflow applications to use.
  • Started implementation of the workflow data model and the workflow definition API, including writing automated test-cases.
  • Started the bug-tracker refactoring to be built on workflow. This helps us design the workflow API and ensure that we're on the right track.
This week, we're moving forward with:
  • Workflow API, for defining workflows, and for interacting with a case.
  • Service contracts for callbacks, including adding a Tcl API for defining service contracts and registering implementations to acs-service-contract.
  • Needed enhancements to notifications, as explained in the workflow spec

Since we'll be away Wed-Sun this week, we won't get all that much done this week.

See you again next wek :)

Posted by Jeff Davis on
Lars, can you post the proposed service contract tcl api?
Posted by Lars Pind on
I'm working on that right now. I'll post it on a seprate thread when I know what I think it should look like.


Posted by Peter Marklund on
Since the last status report we have:
  • Finished the datamodel
  • Refactored the Bug Tracker bug page so that plugging in the workflow API will be easy.
  • Written much of the Tcl API
  • Written a unit test using acs-automated-testing that runs through a Bug Tracker type workflow and checks that the flow of states is correct.
Outstanding tasks for this week are:
  • Notifications
  • Service contract callbacks
  • Plugging in the workflow API on the Bug Tracker bug page.
Posted by Peter Marklund on
This week we have been working on the following features:
  • APM Callbacks (after-instantiate, after-mount, after-install)
  • Creating workflows with array type datastructures
  • Generating array datastructure from workflow definition in the database and cloning workflows that way.
  • Integrating workflow with the Bug Tracker
Posted by Peter Marklund on
In the last week we've worked on the following features:
  • The Service Contract Tcl API
  • APM package callbacks - used by the Bug Tracker to setup its workflows.
  • Making the Bug Tracker index and bug pages work with workflow assignments.
Here is the list of major top priority features that will conclude the workflow project:
  • Caching support of the Workflow Tcl API and scalability testing
  • Bug Tracker data model change and upgrade scripts
  • Changes to the Notifications API to support what the Bug Tracker needs, see spec.
  • Porting workflow and Bug Tracker to Oracle
  • Internationalizing Workflow and Bug Tracker
  • Workflow package developers guide
  • Ticket Tracker (slightly modified Bug Tracker)
Our current estimate for finishing those features is about three weeks.
Posted by Peter Marklund on
Some of the things we have been working on during last week:
  • Caching of the Tcl API. We are almost finished with the workflow level and will move on to the case level. The number of queries on the bug page in the bug tracker has been reduced drastically.
  • Porting the Workflow datamodel to Oracle
  • Further work on converting the index page and bug page to using workflow.
  • Notifications, see this thread
We have a lot of uncommitted code that we will commit later this week.
Posted by Peter Marklund on
In the last week we have:
  • Finished Notifications
  • Finished caching of the workflow Tcl API
, we will now focus on:
  • Finishing Oracle ports of Workflow and Bug Tracker
  • Try to make Workflow and Bug Tracker run on the 4.6 branch. The problem here is that we've made a number of changes to the core (Notifications, templating etc.). We have also already done some I18N work that will need to be backed out.
  • Writing scripts to upgrade Bug Tracker to using workflow. For this we need a new callback - before-upgrade - that will create the workflow for Bug Tracker. We will write a new APM proc - apm_register_upgrade_logic $from_version $to_version { 0.4 0.5 {code...} 0.5 0.6 {code...} }.
  • Install a local copy of to test response times and upgrading.