# Release History

Principal author:

## Abstract

# 1 4Suite compatibility matrix and release timeline

This summarizes all known releases of 4Suite and PyXML; explains dependencies between 4Suite and Python, PyXML & PyExpat; and lists noteworthy events in 4Suite's release history.

If you spot any errors or have any questions about this document, please post to the 4Suite mailing list or email mike@skew.org.

Key to the columns Python Lists compatible versions of Python. Note for Windows users: For each 4Suite release, Windows binary installers are available for only certain versions of Python, and may not work at all with nonstandard Python distributions. Users affected by this can still build 4Suite from source, if they have a C compiler. PyXML Lists compatible versions of PyXML, and circumstances under which PyXML installation is optional. Do not use PyXML 0.8.1, because it shipped with Expat 1.95.5, which has major bugs. PyExpat Lists circumstances under which PyExpat is required. Expat is an XML parser written in C, and PyExpat allows access to it from Python. The version of PyExpat usually doesn't matter, and the version of Expat that it wraps is fine as long as it's 1.95.0 or higher (effective 4Suite 0.12.0a1) and is not 1.95.5. Most systems already have PyExpat, so it's not an issue for most users, but Expat 1.95.5 is still fairly common. The easiest way to address PyExpat/Expat issues is to just install a recent version of PyXML. You already have PyExpat if you did any of the following: Installed Python 2.3 or newer. Python now installs its own PyExpat and Expat 1.95.6. Installed PyXML. PyXML installs its own Expat (version varies) and a shared version of PyExpat. PyXML's version will take precedence over Python's. Installed Python for Windows from a standard Win32 binary installer. The official Python distributions for Windows usually came with good versions of PyExpat and Expat built-in. However, there were some significant bugs in the PyExpat that shipped with the Python 2.1.x distributions, so Win32 Python 2.1 users should install PyXML. Had the Expat libraries on your system when you built Python from source. Python builds PyExpat automatically if it detects the Expat C libraries. Installed an operating system or prebuilt Python package that came with PyExpat. Installed PyExpat yourself, separately. Major packages included Lists the major packages that are in this version of 4Suite.

