Issue #16061 has been updated by Charlie Sharpsteen.

Redmine Issue [#16061](http://projects.puppetlabs.com/issues/16061) has been 
migrated to JIRA:

  <https://tickets.puppetlabs.com/browse/PUP-776>


----------------------------------------
Bug #16061: Deprecate non-UTF-8 encodings for textual content
https://projects.puppetlabs.com/issues/16061#change-101427

* Author: Deepak Giridharagopal
* Status: Accepted
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 3.5.0
* Affected Puppet version: 
* Keywords: 
* Branch: 
----------------------------------------
This changes semantics, so it can't be done prior to 3.0.0. Though my 
preference would be to issue a deprecation warning in 2.7.x if we can.

We currently don't specify what character sets we support for things that we 
know are textual (or things we'd like to enforce as text-only). Consequently, 
interoperability across systems or across languages on the same system is 
severely constrained...we have no idea how to encode or decode strings on the 
wire, because we don't know the original encodings of any strings. This has 
created severe headaches for PuppetDB, classic storeconfigs (thereby affecting 
Foreman), etc...we can't guarantee *reliable* storage of puppet data without 
dealing with this.

Off the top of my head, I can think of the following key places that could use 
a tightening of semantics:

* .pp files
* templates
* generate()
* facts

It may also be handy to just state up-front in the docs that all string values 
in puppet are presumed to be UTF-8. I don't believe we need to do anything 
around .rb files, as those already have ways of indicating alternate character 
sets. I believe that UTF-8 should work out-of-the-box for the vast, vast 
majority of Puppet users (who primarily use ASCII or UTF-8 already). The 
biggest impact, I think, will be on people using Latin-1 in their templates and 
.pp files...though a simple call to iconv on the command line should be enough 
to convert them all losslessly. Our deprecation warning could even include a 
reference to instructions on how to convert, if we want to get really fancy.

Notable improvements we could make beyond simple deprecation:

* change functions like template() and generate() so that they take additional, 
optional arguments which are the input encoding and output encoding. Default to 
UTF-8 for both.
* probably other stuff I can't think of right now


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-bugs+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-bugs@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to