]> granicus.if.org Git - libexpat/commitdiff
Add HTML version of the roadmap document currently in development.
authorFred L. Drake, Jr. <fdrake@users.sourceforge.net>
Wed, 4 Sep 2002 15:47:40 +0000 (15:47 +0000)
committerFred L. Drake, Jr. <fdrake@users.sourceforge.net>
Wed, 4 Sep 2002 15:47:40 +0000 (15:47 +0000)
htdocs/dev/roadmap.html [new file with mode: 0644]

diff --git a/htdocs/dev/roadmap.html b/htdocs/dev/roadmap.html
new file mode 100644 (file)
index 0000000..63387f5
--- /dev/null
@@ -0,0 +1,208 @@
+<html>
+  <head>
+    <title>Expat Development Roadmap</title>
+    <link rel="STYLESHEET" href="../style.css" type="text/css" />
+  </head>
+  <body marginwidth="0" marginheight="0">
+    <table cellspacing="0" cellpadding="0" width="100%">
+      <tr>
+        <td class="corner"><a href="../"><img src="../expat.png"
+                                              border="0"/></a></td>
+        <td class="banner"><h2>Expat Development Roadmap</h2></td>
+      </tr>
+      <tr>
+        <td class="navbar">
+        </td>
+        <td class="content">
+
+<h2>PROPOSAL</h2>
+
+<p>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.</p>
+
+
+<h3>Goals</h3>
+
+<p>We do <strong>not</strong> plan to alter the goals of the Expat
+project.  We intend to continue to develop Expat to have the following
+qualities:</p>
+
+<ul>
+<li> Fast </li>
+
+<li> Conformant to XML 1.0 and Namespaces </li>
+
+<li> Easy to use from C </li>
+
+<li> Easy to wrap / bind for non-C languages </li>
+
+<li> Sufficient to build DOM and SAX on top of
+     (any final specification for XML) </li>
+
+<li> Modest memory footprint </li>
+
+<li> Portable </li>
+</ul>
+
+
+<h3>Non-Goals</h3>
+
+<ul>
+<li> Parsing anything that isn't XML </li>
+
+<li> DOM (any level) </li>
+
+<li> SAX (any version) </li>
+
+<li> Data bindings </li>
+
+<li> Watching the kids </li>
+</ul>
+
+
+<h3>Historical Background</h3>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>Since that time, incremental releases of Expat have been made on a
+sporadic schedule, improving functionality and portability with each
+release.</p>
+
+
+<h3>Expat Development Roadmap</h3>
+
+<p>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.</p>
+
+<h4>Near Future Activity</h4>
+
+<p>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:</p>
+
+<ul>
+<li> Stabilize the current API with some minor revisions to make error
+     reporting more explicit to allow better reporting and diagnosis. </li>
+
+<li> 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. </li>
+
+<li> API revisions will be made to improve the runtime discoverability of
+     Expat capabilities. </li>
+
+<li> Improve portability and performance. </li>
+
+<li> Substantially improve regression tests. </li>
+
+<li> Improve documentation. </li>
+
+<li> Full support for 64-bit platforms.  (There are some known decoding
+     problems currently.) </li>
+</ul>
+
+<p>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").</p>
+
+
+<h4>Far Future Activity</h4>
+
+<p>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:</p>
+
+<dl>
+<dt> More powerful event API </dt>
+<dd>
+  <p>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.</p>
+
+  <p>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.</p>
+</dd>
+
+<dt> New encoding support </dt>
+<dd>
+  <p>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.)</p>
+
+  <p>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.</p>
+</dd>
+
+<dt> XML 1.1, if it ever happens </dt>
+<dd>
+  <p>Well, we're hoping, but it's not time to code for this yet.</p>
+</dd>
+</dl>
+
+<p>Additional goals may be added during the development of Expat 3.0;
+it's just too early to tell.</p>
+
+
+        </td>
+      </tr>
+      <tr>
+        <td class="corner">
+          <a href="http://sourceforge.net/"> 
+            <img src="http://cvs.sourceforge.net/sourceforge_whitebg.gif"
+                 width="136" height="79" border="0" alt="SourceForge
+                 Logo" />
+          </a>
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>