Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upcoming Puppet 4 / Ruby 2.1.5 Registry compatibility changes #13

Open
Iristyle opened this issue Feb 4, 2015 · 1 comment
Open

Upcoming Puppet 4 / Ruby 2.1.5 Registry compatibility changes #13

Iristyle opened this issue Feb 4, 2015 · 1 comment

Comments

@Iristyle
Copy link

Iristyle commented Feb 4, 2015

As part of making Puppet 4 compatible with Ruby 2.1.5, we have discovered a couple of bugs inside Ruby that will affect your module. The two primary issues are:

  • When enumerating keys with #each_key / #keys or values with #each_value / #values, Ruby will take a UTF-16LE string and roundtrip it through the local codepage unnecessarily, which may cause encoding exceptions. Our prime example of this is when a Unicode en-dash U+2013 appears in a registry value, and the local codepage is IBM437, which has no equivalent character. This is just one of many potential examples that may trigger this behavior. NOTE: Normal registry reads of a value at a particular key are not problematic - the bad behavior is only triggered during enumeration. We have not yet filed this bug with Ruby.
  • When using the #delete_key and #delete_value methods, Ruby is passing wide character UTF-16LE strings to ANSI APIs. We have filed this bug with Ruby at https://bugs.ruby-lang.org/issues/10820

There are additional technical details that can be found in PUP-3837, the ticket we're using to track changes that we've made to Puppet. Our resolution for these issues was merged to Puppet at puppetlabs/puppet@c610cd0

We don't have Puppet 4 builds released yet, but keep an eye on https://groups.google.com/forum/#!forum/puppet-announce

I have identified issues with the code in this module that will require some updating to ensure it maintains compatibility with both existing Puppet releases and the upcoming releases. I'm getting in touch with you now, so that you're not caught off guard, and so that your module is ready to go by the time 4.0 ships.

Issues:

We will be making an announcement to the puppet-dev list shortly mentioning some of these upcoming changes.
https://groups.google.com/forum/#!forum/puppet-dev

Let me know if you have any questions.

Thanks!

@Iristyle
Copy link
Author

Iristyle commented Feb 4, 2015

Also note that because this module is a dependency for liamjbennett/windows_power, it is also affected by association.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant