Nokogiri v1.6.8 Release Notes

Release Date: 2016-06-06 // almost 8 years ago
  • ๐Ÿ”’ Security

    ๐Ÿ”’ [MRI] Bundled libxml2 is upgraded to 2.9.4, which fixes many security issues. Many of these had previously been patched in the vendored libxml 2.9.2 in the 1.6.7.x branch, but some are newer.

    ๐Ÿ‘€ See these libxml2 email posts for more:

    ๐Ÿ”’ For a more detailed analysis, you may care to read Canonical's take on these security issues:

    ๐Ÿ”’ [MRI] Bundled libxslt is upgraded to 1.1.29, which fixes a security issue as well as many long-known outstanding bugs, some features, some portability improvements, and general cleanup.

    ๐Ÿ‘€ See this libxslt email post for more:

    โž• Added

    ๐ŸŽ Several changes were made to improve performance:

    • [MRI] Simplify NodeSet#to_a with a minor speed-up. (#1397)
    • XML::Node#ancestors optimization. (#1297) (Thanks, Bruno Sutic!)
    • ๐Ÿ‘‰ Use Symbol#to_proc where we weren't previously. (#1296) (Thanks, Bruno Sutic!)
    • XML::DTD#each uses implicit block calls. (Thanks, @glaucocustodio!)
    • Fall back to the pkg-config gem if we're having trouble finding the system libxml2. This should help many FreeBSD users. (#1417)
    • Set document encoding appropriately even on blank document. (#1043) (Thanks, @batter!)

    ๐Ÿ›  Fixed

    • ๐Ÿ’Ž [JRuby] fix slow add_child (#692)
    • ๐Ÿš€ [JRuby] fix load errors when deploying to JRuby/Torquebox (#1114) (Thanks, @atambo and @jvshahid!)
    • ๐Ÿ’Ž [JRuby] fix NPE when inspecting nodes returned by NodeSet#drop (#1042) (Thanks, @mkristian!)
    • ๐Ÿ’Ž [JRuby] fix nil attriubte node's namespace in reader (#1327) (Thanks, @codekitchen!)
    • ๐Ÿ’Ž [JRuby] fix Nokogiri munging unicode characters that require more than 2 bytes (#1113) (Thanks, @mkristian!)
    • ๐Ÿ’Ž [JRuby] allow unlinking an unparented node (#1112, #1152) (Thanks, @esse!)
    • ๐Ÿ“œ [JRuby] allow Fragment parsing on a frozen string (#444, #1077)
    • ๐Ÿ’… [JRuby] HTML style tags are no longer encoded (#1316) (Thanks, @tbeauvais!)
    • [MRI] fix assertion failure while accessing attribute node's namespace in reader (#843) (Thanks, @2potatocakes!)
    • [MRI] fix issue with GCing namespace nodes returned in an xpath query. (#1155)
    • [MRI] Ensure C strings are null-terminated. (#1381)
    • ๐Ÿ’Ž [MRI] Ensure Rubygems is loaded before using mini_portile2 at installation. (#1393, #1411) (Thanks, @JonRowe!)
    • โœ… [MRI] Handling another edge case where the libxml-ruby gem's global callbacks were smashing the heap. (#1426). (Thanks to @bbergstrom for providing an isolated test case!)
    • ๐Ÿ“œ [MRI] Ensure encodings are passed to Sax::Parser xmldecl callback. (#844)
    • 0๏ธโƒฃ [MRI] Ensure default ns prefix is applied correctly when reparenting nodes to another document. (#391) (Thanks, @ylecuyer!)
    • [MRI] Ensure Reader handles non-existent attributes as expected. (#1254) (Thanks, @ccutrer!)
    • [MRI] Cleanup around namespace handling when reparenting nodes. (#1332, #1333, #1444) (Thanks, @cuttrer and @bradleybeddoes!)
    • unescape special characters in CSS queries (#1303) (Thanks, @twalpole!)
    • consistently handle empty documents (#1349)
    • โšก๏ธ Update to mini_portile2 2.1.0 to address whitespace-handling during patching. (#1402)
    • ๐Ÿ›  Fix encoding of xml node namespaces.
    • ๐Ÿณ Work around issue installing Nokogiri on overlayfs (commonly used in Docker containers). (#1370, #1405)

    Notes

    • โœ‚ Removed legacy code remaining from Ruby 1.8.x support.
    • โœ‚ Removed legacy code remaining from REE support.
    • โ†ช Removing hacky workarounds for bugs in some older versions of libxml2.
    • Handling C strings in a forward-compatible manner, see https://github.com/ruby/ruby/blob/v2_2_0/NEWS#L319