4Suite Version | Release Date | Python Version | PyXML Version | PyExpat | Major Packages Included
--- | --- | --- | --- | --- | ---
1.0b1 | 2005-04-15 | 2.2.1 up | 0.8.3 up optional (newest preferred). PyXML required for ValidatingReader (parsing XML with validation). | PyExpat not required | 4Lib (Ft.Lib) 4XML (Ft.Xml) 4XPath (Ft.Xml.Xpath) 4XSLT (Ft.Xml.Xslt) 4XUpdate (Ft.Xml.XUpdate) 4RDF (Ft.Rdf) repository/model (Ft.Server)
2005-03-19: The last of the PyExpat dependencies are removed from 4Suite.
2004-12-16: FtMiniDom is removed from 4Suite.
1.0a4 | 2004-11-19 | 2.2.1 up | 0.8.3 up optional (newest preferred). PyXML required for ValidatingReader (parsing XML with validation). | PyExpat optional unless FtMiniDom (Python-based lightweight DOM) or CatalogReader (parsing XML with TR9401/XML Catalog support) are being used. Must wrap Expat 1.95.0 or newer if present. | 4Lib (Ft.Lib) 4XML (Ft.Xml) 4XPath (Ft.Xml.Xpath) 4XSLT (Ft.Xml.Xslt) 4XUpdate (Ft.Xml.XUpdate) 4RDF (Ft.Rdf) repository/model (Ft.Server)
2004-02-13: Following the release of Zope 2.7, a decision is made to drop Python 2.1 support from 4Suite.
2003-08-02: A decision is made to remove 4ODS from 4Suite.
2003-07-30: PyXML 0.8.3 released.
1.0a3 | 2003-07-04 | 2.1 up | On most platforms, 0.7 up optional (newest preferred). On Windows with Python 2.1.x, PyXML 0.7 up required. On Cygwin, 0.8 up (or 0.7 or 0.7.1 with a patch) optional. PyXML required for parsing XML with validation. | PyExpat optional unless FtMiniDom (Python-based lightweight DOM) or CatalogReader (parsing XML with TR9401/XML Catalog support) are being used. Must wrap Expat 1.95.0 or newer if present. | 4Lib (Ft.Lib) 4XML (Ft.Xml) 4XPath (Ft.Xml.Xpath) 4XSLT (Ft.Xml.Xslt) 4XUpdate (Ft.Xml.XUpdate) 4RDF (Ft.Rdf) repository/model (Ft.Server) 4ODS (Ft.Ods)
1.0a2 | withdrawn
1.0a1 | 2003-03-28
2003-02-27: A decision is made to assign the version number 1.0 to future 4Suite releases in this development cycle.
2003-01-26: PyXML 0.8.2 released. This version of PyXML integrates Expat 1.95.6, which is safe.
0.12.0a3 | 2002-09-30 | 2.1 up | On most platforms, 0.7 up optional (newest preferred). On Windows with Python 2.1.x, PyXML 0.7 up required. On Cygwin, 0.8 up (or 0.7 or 0.7.1 with a patch) optional. PyXML required for parsing XML with validation. | PyExpat required | 4Lib (Ft.Lib) 4XML (Ft.Xml) 4XPath (Ft.Xml.Xpath) 4XSLT (Ft.Xml.Xslt) 4XUpdate (Ft.Xml.XUpdate) 4RDF (Ft.Rdf) repository/model (Ft.Server) 4ODS (Ft.Ods)
2002-08-16: PyXML 0.8.1 released. Effective with this release, xml.xslt (which is still based on 4XPath from 4Suite 0.11.1) is no longer installed by default, but it can be installed with the --with-xslt option on setup.py. This version of PyXML integrates Expat 1.95.5, which has memory leaks that are exposed by 4Suite, so please avoid this version of PyXML!
2002-08-01: PyXML 0.8 released. This version of PyXML integrates Expat 1.95.4.
2002-05-02: PyXML 0.7.1 released. This version of PyXML integrates Expat 1.95.2.
2002-03-22: Starting with 4Suite 0.12.0a2, cDomlette is now the default Domlette implementation. pDomlette is now known as FtMiniDom; enable it with USE_MINIDOM=1 in the environment, rather than BETA_DOMLETTE=0. InputSource API introduced.
0.12.0a2 | 2002-03-22 | 2.0 up; Windows users must build from source if not using Python 2.1.x | On most platforms, 0.7 up optional (newest preferred). On Windows with Python 2.1.x, PyXML 0.7 up required. On Cygwin, 0.8 up (or 0.7 or 0.7.1 with a patch) optional. PyXML required for parsing XML with validation. | PyExpat required | 4Lib (Ft.Lib) 4XML (Ft.Xml) 4XPath (Ft.Xml.Xpath) 4XSLT (Ft.Xml.Xslt) 4XUpdate (Ft.Xml.XUpdate) 4RDF (Ft.Rdf) repository/model (Ft.Server) 4ODS (Ft.Ods)
0.12.0a1 | 2002-01-26 | 2.0-2.2; Windows users must build from source if not using Python 2.1.x. Documentation build fails if PyGreSQL not installed.
2001-12-30: PyXML 0.7 released. PyXML now includes 4XPath & 4XSLT from 4Suite 0.11.1 as the packages xml.xpath & xml.xslt, respectively, with no cDomlette support. 4Suite users are encouraged to install PyXML with the --without-xpath and --without-xslt options on setup.py. Subsequent releases of PyXML will contain some essential bug fixes to these packages, but they will not be re-ported from 4Suite until after 4Suite 1.0 is released (and even then, no guarantees). Another major change in this version of PyXML is that internally, the empty/nonexistent namespace and prefix are now represented by None rather than an empty string; PyXML users needing to represent these in their Python code are encouraged to import the constants EMPTY_NAMESPACE & EMPTY_PREFIX from xml.dom, and 4Suite users can import the same constants from Ft.Xml. This version of PyXML also integrates Expat 1.95.2.
2001-09-15: Major rearchitecture of 4Suite begun. The major changes are the abandonment of Python 1.5 support, the removal of PyXML dependencies, a rewrite of 4Suite Server, and a refactoring of the Domlettes. Almost all APIs changed. 4SS (4Suite Server) is no longer a separate add-on; all 4Suite packages are in one distribution. Since we can't think of a good new name for the 4SS features, we just call the document store "the repository" and the RDF database "the model". The repository features a web-based administration interface called Dashboard, and includes support for GraphViz-powered RDF model visualization. The Domlettes, which had been in Ft.Lib, moved to the new Ft.Xml package. pDomlette was renamed to FtMiniDom, but this name change did not fully propagate until the 0.12.0a2 release. 4XPath & 4XSLT moved to Ft.Xml.XPath & Ft.Xml.Xslt.
2001-09-14: cDomlette introduced in 4Suite 0.11.1; enable with BETA_DOMLETTE=1 in environment.
0.11.1 | 2001-09-14 | 1.5.2 up; must build from source if 2.2 up | 0.6.5 or 0.6.6 required (0.6.6 preferred) | PyExpat required, but since PyXML is required too, there's no need to worry about PyExpat. | 4Lib (Ft.Lib) 4XPath (xml.xpath) 4XSLT (xml.xslt) 4XUpdate (Ft.Lib.XUpdate) 4RDF (Ft.Rdf) 4ODS (Ft.Ods) 4SS (FtServer) [dist. separately]
2001-08-05: PyXML 0.6.6 released.
0.11 | 2001-05-03 | 1.5.2 up; must build from source if 2.2 up | 0.6.5 or 0.6.6 required (0.6.6 preferred) | PyExpat required, but since PyXML is required too, there's no need to worry about PyExpat. | 4Lib (Ft.Lib) 4XPath (xml.xpath) 4XSLT (xml.xslt) 4XUpdate (Ft.Lib.XUpdate) 4RDF (Ft.Rdf) 4ODS (Ft.Ods) 4SS (FtServer) [dist. separately]
0.11a2 | 2001-04-28
0.11a1 | 2001-04-26
2001-03-20: PyXML 0.6.5 released. It contains some bug fixes that are essential for 4Suite 0.11.
2001-02-26: PyXML 0.6.4 released, incorporating 4DOM from 4Suite 0.10.2. 4DOM is now exclusively part of PyXML; it will no longer be distributed with 4Suite.
0.10.2 | 2001-02-19 | 1.5.2 up; must build from source if 2.2 up | 0.6.3 to 0.6.6 required (0.6.6 preferred). Comes with PyXML 0.6.3. | PyExpat required, but since PyXML is required too, there's no need to worry about PyExpat. | 4DOM (xml.dom) 4Lib (Ft.Lib) 4XPath (xml.xpath) 4XSLT (xml.xslt) 4RDF (Ft.Rdf) 4ODS (Ft.Ods) 4SS (FtServer) [dist. separately]
0.10.1 | 2001-01-16
2001-01-07: PyXML 0.6.3 released, still incorporating 4DOM from 4Suite 0.9.1.
0.10.0 | 2000-12-01 | 1.5.2 up; must build from source if 2.2 up | 0.6.2 required | PyExpat required, but since PyXML is required too, there's no need to worry about PyExpat. | 4DOM (xml.dom) 4Lib (Ft.Lib) 4XPath (xml.xpath) 4XSLT (xml.xslt) 4RDF (Ft.Rdf) 4ODS (Ft.Ods) DbDOM (Ft.DbDom)
0.9.2 | 2000-11-15
2000-11-14: PyXML 0.6.2 released, incorporating 4DOM from 4Suite 0.9.1.
0.9.1 | 2000-10-14 | 1.5.2 + distutils 1.0 | 0.5.5.1 to 0.6.1 required | PyExpat required, but since PyXML is required too, there's no need to worry about PyExpat. | 4DOM (xml.dom) 4Lib (Ft.Lib) 4XPath (xml.xpath) 4XSLT (xml.xslt) 4RDF (Ft.Rdf) 4ODS (Ft.Ods)
2000-10-08: PyXML 0.6.1 released, still incorporating 4DOM from 4Suite 0.9.0.
0.9.0 | 2000-09-20 | 1.5.2 + distutils 0.92, BisonGen 0.5, lex, yacc, swig | 0.5.5.1 to 0.6.1 required | PyExpat required, but since PyXML is required too, there's no need to worry about PyExpat. | 4DOM (xml.dom) 4Lib (Ft.Lib) 4XPath (xml.xpath) 4XSLT (xml.xslt) 4RDF (Ft.Rdf) 4ODS (Ft.Ods)
2000-09-20: PyXML 0.6.0 released. PyXML now incorporates 4DOM from 4Suite 0.9.0. This version of PyXML did not have Python 1.5 support, for some reason.

