Expat Development Roadmap
Updated 5 September 2002.
This is a proposed roadmap for the further development of Expat. The primary purpose for making this proposal is to determine whether our ideas for continued development are aligned with the needs of the community. We welcome comment both from Expat users, would-be users, and members of the XML community who have decided against using Expat for technical reasons directly related to Expat.
Discussion of this document should be directed to the expat-discuss mailing list.
We do not plan to alter the goals of the Expat project. We intend to continue to develop Expat to have the following qualities:
James Clark initially developed Expat, releasing three stable versions, identified as versions 1.0, 1.1, and 1.2. Clark Cooper created a forked version of Expat based on Expat 1.1, for use in the XML::Parser extension module for Perl.
As James Clark's interests shifted, and his development moved to the Java environment, the authors of 3rd party language bindings found it increasingly difficult to integrate Expat with their languages, and other developers found it difficult to get fixes accepted into Expat and released. A small group of extension authors were gathered by Paul Prescod in the hope that Expat could be formed into a more readily usable library for both direct use in C-language applications and indirect use from other languages. This group was led by Clark Cooper and Fred Drake, and received sanction to take over maintenance of Expat from James Clark. The project is hosted on SourceForge. This group made their first release as Expat 1.95.0 in September 2000.
Since that time, incremental releases of Expat have been made on a sporadic schedule, improving functionality and portability with each release.
Expat Development Roadmap
Now that our goals and non-goals have been spelled out, let's take a look at how we should get there from where we are now. This will be broken down into two stages: near future activities and far future activities. In spite of the somewhat temporal labeling of these categories, please realize that no actual scheduling has been done, nor is that considered relevant at this time. Actual time to meet these goals is dependent on the availability of resources to work on Expat. Parallel development may also happen, depending on the specific interests of contributers.
Near Future Activity
The target of the current line of development will be to release Expat 2.0. The intent is that once Expat 2.0 is released, most of the development activity for this line will be maintenance, and will be driven by user-provided problem reports. These are the goals for goals we have specific to the release of Expat 2.0:
When we're confident that the minor API changes are "right", we'll finallize the API and release Expat 2.0. Should additional functions be required as evolutionary improvements, the minor version number will be incremented, but all existing functions will be maintained for backward compatibility. Releases that are strictly bug fixes will have the same minor version number and will gain a "micro" version number (sometimes called a "patch level").
Far Future Activity
Once Expat 2.0 has been released, it will be maintained on a CVS branch. The head of CVS will be used to develop Expat 3.0. The changes in Expat 3.0 will be more substantial and will include important API changes. At this time, we're looking at the following changes:
Additional goals may be added during the development of Expat 3.0; it's just too early to tell.