2011-12-26: First Milestone of Parsley 3.0 Released
The first of two big milestone releases brings the first half of the changes planned for Parsley 3.0. The primary focus of this release is the support for the new Spicelib Commands project which has just been released several weeks ago. The Spicelib project allows for a complete redesign of the command feature from older Parsley versions, making it both easier to use and more powerful.
The new version now supports declarations for groups of commands for sequential or parallel execution or command flows with dynamic decision points based on the results produced by the commands. It also allows to conveniently pass data to subsequent commands in a sequence in a decoupled fashion. It supports mapping commands or sequences to messages, a feature which was already available in Parsley 2. Finally it is much easier now to implement types of asynchronous commands that do not depend on an AsyncToken, while the old shortcuts for AsyncTokens are still available.
Since this is a major new release all classes, properties and methods marked as deprecated in Parsley 2.4 have been removed.
Another bigger change is the fact that several pieces of functionality have now been extracted into separate extension projects, either because they were not considered to be core functionality or because they introduced new dependencies. The major Parsley project is now called Parsley Core. The extension projects will have independent release cycles and can be downloaded from the same download page as the Parsley Core project and all Spicelib libraries.
If you have production applications and plan to migrate to Parsley 3, it is recommended to wait for the second milestone, as that release will come with the final set of API changes. The second milestone will be API complete, and subsequent Parsley 3 releases will then have a much greater API stability than Parsley 2 versions had. If you just start with a new application you may prefer to immediately start with this milestone, as the migration steps are then fewer once the final 3.0 release is out than when starting with version 2.4.1 now.
Migrating to version 3.0 predominantly requires changes in command configuration. The implementation of commands can remain unchanged in most cases. If you want to avoid the migration steps for commands you can even download a DynamicCommand backwards-compatibility extension that would retain probably more than 90% of the command functionality found in a typical application. The extension is available on the Parsley download page. The manual contains a section with migration steps for commands here