## 1.1 Earlier package releases

Prior to September 2000, the packages 4DOM, 4ODS, 4XPath, 4XSLT, and the base libraries (Domlette, etc., now under 4Lib and 4XML) were distributed separately, each with their own version numbers. The packages were collectively called 4Suite. After they were integrated into a single distribution, 4Suite picked up the 4Lib version number, and the old version numbers for each package eventually became obsolete.

Some PyXML release dates are also shown here, in order to provide a more complete reference.

Release Date | Version Number
--- | ---
4Lib/base | 4DOM | 4ODS | 4XPath | 4XSLT | PyXML
2000-07-24 |  | 0.10.2 |  | 0.9.2 | 0.9.2 |
2000-06-07 |  |  |  |  |  | 0.5.5.1
2000-06-06 |  | 0.10.1 |  | 0.9.1 | 0.9.1 |
2000-06-05 |  |  |  |  |  | 0.5.5
2000-05-24 |  | 0.10.0 |  | 0.9.0 | 0.9.0 |
2000-05-15 | 0.8.0b1 | 0.10.0b2 |  | 0.9.0b2 | 0.9.0b2 |
2000-05-08 | 0.8.0 XML-SIG preview | 0.10.0 XML-SIG preview |  |  |  |
2000-04-21 |  |  |  |  |  | 0.5.4
2000-03-26 |  |  | 0.6.0 |  |  |
2000-03-16 | 0.7.2 | 0.9.3 |  | 0.8.3 | 0.8.3 |
2000-01-26 | 0.7.1 | 0.9.2 |  | 0.8.2 | 0.8.2 |
2000-01-24 |  |  |  |  |  | 0.5.3
2000-01-03 |  | 0.9.1 |  | 0.8.1 | 0.8.1 |
1999-12-20 |  |  |  |  |  | 0.5.2
1999-12-19 | 0.7.0 | 0.9.0 |  | 0.8.0 | 0.8.0 |
1999-11-26 |  | 0.9.0a1 |  |  |  |
1999-10-21 | 0.6.1 | 0.8.2 |  | 0.7.2 | 0.7.2 |
1999-09-15 |  | 0.8.1 |  | 0.7.1 | 0.7.1 |
1999-09-01 | 0.6.0 | 0.8.0 |  | 0.7.0 | 0.7.0 |
1999-04-22 |  |  |  |  | 4XSL 0.6.1 |
1999-04-14 |  |  |  |  |  | 0.5.1
1999-03-22 |  |  |  |  | 4XSL 0.6.0 |
1999-02-08 |  | 0.7.0 |  |  |  |
1998-11-20 |  | 0.6.1 |  |  |  |
1998-11-12 |  | 0.6.0 |  |  |  |