Bump nokogiri from 1.12.5 to 1.13.0
Bumps nokogiri from 1.12.5 to 1.13.0.
Release notes
Sourced from nokogiri's releases.
1.13.0 / 2022-01-06
Notes
Ruby
This release introduces native gem support for Ruby 3.1. Please note that Windows users should use the
x64-mingw-ucrtplatform gem for Ruby 3.1, andx64-mingw32for Ruby 2.6–3.0 (see RubyInstaller 3.1.0 release notes).This release ends support for:
- Ruby 2.5, for which official support ended 2021-03-31.
- JRuby 9.2, which is a Ruby 2.5-compatible release.
Faster, more reliable installation: Native Gem for ARM64 Linux
This version of Nokogiri ships experimental native gem support for the
aarch64-linuxplatform, which should support AWS Graviton and other ARM Linux platforms. We don't yet have CI running for this platform, and so we're interested in hearing back from y'all whether this is working, and what problems you're seeing. Please send us feedback here: Feedback: Have you used theaarch64-linuxnative gem?Publishing
This version of Nokogiri opts-in to the "MFA required to publish" setting on Rubygems.org. This and all future Nokogiri gem files must be published to Rubygems by an account with multi-factor authentication enabled. This should provide some additional protection against supply-chain attacks.
A related discussion about Trust exists at #2357 in which I invite you to participate if you have feelings or opinions on this topic.
Dependencies
- [CRuby] Vendored libiconv is updated from 1.15 to 1.16. (https://github.com/sparklemotion/nokogiri/blob/HEAD/Note that libiconv is only redistributed in the native windows and native darwin gems, see
LICENSE-DEPENDENCIES.mdfor more information.) [#2206]- [CRuby] Upgrade mini_portile2 dependency from
~> 2.6.1to~> 2.7.0. ("ruby" platform gem only.)Improved
{XML,HTML4}::DocumentFragmentconstructors all now take an optional parse options parameter or block (similar to Document constructors). [#1692] (Thanks, @JackMc!)Nokogiri::CSS.xpath_forallows anXPathVisitorto be injected, for finer-grained control over how CSS queries are translated into XPath.- [CRuby]
XML::Reader#encodingwill return the encoding detected by the parser when it's not passed to the constructor. [#980]- [CRuby] Handle abruptly-closed HTML comments as recommended by WHATWG. (Thanks to tehryanx for reporting!)
- [CRuby]
Node#lineis no longer capped at 65535. libxml v2.9.0 and later support a new parse option, exposed asNokogiri::XML::ParseOptions::PARSE_BIG_LINES, which is turned on by default inParseOptions::DEFAULT_{XML,XSLT,HTML,SCHEMA}(Note that JRuby already supported large line numbers.) [#1764, #1493, #1617, #1505, #1003, #533]- [CRuby] If a cycle is introduced when reparenting a node (i.e., the node becomes its own ancestor), a
RuntimeErroris raised. libxml2 does no checking for this, which means cycles would otherwise result in infinite loops on subsequent operations. (Note that JRuby already did this.) [#1912]- [CRuby] Source builds will download zlib and libiconv via HTTPS. ("ruby" platform gem only.) [#2391] (Thanks, @jmartin-r7!)
- [JRuby]
Node#linebehavior has been modified to return the line number of the node in the final DOM structure. This behavior is different from CRuby, which returns the node's position in the input string. Ideally the two implementations would be the same, but at least is now officially documented and tested. The real-world impact of this change is that the value returned in JRuby is greater by 1 to account for the XML prolog in the output. [#2380] (Thanks, @dabdine!)Fixed
- CSS queries on HTML5 documents now correctly match foreign elements (SVG, MathML) when namespaces are not specified in the query. [#2376]
XML::Builderblocks restore context properly when exceptions are raised. [#2372] (Thanks, @ric2b and @rinthedev!)- The
Nokogiri::CSS::Parsercache now uses theXPathVisitorconfiguration as part of the cache key, preventing incorrect cache results from being returned when multipleXPathVisitoroptions are being used.- Error recovery from in-context parsing (e.g.,
Node#parse) now always uses the correctDocumentFragmentclass. PreviouslyNokogiri::HTML4::DocumentFragmentwas always used, even for XML documents. [#1158]
... (truncated)
Changelog
Sourced from nokogiri's changelog.
1.13.0 / 2022-01-06
Notes
Ruby
This release introduces native gem support for Ruby 3.1. Please note that Windows users should use the
x64-mingw-ucrtplatform gem for Ruby 3.1, andx64-mingw32for Ruby 2.6–3.0 (see RubyInstaller 3.1.0 release notes).This release ends support for:
- Ruby 2.5, for which official support ended 2021-03-31.
- JRuby 9.2, which is a Ruby 2.5-compatible release.
Faster, more reliable installation: Native Gem for ARM64 Linux
This version of Nokogiri ships experimental native gem support for the
aarch64-linuxplatform, which should support AWS Graviton and other ARM Linux platforms. We don't yet have CI running for this platform, and so we're interested in hearing back from y'all whether this is working, and what problems you're seeing. Please send us feedback here: Feedback: Have you used theaarch64-linuxnative gem?Publishing
This version of Nokogiri opts-in to the "MFA required to publish" setting on Rubygems.org. This and all future Nokogiri gem files must be published to Rubygems by an account with multi-factor authentication enabled. This should provide some additional protection against supply-chain attacks.
A related discussion about Trust exists at #2357 in which I invite you to participate if you have feelings or opinions on this topic.
Dependencies
- [CRuby] Vendored libiconv is updated from 1.15 to 1.16. (https://github.com/sparklemotion/nokogiri/blob/main/Note that libiconv is only redistributed in the native windows and native darwin gems, see
LICENSE-DEPENDENCIES.mdfor more information.) [#2206]- [CRuby] Upgrade mini_portile2 dependency from
~> 2.6.1to~> 2.7.0. ("ruby" platform gem only.)Improved
{XML,HTML4}::DocumentFragmentconstructors all now take an optional parse options parameter or block (similar to Document constructors). [#1692] (Thanks, @JackMc!)Nokogiri::CSS.xpath_forallows anXPathVisitorto be injected, for finer-grained control over how CSS queries are translated into XPath.- [CRuby]
XML::Reader#encodingwill return the encoding detected by the parser when it's not passed to the constructor. [#980]- [CRuby] Handle abruptly-closed HTML comments as recommended by WHATWG. (Thanks to tehryanx for reporting!)
- [CRuby]
Node#lineis no longer capped at 65535. libxml v2.9.0 and later support a new parse option, exposed asNokogiri::XML::ParseOptions::PARSE_BIG_LINES, which is turned on by default inParseOptions::DEFAULT_{XML,XSLT,HTML,SCHEMA}(Note that JRuby already supported large line numbers.) [#1764, #1493, #1617, #1505, #1003, #533]- [CRuby] If a cycle is introduced when reparenting a node (i.e., the node becomes its own ancestor), a
RuntimeErroris raised. libxml2 does no checking for this, which means cycles would otherwise result in infinite loops on subsequent operations. (Note that JRuby already did this.) [#1912]- [CRuby] Source builds will download zlib and libiconv via HTTPS. ("ruby" platform gem only.) [#2391] (Thanks, @jmartin-r7!)
- [JRuby]
Node#linebehavior has been modified to return the line number of the node in the final DOM structure. This behavior is different from CRuby, which returns the node's position in the input string. Ideally the two implementations would be the same, but at least is now officially documented and tested. The real-world impact of this change is that the value returned in JRuby is greater by 1 to account for the XML prolog in the output. [#2380] (Thanks, @dabdine!)Fixed
- CSS queries on HTML5 documents now correctly match foreign elements (SVG, MathML) when namespaces are not specified in the query. [#2376]
XML::Builderblocks restore context properly when exceptions are raised. [#2372] (Thanks, @ric2b and @rinthedev!)- The
Nokogiri::CSS::Parsercache now uses theXPathVisitorconfiguration as part of the cache key, preventing incorrect cache results from being returned when multipleXPathVisitoroptions are being used.- Error recovery from in-context parsing (e.g.,
Node#parse) now always uses the correctDocumentFragmentclass. PreviouslyNokogiri::HTML4::DocumentFragmentwas always used, even for XML documents. [#1158]
... (truncated)
Commits
-
be17829version bump to v1.13.0 -
98b07c7dev: make manual gem packaging more reliable -
d92feafMerge pull request #2411 from sparklemotion/dependabot/bundler/rake-compiler-... -
43dd7cbbuild(deps-dev): update rake-compiler requirement from = 1.1.6 to = 1.1.7 -
dc5276fMerge pull request #2409 from larskanis/cross-ruby-3.1 -
56b89d9package: native win gem correctly specifies required ruby version -
a76963cupdate CHANGELOG with ruby 3.1 native gem support -
c6f195astyle: sort .cross_rubies -
d5584a7package: move host hack into the libiconv recipe -
bc3e640ci: remove workaround for RCD runas - Additional commits viewable in compare view