From: Fred L. Drake, Jr. Date: Wed, 4 Sep 2002 15:47:40 +0000 (+0000) Subject: Add HTML version of the roadmap document currently in development. X-Git-Tag: R_1_95_5~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d080f104a49f181a7893f85e4897cfc77a1d5ec;p=libexpat Add HTML version of the roadmap document currently in development. --- diff --git a/htdocs/dev/roadmap.html b/htdocs/dev/roadmap.html new file mode 100644 index 00000000..63387f58 --- /dev/null +++ b/htdocs/dev/roadmap.html @@ -0,0 +1,208 @@ + + + Expat Development Roadmap + + + + + + + + + + + + + + + +
+ +

PROPOSAL

+ +

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.

+ + +

Goals

+ +

We do not plan to alter the goals of the Expat +project. We intend to continue to develop Expat to have the following +qualities:

+ +
    +
  • Fast
  • + +
  • Conformant to XML 1.0 and Namespaces
  • + +
  • Easy to use from C
  • + +
  • Easy to wrap / bind for non-C languages
  • + +
  • Sufficient to build DOM and SAX on top of + (any final specification for XML)
  • + +
  • Modest memory footprint
  • + +
  • Portable
  • +
+ + +

Non-Goals

+ +
    +
  • Parsing anything that isn't XML
  • + +
  • DOM (any level)
  • + +
  • SAX (any version)
  • + +
  • Data bindings
  • + +
  • Watching the kids
  • +
+ + +

Historical Background

+ +

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:

+ +
    +
  • Stabilize the current API with some minor revisions to make error + reporting more explicit to allow better reporting and diagnosis.
  • + +
  • Introduce a new feature-test macro, XML_MINIMAL, parallel to + XML_DTD, XML_UNICODE, and XML_UNICODE_WCHAR_T. Defining the new + feature when compiling Expat will cause functions that are not + relevant to the rest of the feature macros. (For example, if + XML_DTD is not set but XML_MINIMAL is, the functions that set + handlers for DTD-related events won't be included at all.) This + is intended to make it easier to use Expat in small-memory + devices.
  • + +
  • API revisions will be made to improve the runtime discoverability of + Expat capabilities.
  • + +
  • Improve portability and performance.
  • + +
  • Substantially improve regression tests.
  • + +
  • Improve documentation.
  • + +
  • Full support for 64-bit platforms. (There are some known decoding + problems currently.)
  • +
+ +

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:

+ +
+
More powerful event API
+
+

The new API will be sufficiently detailed that a complete and + detailed DOM structure can be built, including both internal and + external entity boundaries in parsed character data content and + attribute value content.

+ +

This API will of necessity be somewhat more complex than the + current API, but we expect the current API can be implemented on top + of the new API. For users for whom the Expat 2.0 API is + sufficiently powerful, this API will remain available.

+
+ +
New encoding support
+
+

A new library may be added to the Expat package that provides a + flexible architecture for defining new encodings, and provides a + large range of common encodings. (It should be possible to develop + this so that it supports both Expat 2.0 and Expat 3.0.)

+ +

Another approach which will be considered will be to support + Expat's requirements for decoders using one of the existing open + source encoding support libraries that meets Expat's requirements + for portability. Possible technical approaches would include + implementing an adapter, and developing such an external library to + include direct support for the kind of interface support Expat + needs.

+
+ +
XML 1.1, if it ever happens
+
+

Well, we're hoping, but it's not time to code for this yet.

+
+
+ +

Additional goals may be added during the development of Expat 3.0; +it's just too early to tell.

+ + +
+ + SourceForge
+                 Logo + +
+ +