[libxml-devel] libxml-ruby-0.9.8 release

Charlie Savage cfis at savagexi.com
Sat Jan 24 19:34:32 EST 2009


I'm happy to announce the release of libxml-ruby 0.9.8.  This is an 
important release for a number of reasons:

* It is hopefully the last release before 1.0
* It cleans up a number of warts in libxml-ruby's api and exposes most 
of libxml's functionality to Ruby
* Its been driven by the libxml-ruby community.

At this point, the libxml-ruby bindings are in great shape.  They are 
fast, stable, have a much cleaner api and are reasonably well documented 
(see the RDocs).

Best of all, you can help us get to a 1.0 release.  Install the 
bindings, make sure the test suite passes, and run them with your 
applications.  Of particular help would be testing with Ruby 1.9 (which 
we haven't done yet) and with untested operating systems such as Solaris 
and various BSDs.  Make sure to report any issues you find at RubyForge:

http://rubyforge.org/tracker/?atid=1971&group_id=494&func=browse

Last, this release was really helped along by the community.  Thanks to:

* Len Lattanzi - Added support for attribute declarations in DTD's via 
the new XML::AttrDecl class
* Joe Khoobyar - Helped fix memory leaks when using xpath, cleaned up 
HTMLParser declarations, added text node escaping support and added 
support for parser recovery mode.
* Morus Walter - Helped add in support for parser options
* Tor Erik Linnerud - Tracking down a hard to find error in 
libxml-ruby's error handling

And also welcome Joe Khoobyar as a new committer to the project.  As 
seen in the feature list above, Joe made some great contributions to 
this release.

Thanks,

Charlie

------------------

== 0.9.8 Release Notes


* Refactored XML::Parser, XML::HTMLParser, XML::SaxParser and
   XML::Reader to have consistent APIs.  All the parsers
   now take a context object in their constructors, allowing fine
   grained control over the parsers for advanced use cases.  These
   API changes are backwards compatible except
   for XML::Reader, which now takes an optional hash table as a
   second parameter in its various constructors versus an optional
   boolean value.

* Updated all APIs to use the encoding constants defined
   in XML::Encoding versus string values.  This API change
   is not backwards compatible.

* Added support for attribute declarations in DTD's via the new
   XML::AttrDecl class (Len Lattanzi)

* Support libxml's content escaping capabilities for text nodes by
   wrapping libxml's "xmlStringText" and "xmlStringTextNoenc"
   (Joe Khoobyar).

* Updated XML::Reader#read API to return true if a node was read,
   false if node was not read and raises an exception on an error.
   Previously #read returned 1 if a node was read, 0 if a node was
   not read and -1 for an error.  This change is not backwards
   compatible, but provides a more natural interface for Ruby by
   allowing code like this:

   while reader.read
     # do stuff
   end

* Changed XML::Error exception objects to return copies of nodes that
   cause parse errors instead of the original node.  This prevents
   segmentation faults when the error is reraised.

* Added XML::Reader#node method.

* Fixed compile errors on OS X which uses an older version of libxml.

* Fixed memory leak when performing XPath searches.

* Fixed rdocs.

* Don't override libxml's default settings for entity substitution and
   loading external DTDs.  This may break some code - you may need to
   add in a call to XML.default_substitute_entities = true or
   XML.default_load_external_dtd = true.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3237 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://rubyforge.org/pipermail/libxml-devel/attachments/20090124/4f087646/attachment-0001.bin>


More information about the libxml-devel mailing list