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.


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to