1.12.4 / 2021-08-29 #2321
flavorjones
announced in
Releases
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
1.12.4 / 2021-08-29
Notable fix: Namespace inheritance
Namespace behavior when reparenting nodes has historically been poorly specified and the behavior diverged between CRuby and JRuby. As a result, making this behavior consistent in v1.12.0 introduced a breaking change.
This patch release reverts the Builder behavior present in v1.12.0..v1.12.3 but keeps the Document behavior. This release also introduces a Document attribute to allow affected users to easily change this behavior for their legacy code without invasive changes.
Compensating Feature in XML::Document
This release of Nokogiri introduces a new
Documentboolean attribute,namespace_inheritance, which controls whether children should inherit a namespace when they are reparented.Nokogiri::XML:Documentdefaults this attribute tofalsemeaning "do not inherit," thereby making explicit the behavior change introduced in v1.12.0.CRuby users who desire the pre-v1.12.0 behavior may set
document.namespace_inheritance = truebefore reparenting nodes.See https://nokogiri.org/rdoc/Nokogiri/XML/Document.html#namespace_inheritance-instance_method for example usage.
Fix for XML::Builder
However, recognizing that we want
Builder-created children to inherit namespaces, Builder now will setnamespace_inheritance=trueon the underlying document for both JRuby and CRuby. This means that, on CRuby, the pre-v1.12.0 behavior is restored.Users who want to turn this behavior off may pass a keyword argument to the Builder constructor like so:
See https://nokogiri.org/rdoc/Nokogiri/XML/Builder.html#label-Namespace+inheritance for example usage.
Downstream gem maintainers
Note that any downstream gems may want to specifically omit Nokogiri v1.12.0--v1.12.3 from their dependency specification if they rely on child namespace inheritance:
Fixed
systemId. [#2296] (Thanks, @pepijnve!)This discussion was created from the release 1.12.4 / 2021-08-29.
Beta Was this translation helpful? Give feedback.
All reactions