They'll become part of the upcoming 4.6.2 release.
Even though there are some issues with APM on HEAD.
Here are some of the highlights:
- Support for both Oracle and Postgres, and full upgrade script from earlier versions of bug-tracker on PG.
- Bug-tracker now also serves as ticket-tracker, with customizable prettynames for bugs and components (tickets and areas, for example).
- Bug/Ticket categories (priority/severity/etc.) are fully customizable. You can have as many or as few categories of as many types as you want. OS, Database, Department, you name it.
- Tickets are now stored in the content repository, which means that we're storing a full audit trail, and that searching should work. We haven't looked into this, though.
- Improved performance and usability of bug-tracker.
- Bug-tracker's workflow can be customized using the workflow package.
The workflow package has these features:
- Easy-to-use arraylist way of specifying workflows. No user interface yet, unfortunately, but it's really easy to do in code.
- Simple, easily understandable model for defining the workflow: Just States, Actions, and Roles.
- Clean integration with the object's permissions.
- World-class notifications integration handled by workflow -- no need to build it into your application yourself.
- Effective integration with your application through service contract implementations, referred to as callbacks.
In addition, we've made some significant changes to the OpenACS Core:
- We Integrated the concept of an object on which you perform actions, into the form builder and ad_form, so that idiom is available to other applications as well.
- We added an Enhanced Text-capable richtext' widget and data type (richtext), which lets people enhance their text input with simple HTML such as <b>, <i>, and <a href="..">, without the penalty of having to manually do paragraph and line breaks with <p> and <br>.
- We added support for dynamic notifications, which lets you request notifications for things like "All forum threads I've posted to", or "all bugs I'm assigned to or submitted". This also lets you cascade your interval and delivery method, so that notifications for bugs you're assigned to are sent instantly as SMS, while notifications for all bugs, regardless, are sent to your mailbox.
- We added a Tcl API for defining service contracts and implementations, which makes it much easier to use service contracts, and much easier to figure out how to us it.
- We added a foo.groupnum_last_p pseudo-column to the <group> tag.
- We added a Tcl API and fixed some problems with the CR's keywords.
The biggest core change, however, was a complete overhaul of the APM:
- We added the ability to execute Tcl code at install/upgrade/instantiate/mount/unmount/uninstantiate/uninstall time. This lets your package define service contracts, workflows, delete its contents, or whatever you want it to do.
- A significant problem was that the bootstrap-installer, which is what is used to install the kernel and the core on a fresh database and server. This install process didn't use the same code as later package installations did, causing differences in the way things worked. This was a tough challenge to crack, because during installation, you can't rely on having access to procedures and functionality that is normally available, but Peter managed to do it.
- A package can now ask to be automatically mounted as some URL under the main site. Notifications, for example, ask to get installed under /notifications. general-comments under /gc. And so on. This is primarily intended for service packages, and is a significant usability enhancements, in that you no longer have to go visit the site map after package installation to manually mount those packages.
- A final usability enhancement is the dependency check when installing a package. It used to be that when you wanted to install some package, bug-tracker, for example, the APM would simply complain: "Bug-tracker depends on workflow." Then you'd have to go back, find workflow on the list, check that, then try again. "Workflow depends on Notifications". Damn! That process is now automated, so when you say you want bug-tracker, the APM will look for packages that satisfy its dependencies automatically, and suggest that you install all of the needed packages at once. Saves you a great deal of frustration and going back and forth.
I'm sure there are a couple of things which I forgot to mention, but I think these are the most important feats.
A couple of small items are still outstanding: There are a few bugs with the APM, which Peter will fix when he gets back from Portugal on Monday. And the package developer's guide isn't done, though the specification is pretty good and should help a lot, as should the fact that there's a working example of how to use workflow in the form of bug-tracker.