# \[ANN\] nokogiri 1.6.8 Released

**URL:** <https://rubytalk.org/t/ann-nokogiri-1-6-8-released/73659>\
**Category:** ruby-talk\
**Created:** [7 June 2016 00:09 UTC](https://rubytalk.org/t/ann-nokogiri-1-6-8-released/73659 "2016-06-07T00:09:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mike\_Dalessio1](https://yyz1.discourse-cdn.com/flex029/user_avatar/rubytalk.org/mike_dalessio1/32/1903_2.png) [@Mike\_Dalessio1](https://rubytalk.org/u/Mike_Dalessio1)\
**Post date:** [7 June 2016 00:09 UTC](https://rubytalk.org/t/ann-nokogiri-1-6-8-released/73659/1 "2016-06-07T00:09:45Z")

</div>

nokogiri version 1.6.8 has been released!

\* Tutorials: [http://nokogiri.org](http://nokogiri.org)  
\* Installation: [http://nokogiri.org/tutorials/installing\_nokogiri.html](http://nokogiri.org/tutorials/installing_nokogiri.html)  
\* Mailing List: [https://groups.google.com/group/nokogiri-talk](https://groups.google.com/group/nokogiri-talk)

Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's  
many features is the ability to search documents via XPath or CSS3  
selectors.

Changes:

\*==== Security Notes\*

[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:

\* [https://mail.gnome.org/archives/xml/2015-November/msg00012.html](https://mail.gnome.org/archives/xml/2015-November/msg00012.html)  
\* [https://mail.gnome.org/archives/xml/2016-May/msg00023.html](https://mail.gnome.org/archives/xml/2016-May/msg00023.html)

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

\* [http://www.ubuntu.com/usn/usn-2994-1](http://www.ubuntu.com/usn/usn-2994-1)

[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:

\* [https://mail.gnome.org/archives/xslt/2016-May/msg00004.html](https://mail.gnome.org/archives/xslt/2016-May/msg00004.html)

\*==== Features\*

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!)

\*==== Bug Fixes\*

\* [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)  
\* [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)

\*==== Other 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>
