Add missing new files from commit 131e09855e06
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / HISTORY.md
1 ## 5.0.0
2 ### Summary
3 This is a major release which removes support for the Scientific 5 and Debian 7 OS, as well as a removal of the `Stdlib::(Ipv4|IPv6|Ip_address)` data types in favour of `Stdlib::IP::*`. 
4
5 **In addition it contains a substantial piece of work centered around updating functions that have now been migrated into Puppet itself. Please note that this will be the last major release to support Puppet 2 and Puppet 3 and that they will soon be removed.**
6
7 #### Fixed
8 - Docs URLs corrected.
9 - Docs clarified that `Stdlib::Unixpath` only matches absolute paths.
10 - `dirname()` now fails when passed an empty string.
11 - `basename()` documentation clarified.
12 - Corrected documentation of `count()` wrt matches and empty string.
13 - Corrected example in `getparam()` and added note about equivalent in puppet.
14 - Fixed URL to use 'latest' instead of '5.5' for `Hash.new` function.
15
16 #### Added
17 - Support added for symbolic file nodes.
18 - `loadjson()` and `loadyml()` now compatible with HTTPS files.
19 - `loadjson()` and `loadyml()` now compatible with HTTP basic auth files.
20 - `any2array` now returns and empty array when given an empty string.
21 - Support has now been added for Ubuntu 18.04.
22 - `seeded_rand_string()` function has been added.
23
24 #### Changed
25 - PDK update `1.5.0` has been applied.
26 - `size()` function deprecated for Puppet 6 and above.
27 - `wrt` functions moved to Puppet as of Puppet 6.
28 - `sprintf_hash` has had notification put in place to show that as of Puppet 4.10.10 it's functionality is supported by the puppet core.
29 - Added note that `abs()` is in puppet since 6.0.0.
30 - Added information to `base64` function about Binary data type.
31 - Added note to `camelcase()` that function is now in puppet.
32 - Added note to `capitalize()` that function is now in puppet.
33 - Added note to `ceiling()` that function is now in puppet.
34 - Added note to `chomp()` that function is now in puppet.
35 - Added note to `chop()` that function is now in puppet.
36 - Added note how to do equivalence of `clamp()` function in puppet 6.
37 - Added note that `concat()` can be done with + since puppet 4.0.0.
38 - Added note to `convert_base()` how to do this with puppet core.
39 - Added equivalent puppet core way of doing `count()`.
40 - Added docs for equivalent puppet language for `delete_regexp()`.
41 - Added docs for equivalent language constructs for `delete_at()`.
42 - Added puppet 4 equivalent for `delete_undef()` function.
43 - Added equivalent puppet language for `delete_values()`.
44 - Updated `delete()` function with docs about equivalent language.
45 - Added docs that - between arrays is the same as `difference()`.
46 - Added note to `downcase()` that function is now in puppet.
47 - Added note to `empty()` that function is now in puppet.
48 - Added note to `flatten()` that function is now in puppet.
49 - Added note to `floor()` that function is now in puppet.
50 - Added note to `get_module_path()` that puppet has similar function.
51 - Amended documentation for `getvar()`.
52 - Add note to `grep()` that `filter()` in puppet does the same.
53 - Updated `has_key()` with equivalent puppet lang expresion.
54 - Updated the `hash()` function to show equivalent expression.
55 - Added note about more formatting options with `String()` in puppet.
56 - Added note to `join()` that it is in puppet since 5.4.0.
57 - Added note to `keys()` that it is in puppet since 5.4.0.
58 - Added note to `lstrip()`, `rstrip()`, `strip()` and `upcase()` that they are in puppet since 6.0.0.
59 - Updated `member()` with equivalent language expression example.
60 - Updated `merge()` with puppt language equivalent example.
61 - Updated `min()` and `max()` with note that they are in puppet.
62 - Updated `num2bool()` with information that Boolean can convert.
63 - Updated `prefix()` function with equivalent operation in pupppet.
64 - Updated `range()` with information that Integer can be used.
65 - Updated `reject()` with equivalent filter() call.
66 - Added note to `reverse()` that the `reverse_each()` Puppet function does the same as it.
67 - Added note to `round()` that it has moved to puppet in 6.0.0.
68 - Added note to `size()` that `length()` is in puppet since 5.4.0.
69 - Added note to `sort()` that is has moved to Puppet in 6.0.0.
70 - Updated `str2bool()` with a note that Boolean can handle conversion.
71 - Added note to `strftime()` that it moved to puppet in 4.8.0.
72 - Added note to `suffix()` that the same can be done with `map()`.
73 - Updated `time()` to mention Timespan and Timestamp data types.
74 - Added note to `values_at()` for equivalent slice operation in language.
75 - Added note to `values()` that it moved to puppet in 5.5.0.
76 - Corrected docs for `keys()` - in puppet since 5.5.0.
77 - Added note to `length()` that function moved to puppet.
78 - Updated README.md with deprecations for functions moved to puppet.
79 - Updated documentation of `values_at()`.
80 - Updated README with note from `time()` about data types for time.
81 - Updated README for `strintf_hash()` (supported by builtin sprintf).
82 - Updated README with deprecation of `hash()` function (use data type).
83 - Updated README `suffix` with equiv example for `map`.
84 - Updated README with `reject` equivalent call to `filter`.
85 - Updated README with `range` equiv use of type system + `each`.
86 - Updated README with `prefix` equiv func using `map`.
87 - Updated README for `num2bool` with info about Boolean type.
88 - Updated README `str2bool` with information about `Boolean` equivalent.
89 - Updated README `merge` with info about `+` operator equivalent.
90 - Updated README `member` with equivalent alternative in language.
91 - Updated README `join_keys_to_values` with link to String.new.
92 - Updated README `has_key` shows deprecation in favor of `in`.
93 - Updated README `grep` adds information about `filter`.
94 - Updated README and `getvar.rb` as getvar has moved to puppet.
95 - Updated README for `getparam` to be the same as in function.
96 - Updated README `get_module_path` with info about built in variant.
97 - Updated README `difference` to mention `-` operator equiv.
98 - Updated README `delete` with built-in alternatives.
99 - Updated README `delete_values` with builtin equiv.
100 - Updated README `delete_undef` & `delete_regexp` with builtin equiv.
101 - Updated README `delete_at` with equivalent built-in examples.
102 - Updated README `coun`t to show built-in equiv.
103 - Updated README `convert_base` with built-in equiv.
104 - Updated README `concat` with built-in equiv using + and <<.
105 - Updated README `base_64` with built-in equiv using Binary type.
106 - Skipped tests for `abs` if puppet version < 6.0.0.
107 - Skipped tests for `min` and `max` if puppet version < 6.0.0.
108 - Skipped tests for `floor` if puppet version < 6.0.0.
109 - Skipped tests for `ceiling` if puppet version < 6.0.0.
110 - Skipped tests for `round` if puppet version < 6.0.0.
111 - Skipped tests for `upcase` if puppet version < 6.0.0.
112 - Skipped tests for `downcase` if puppet version < 6.0.0.
113 - Skipped tests for `capitalize` if puppet version < 6.0.0.
114 - Skipped tests for `camelcase` if puppet version < 6.0.0.
115 - Skipped tests for strip functions if puppet version < 6.0.0.
116 - Skipped tests for `chop` and `chomp` if puppet version < 6.0.0.
117 - Skipped tests for `sort` if puppet version < 6.0.0.
118 - Removed extra space in `describe` for `abs` test.
119 - Updated README and `any2array` with built-in equiv Array.new.
120 - Updated README and `any2bool` with built-in equiv Boolean.new.
121 - Updated README and `bool2num` with built-in equiv Numeric.new.
122 - Updated README and `bool2str` with built-in equiv String.new.
123 - Corrected equivalent example for `count`.
124 - Updated README and made mention of `filter` in `delete` a link.
125 - Updated docs and tests for `strftime`.
126 - Updated all acceptance test using Puppet.version.
127 - Change 'puppet' to 'Puppet' in function doc strings.
128 - HTTP type checks are now case insensitive.
129
130 #### Removed
131 - Support has been removed for `Scientific 5` and `Debian 7` operating systems.
132 - `Stdlib::(Ipv4|IPv6|Ip_address)` have been removed.
133
134 ## Supported Release 4.25.1
135 ### Summary
136
137 This is a patch which includes a roll up of small fixes. In Puppet 5.5.0 `flatten()`, `length(),` `empty(),` `join(),` `keys(),` and `values()` are now built into Puppet. Please note that the Puppet implementation of the functions will take precedence over the functions in 'puppetlabs-stdlib'.
138
139 #### Fixed
140 - Remove unneeded execute permission from test files.
141 - Puppet 5.5.0 function deprecation [MODULES-6894](https://tickets.puppetlabs.com/browse/MODULES-6894).
142
143 ## Supported Release 4.25.0
144 ### Summary
145
146 This is quite a feature heavy release, it makes this module PDK-compliant for easier maintenance and includes a roll up of maintenance changes.
147
148 #### Added
149 - PDK conversion [MODULES-6332](https://tickets.puppetlabs.com/browse/MODULES-6332).
150 - Update `join_keys_to_values` with an undef statement.
151 - Type alias `Stdlib::Fqdn` matches paths on a fully qualified domain name.
152 - Type alias `Stdlib::Host` matches a valid host, this can be a valid 'ipv4', 'ipv6' or 'fqdn'.
153 - Type alias `Stdlib::Port` matches a valid TCP/UDP Port number.
154 - Type alias `Stdlib::Filesource` matches paths valid values for the source parameter of the puppet file type.
155 - Type alias `Stdlib::IP::Address` matches any IP address, including both IPv4 and IPv6 addresses,
156 - Type alias `Stdlib::IP::Address::V4` matches any string consisting of a valid IPv4 address, this is extended by 'CIDR' and 'nosubnet'.
157 - Type alias `Stdlib::IP::Address::V6` matches any string consisting of a valid IPv6 address, this is extended by 'Full', 'Alternate' and 'Compressed'.
158 - Type alias `Stdlib::IP::Address::V6::Nosubnet`matches any string consisting of a valid IPv6 address with no subnet, this is extended by 'Full', 'Alternate' and 'Compressed'.
159 - Type alias `Stdlib::Port` matches a valid TCP/UDP Port number this is then extended to 'Privileged' which are ports less than 1024 and 'Unprivileged' which are ports greater than 1024.
160
161 ## Supported Release 4.24.0
162 ### Summary
163
164 This release includes a roll up of minor changes and a new feature which provides the ability to skip undef values `to_json_pretty()`.
165 We have also reverted a change that was previously made and resulted in breaking compatibility with Ruby 1.8.7.
166
167 #### Added
168 - Ability to skip undef values in `to_json_pretty()`.
169 - Fix type3x function in stdlib ([MODULES-6216](https://tickets.puppet.com/browse/MODULES-6216))
170
171 #### Changed
172 - Indentation for `sync.yml` was fixed.
173 - Updated type alias tests and dropped superfluous wrapper classes
174 - Revert to old ruby 1.X style of hash ([MODULES-6139](https://tickets.puppet.com/browse/MODULES-6139))
175 - `rubocop.yml` not managed by msync ([MODULES-6201](https://tickets.puppet.com/browse/MODULES-6201))
176
177 ## Supported Release 4.23.0
178 ### Summary
179
180 This release is in order to implement Rubocop changes throughout the module.
181
182 #### Added
183 - Standard and translated readme's have been updated.
184 - Rubocop has been implemented in the module and a wide variety of changes have been made to the code.
185 - Modulesync changes have been merged into the code.
186
187 #### Fixed
188 - Minor fix to the readme.
189
190 ## Supported Release 4.22.0
191 ### Summary
192
193 This is a clean release in preparation of putting the module through the rubocop process.
194
195 #### Added
196 - Support has been added for Debian 9
197 - 'Stdlib::Mode type' has been added to the module.
198 - A type for 'ensure' has been added to the service resources.
199 - A new function 'sprintf_hash' has been added to allow the use of named references.
200
201 #### Removed
202 - Support has been removed for: RedHat 4, CentOS 4, OracleLinux 4, Scientific 4, SLES 10 SP4, Windows Server 2003, Windows Server 2003 R2 and Windows 8.
203
204 #### Fixed
205 - The 'ruby_spec.rb' test file has been altered s that it properly checks results.
206 - Example syntax in 'file_line.rb' has been fixed.
207
208 ## Supported Release 4.21.0
209 ### Summary
210
211 This is a small feature release that includes a revamped, albeit backwards-compatible file_line type.
212
213 #### Added
214 - `replace_all_matches_not_matching_line` parameter in file_line
215 - additional tests and documentation for file_line
216
217 #### Removed
218 - duplicate spec test for absolute_path
219
220 #### Fixed
221 - Unixpath type to allow "/" as valid path
222 - file_line behavior that caused infinite appending of `line` to a file ([MODULES-5651](https://tickets.puppet.com/browse/MODULES-5651))
223
224 ## Supported Release 4.20.0
225 ### Summary
226
227 This release adds new functions and updated README translations.
228
229 #### Added
230 - `to_json`, `to_json_pretty`, and `to_yaml` functions
231 - new Japanese README translations
232
233 #### Fixed
234 - compatibility issue with older versions of Puppet and the `pw_hash` function ([MODULES-5546](https://tickets.puppet.com/browse/MODULES-5546))
235
236 #### Removed
237 - support for EOL platform Debian 6 (Squeeze)
238
239 ## Supported Release 4.19.0
240 ### Summary
241
242 This release adds new functions and better documentation/fixes for existing functions with a noteworthy fix for file_line.
243
244 #### Added
245 - Add validate_domain_name function
246 - Add the round function
247 - Add type for MAC address
248 - Add support for sensitive data type to pw_hash ([MODULES-4908](https://tickets.puppet.com/browse/MODULES-4908))
249 - Add new function, fact() (FACT-932)
250
251 #### Fixed
252 - Fixes for the file_line provider ([MODULES-5003](https://tickets.puppet.com/browse/MODULES-5003))
253 - Add documentation for email functions ([MODULES-5382](https://tickets.puppet.com/browse/MODULES-5382))
254 - unique function is deprecated for puppet version > 5. (FM-6239)
255 - Fix headers in CHANGELOG.md so that headers render correctly
256 - ensure_packages, converge ensure values 'present' and 'installed'
257
258 #### Changed
259 - Removes listed support for EOL Ubuntu versions
260
261 ## Supported Release 4.18.0
262 ### Summary
263
264 Small release that reverts the Puppet version requirement lower bound to again include Puppet 2.7+ and bumps the upper bound to now include Puppet 5.
265
266 #### Fixed
267 - Reverts lower bound of Puppet requirement to 2.7.20
268
269 ## Supported Release 4.17.1
270 ### Summary
271
272 Small release to address a bug (PUP-7650). Also pushes the Puppet version compatibility to 4.7.0.
273
274 #### Bugfixes
275 - (MODULES-5095) Workaround for PUP-7650
276 - (FM-6197) Formatting fixes for file_line resource
277
278
279 ## Supported Release 4.17.0
280 ### Summary
281 This release adds support for internationalization. It also contains Japanese translations for the README, summary and description of the metadata.json and major cleanups in the README. Additional folders have been introduced called locales and readmes where translation files can be found. A number of features and bug fixes are also included in this release. It also adds a new function `glob()` for expanding file lists. Also works around an issue that appeared in puppet 4.6.0 involving types being declared multiple times.
282
283 #### Features
284 - Addition of POT file / folder structure for i18n.
285 - Addition of Internationalized READMEs.
286 - `glob()` function
287
288 ### Fixed
289 - Occasional duplicate type definitions when using `defined_with_params()`
290 - `file_line` encoding issue on ruby 1.8 (unsupported)
291 - Huge readme refresh
292
293 ## Supported Release 4.16.0
294 ### Summary
295
296 This release sees a massive update to all unit tests to test UTF8 characters. There are also multiple cleanups in preparation for internationalization. Alongside this, improvements to ipv6 support, a new length function compatible with Puppet 4, and an update to path types. Also contains multiple bug fixes around functionality and tests.
297
298 #### Features
299 - Addition of coverage in all unit tests for functions, data and resource types for UTF8 for i18n.
300 - All strings within the readme and functions that are split over two lines have been combined in preparation for i18n parser/decorator.
301 - Improvement on the ipv6 support for type - Improves regex to catch some valid (but lesser known) ipv6 strings, mostly those which are a mix of ipv6 strings and embedded ipv6 numbers.
302 - Adds a new parameter `encoding` to allow non UTF-8 files to specify a file encoding. This prevents receiving the error message "invalid byte sequence in UTF-8" when special characters that are not UTF-8 encoded appear in the input stream, such as the copyright symbol.
303 - Addition of the new length function. Returns the length of a given string, array or hash. To eventually replace the deprecated size() function as can handle the new type functionality introduced in Puppet 4.
304 - Permit double slash in absolute/Unix path types.
305
306 #### Bugfixes
307 - Fix unsupported data type error with rspec-puppet master.
308 - Now allows test module metadata.json to be read by Puppet.
309 - Fix acceptance test failure "Hiera is not a class".
310 - Removal of unsupported platforms and future parser setting in acceptance tests.
311 - Regex for tuple checking has been loosened.
312 - Ensure_packages function - Now only tries to apply the resource if not defined.
313 - (MODULES-4528) Use versioncmp to check Puppet version for 4.10.x compat.
314 - Adds comments to warn for UTF8 incompatibility of the functions that may not be compatible with UTF8 with Ruby < 2.4.0.
315
316 ## Supported Release 4.15.0
317 ### Summary
318
319 This release introduces multiple new functions, a new fact and the addition of Ubuntu Xenial support. Also includes a bugfix and documentation update.
320
321 #### Features
322 - Addition of puppet_server fact to return agents server.
323 - Addition of a pry function.
324 - Addition of tests for ensure_resources.
325 - Addition of FQDN UUID generation function.
326 - Addition of Ubuntu Xenial to OS Support.
327
328 #### Bugfixes
329 - Ensure_packages now works with Ruby < 2.0.
330 - Updated the documentation of str2bool function.
331
332 ## Supported Release 4.14.0
333 ### Summary
334
335 Adds several new features and updates, especially around refining the deprecation and validate_legacy functions. Also includes a Gemfile update around an issue with parallel_tests dependancy for different versions of Ruby.
336
337 #### Features
338 - Deprecation function now uses puppet stacktrace if available.
339 - join_key_to_values function now handles array values. If values are arrays, multiple keys are added for each element.
340 - Updated Gemfile to deal with parallel_tests Ruby dependancy (MODULES-3983).
341 - Updated/Fixed ipv4 regex validator (MODULES-3980).
342 - Deprecation clarification added to README.
343
344 #### Bugfixes
345 - README typo fixes.
346 - Use .dup to duplicate classes for modification (MODULES-3829).
347 - Fixes spec failures that were caused by a change in the tested error message in validate_legacy_spec.
348 - Broken link to validate_legacy docs fixed.
349 - Updates deprecation tests to include future parser.
350
351 ## Supported Release 4.13.1
352 ### Summary
353
354 This bugfix release addresses the `undefined method 'optional_repeated_param'` error messages seen by users of puppet 3.7.
355
356 It also improves the user experience around function deprecations by emitting one warning per function(-name) instead of only one deprecation overall. This allows users to identify all deprecated functions used in one agent run, with less back-and-forth.
357
358 #### Bugfixes
359
360 * Emit deprecations warnings for each function, instead of once per process. (MODULES-3961)
361 * Use a universally available API for the v4 deprecation stubs of `is_*` and `validate_*`. (MODULES-3962)
362 * Make `getvar()` compatible to ruby 1.8.7. (MODULES-3969)
363 * Add v4 deprecation stubs for the `is_` counterparts of the deprecated functions to emit the deprecations warnings in all cases.
364
365
366 ## Supported Release 4.13.0
367 ### Summary
368
369 This version of stdlib deprecates a whole host of functions, and provides stepping stones to move to Puppet 4 type validations. Be sure to check out the new `deprecation()` and `validate_legacy()` functions to migrate off the deprecated v3-style data validations.
370
371 Many thanks to all community contributors: bob, Dmitry Ilyin, Dominic Cleal, Joris, Joseph Yaworski, Loic Antoine-Gombeaud, Maksym Melnychok, Michiel Brandenburg, Nate Potter, Romain Tartière, Stephen Benjamin, and Steve Moore, as well as anyone contributing in the code review process and by submitting issues.
372
373 Special thanks to [Voxpupuli's](https://voxpupuli.org/) Igor Galić for donating the puppet-tea types to kickstart this part of stdlib.
374
375
376 #### Deprecations
377 * `validate_absolute_path`, `validate_array`, `validate_bool`, `validate_hash`, `validate_integer`, `validate_ip_address`, `validate_ipv4_address`, `validate_ipv6_address`, `validate_numeric`, `validate_re`, `validate_slength`, `validate_string`, and their `is_` counter parts are now deprecated on Puppet 4. See the `validate_legacy()` description in the README for help on migrating away from those functions.
378 * The `dig` function is provided by core puppet since 4.5.0 with slightly different calling convention. The stdlib version can still be accessed as `dig44` for now.
379
380
381 #### Features
382 * Add Puppet 4 data types for Unix, and Windows paths, and URLs.
383 * Add `deprecation` function to warn users of functionality that will be removed soon.
384 * Add `validate_legacy` function to help with migrating to Puppet 4 data types.
385
386 * Add `any2bool` function, a combination of of `string2bool` and `num2bool`.
387 * Add `delete_regex` function to delete array elements matching a regular expression.
388 * Add `puppet_environmentpath` fact to expose the `environmentpath` setting.
389 * Add `regexpescape` function to safely insert arbitrary strings into regular expressions.
390 * Add `shell_escape`, `shell_join`, and `shell_split` functions for safer working with shell scripts..
391
392 * The `delete` function now also accepts regular expressions as search term.
393 * The `loadyaml` function now accepts a default value, which is returned when there is an error loading the file.
394
395 #### Bugfixes
396 * Fix `file_line.match_for_absence` implementation and description to actually work. (MODULES-3590)
397 * Fix `getparam` so that it can now also return `false`. (MODULES-3933)
398 * Fix the fixture setup for testing and adjust `load_module_metadata` and `loadjson` tests.
399 * Fix `defined_with_params` to handle `undef` correctly on all puppet versions. (PUP-6422, MODULES-3543)
400 * Fix `file_line.path` validation to use puppet's built in `absolute_path?` matcher.
401
402 #### Minor Improvements
403 * README changes: improved descriptions of `deep_merge`, `delete`, `ensure_packages`, `file_line.after`, `range`, and `validate_numeric`.
404 * The `getvar` function now returns nil in all situations where the variable is not found.
405 * Update the `dig44` function with better `undef`, `nil`, and `false` handling.
406 * Better wording on `str2bool` argument validation error message.
407
408
409 ### Known issues
410 * The `validate_legacy` function relies on internal APIs from Puppet 4.4.0 (PE 2016.1) onwards, and doesn't work on earlier versions.
411 * Puppet 4.5.0 (PE 2016.2) has a number of improvements around data types - especially error handling - that make working with them much nicer.
412
413 ## Supported Release 4.12.0
414 ### Summary
415
416 This release provides several new functions, bugfixes, modulesync changes, and some documentation updates.
417
418 #### Features
419 - Adds `clamp`. This function keeps values within a specified range.
420 - Adds `validate_x509_rsa_key_pair`. This function validates an x509 RSA certificate and key pair.
421 - Adds `dig`. This function performs a deep lookup in nested hashes or arrays.
422 - Extends the `base64` support to fit `rfc2045` and `rfc4648`.
423 - Adds `is_ipv6_address` and `is_ipv4_address`. These functions validate the specified ipv4 or ipv6 addresses.
424 - Adds `enclose_ipv6`. This function encloses IPv6 addresses in square brackets.
425 - Adds `ensure_resources`. This function takes a list of resources and creates them if they do not exist.
426 - Extends `suffix` to support applying a suffix to keys in a hash.
427 - Apply modulesync changes.
428 - Add validate_email_address function.
429
430 #### Bugfixes
431 - Fixes `fqdn_rand_string` tests, since Puppet 4.4.0 and later have a higher `fqdn_rand` ceiling.
432 - (MODULES-3152) Adds a check to `package_provider` to prevent failures if Gem is not installed.
433 - Fixes to README.md.
434 - Fixes catch StandardError rather than the gratuitous Exception
435 - Fixes file_line attribute validation.
436 - Fixes concat with Hash arguments.
437
438 ## Supported Release 4.11.0
439 ### Summary
440
441 Provides a validate_absolute_paths and Debian 8 support. There is a fix to the is_package_provider fact and a test improvement.
442
443 #### Features
444 -  Adds new parser called is_absolute_path
445 -  Supports Debian 8
446
447 #### Bugfixes
448 -  Allow package_provider fact to resolve on PE 3.x
449
450 #### Improvements
451 - ensures that the test passes independently of changes to rubygems for ensure_resource
452
453 ## 2015-12-15 - Supported Release 4.10.0
454 ### Summary
455
456 Includes the addition of several new functions and considerable improvements to the existing functions, tests and documentation. Includes some bug fixes which includes compatibility, test and fact issues.
457
458 #### Features
459 - Adds service_provider fact
460 - Adds is_a() function
461 - Adds package_provider fact
462 - Adds validate_ip_address function
463 - Adds seeded_rand function
464
465 #### Bugfixes
466 - Fix backwards compatibility from an improvement to the parseyaml function
467 - Renaming of load_module_metadata test to include \_spec.rb
468 - Fix root_home fact on AIX 5.x, now '-c' rather than '-C'
469 - Fixed Gemfile to work with ruby 1.8.7
470
471 #### Improvements
472 - (MODULES-2462) Improvement of parseyaml function
473 - Improvement of str2bool function
474 - Improvement to readme
475 - Improvement of intersection function
476 - Improvement of validate_re function
477 - Improved speed on Facter resolution of service_provider
478 - empty function now handles numeric values
479 - Package_provider now prevents deprecation warning about the allow_virtual parameter
480 - load_module_metadata now succeeds on empty file
481 - Check added to ensure puppetversion value is not nil
482 - Improvement to bool2str to return a string of choice using boolean
483 - Improvement to naming convention in validate_ipv4_address function
484
485 ## Supported Release 4.9.1
486 ### Summary
487
488 Small release for support of newer PE versions. This increments the version of PE in the metadata.json file.
489
490 ## 2015-09-08 - Supported Release 4.9.0
491 ### Summary
492
493 This release adds new features including the new functions dos2unix, unix2dos, try_get_value, convert_base as well as other features and improvements.
494
495 #### Features
496 - (MODULES-2370) allow `match` parameter to influence `ensure => absent` behavior
497 - (MODULES-2410) Add new functions dos2unix and unix2dos
498 - (MODULE-2456) Modify union to accept more than two arrays
499 - Adds a convert_base function, which can convert numbers between bases
500 - Add a new function "try_get_value"
501
502 #### Bugfixes
503 - n/a
504
505 #### Improvements
506 - (MODULES-2478) Support root_home fact on AIX through "lsuser" command
507 - Acceptance test improvements
508 - Unit test improvements
509 - Readme improvements
510
511 ## 2015-08-10 - Supported Release 4.8.0
512 ### Summary
513 This release adds a function for reading metadata.json from any module, and expands file\_line's abilities.
514
515 #### Features
516 - New parameter `replace` on `file_line`
517 - New function `load_module_metadata()` to load metadata.json and return the content as a hash.
518 - Added hash support to `size()`
519
520 #### Bugfixes
521 - Fix various docs typos
522 - Fix `file_line` resource on puppet < 3.3
523
524 ## 2015-06-22 - Supported Release 4.7.0
525 ### Summary
526
527 Adds Solaris 12 support along with improved Puppet 4 support. There are significant test improvements, and some minor fixes.
528
529 #### Features
530 - Add support for Solaris 12
531
532 #### Bugfixes
533 - Fix for AIO Puppet 4
534 - Fix time for ruby 1.8.7
535 - Specify rspec-puppet version
536 - range() fix for typeerror and missing functionality
537 - Fix pw_hash() on JRuby < 1.7.17
538 - fqdn_rand_string: fix argument error message
539 - catch and rescue from looking up non-existent facts
540 - Use puppet_install_helper, for Puppet 4
541
542 #### Improvements
543 - Enforce support for Puppet 4 testing
544 - fqdn_rotate/fqdn_rand_string acceptance tests and implementation
545 - Simplify mac address regex
546 - validate_integer, validate_numeric: explicitely reject hashes in arrays
547 - Readme edits
548 - Remove all the pops stuff for rspec-puppet
549 - Sync via modulesync
550 - Add validate_slength optional 3rd arg
551 - Move tests directory to examples directory
552
553 ## 2015-04-14 - Supported Release 4.6.0
554 ### Summary
555
556 Adds functions and function argument abilities, and improves compatibility with the new puppet parser
557
558 #### Features
559 - MODULES-444: `concat()` can now take more than two arrays
560 - `basename()` added to have Ruby File.basename functionality
561 - `delete()` can now take an array of items to remove
562 - `prefix()` can now take a hash
563 - `upcase()` can now take a hash or array of upcaseable things
564 - `validate_absolute_path()` can now take an array
565 - `validate_cmd()` can now use % in the command to embed the validation file argument in the string
566 - MODULES-1473: deprecate `type()` function in favor of `type3x()`
567 - MODULES-1473: Add `type_of()` to give better type information on future parser
568 - Deprecate `private()` for `assert_private()` due to future parser
569 - Adds `ceiling()` to take the ceiling of a number
570 - Adds `fqdn_rand_string()` to generate random string based on fqdn
571 - Adds `pw_hash()` to generate password hashes
572 - Adds `validate_integer()`
573 - Adds `validate_numeric()` (like `validate_integer()` but also accepts floats)
574
575 #### Bugfixes
576 - Fix seeding of `fqdn_rotate()`
577 - `ensure_resource()` is more verbose on debug mode
578 - Stricter argument checking for `dirname()`
579 - Fix `is_domain_name()` to better match RFC
580 - Fix `uriescape()` when called with array
581 - Fix `file_line` resource when using the `after` attribute with `match`
582
583 ## 2015-01-14 - Supported Release 4.5.1
584 ### Summary
585
586 This release changes the temporary facter_dot_d cache locations outside of the /tmp directory due to a possible security vunerability. CVE-2015-1029
587
588 #### Bugfixes
589 - Facter_dot_d cache will now be stored in puppet libdir instead of tmp
590
591 ## 2014-12-15 - Supported Release 4.5.0
592 ### Summary
593
594 This release improves functionality of the member function and adds improved future parser support.
595
596 #### Features
597 - MODULES-1329: Update member() to allow the variable to be an array.
598 - Sync .travis.yml, Gemfile, Rakefile, and CONTRIBUTING.md via modulesync
599
600 #### Bugfixes
601 - Fix range() to work with numeric ranges with the future parser
602 - Accurately express SLES support in metadata.json (was missing 10SP4 and 12)
603 - Don't require `line` to match the `match` parameter
604
605 ## 2014-11-10 - Supported Release 4.4.0
606 ### Summary
607 This release has an overhauled readme, new private manifest function, and fixes many future parser bugs.
608
609 #### Features
610 - All new shiny README
611 - New `private()` function for making private manifests (yay!)
612
613 #### Bugfixes
614 - Code reuse in `bool2num()` and `zip()`
615 - Fix many functions to handle `generate()` no longer returning a string on new puppets
616 - `concat()` no longer modifies the first argument (whoops)
617 - strict variable support for `getvar()`, `member()`, `values_at`, and `has_interface_with()`
618 - `to_bytes()` handles PB and EB now
619 - Fix `tempfile` ruby requirement for `validate_augeas()` and `validate_cmd()`
620 - Fix `validate_cmd()` for windows
621 - Correct `validate_string()` docs to reflect non-handling of `undef`
622 - Fix `file_line` matching on older rubies
623
624
625 ## 2014-07-15 - Supported Release 4.3.2
626 ### Summary
627
628 This release merely updates metadata.json so the module can be uninstalled and
629 upgraded via the puppet module command.
630
631 ## 2014-07-14 - Supported Release 4.3.1
632 ### Summary
633 This supported release updates the metadata.json to work around upgrade behavior of the PMT.
634
635 #### Bugfixes
636 - Synchronize metadata.json with PMT-generated metadata to pass checksums
637
638 ## 2014-06-27 - Supported Release 4.3.0
639 ### Summary
640 This release is the first supported release of the stdlib 4 series. It remains
641 backwards-compatible with the stdlib 3 series. It adds two new functions, one bugfix, and many testing updates.
642
643 #### Features
644 - New `bool2str()` function
645 - New `camelcase()` function
646
647 #### Bugfixes
648 - Fix `has_interface_with()` when interfaces fact is nil
649
650 ## 2014-06-04 - Release 4.2.2
651 ### Summary
652
653 This release adds PE3.3 support in the metadata and fixes a few tests.
654
655 ## 2014-05-08 - Release - 4.2.1
656 ### Summary
657 This release moves a stray symlink that can cause problems.
658
659 ## 2014-05-08 - Release - 4.2.0
660 ### Summary
661 This release adds many new functions and fixes, and continues to be backwards compatible with stdlib 3.x
662
663 #### Features
664 - New `base64()` function
665 - New `deep_merge()` function
666 - New `delete_undef_values()` function
667 - New `delete_values()` function
668 - New `difference()` function
669 - New `intersection()` function
670 - New `is_bool()` function
671 - New `pick_default()` function
672 - New `union()` function
673 - New `validate_ipv4_address` function
674 - New `validate_ipv6_address` function
675 - Update `ensure_packages()` to take an option hash as a second parameter.
676 - Update `range()` to take an optional third argument for range step
677 - Update `validate_slength()` to take an optional third argument for minimum length
678 - Update `file_line` resource to take `after` and `multiple` attributes
679
680 #### Bugfixes
681 - Correct `is_string`, `is_domain_name`, `is_array`, `is_float`, and `is_function_available` for parsing odd types such as bools and hashes.
682 - Allow facts.d facts to contain `=` in the value
683 - Fix `root_home` fact on darwin systems
684 - Fix `concat()` to work with a second non-array argument
685 - Fix `floor()` to work with integer strings
686 - Fix `is_integer()` to return true if passed integer strings
687 - Fix `is_numeric()` to return true if passed integer strings
688 - Fix `merge()` to work with empty strings
689 - Fix `pick()` to raise the correct error type
690 - Fix `uriescape()` to use the default URI.escape list
691 - Add/update unit & acceptance tests.
692
693
694 ## 2014-03-04 - Supported Release - 3.2.1
695 ### Summary
696 This is a supported release
697
698 #### Bugfixes
699 - Fixed `is_integer`/`is_float`/`is_numeric` for checking the value of arithmatic expressions.
700
701 #### Known bugs
702 * No known bugs
703
704 ---
705
706 ##### 2013-05-06 - Jeff McCune <jeff@puppetlabs.com> - 4.1.0
707
708  * (#20582) Restore facter\_dot\_d to stdlib for PE users (3b887c8)
709  * (maint) Update Gemfile with GEM\_FACTER\_VERSION (f44d535)
710
711 ##### 2013-05-06 - Alex Cline <acline@us.ibm.com> - 4.1.0
712
713  * Terser method of string to array conversion courtesy of ethooz. (d38bce0)
714
715 ##### 2013-05-06 - Alex Cline <acline@us.ibm.com> 4.1.0
716
717  * Refactor ensure\_resource expectations (b33cc24)
718
719 ##### 2013-05-06 - Alex Cline <acline@us.ibm.com> 4.1.0
720
721  * Changed str-to-array conversion and removed abbreviation. (de253db)
722
723 ##### 2013-05-03 - Alex Cline <acline@us.ibm.com> 4.1.0
724
725  * (#20548) Allow an array of resource titles to be passed into the ensure\_resource function (e08734a)
726
727 ##### 2013-05-02 - Raphaël Pinson <raphael.pinson@camptocamp.com> - 4.1.0
728
729  * Add a dirname function (2ba9e47)
730
731 ##### 2013-04-29 - Mark Smith-Guerrero <msmithgu@gmail.com> - 4.1.0
732
733  * (maint) Fix a small typo in hash() description (928036a)
734
735 ##### 2013-04-12 - Jeff McCune <jeff@puppetlabs.com> - 4.0.2
736
737  * Update user information in gemspec to make the intent of the Gem clear.
738
739 ##### 2013-04-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.1
740
741  * Fix README function documentation (ab3e30c)
742
743 ##### 2013-04-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
744
745  * stdlib 4.0 drops support with Puppet 2.7
746  * stdlib 4.0 preserves support with Puppet 3
747
748 ##### 2013-04-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
749
750  * Add ability to use puppet from git via bundler (9c5805f)
751
752 ##### 2013-04-10 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
753
754  * (maint) Make stdlib usable as a Ruby GEM (e81a45e)
755
756 ##### 2013-04-10 - Erik Dalén <dalen@spotify.com> - 4.0.0
757
758  * Add a count function (f28550e)
759
760 ##### 2013-03-31 - Amos Shapira <ashapira@atlassian.com> - 4.0.0
761
762  * (#19998) Implement any2array (7a2fb80)
763
764 ##### 2013-03-29 - Steve Huff <shuff@vecna.org> - 4.0.0
765
766  * (19864) num2bool match fix (8d217f0)
767
768 ##### 2013-03-20 - Erik Dalén <dalen@spotify.com> - 4.0.0
769
770  * Allow comparisons of Numeric and number as String (ff5dd5d)
771
772 ##### 2013-03-26 - Richard Soderberg <rsoderberg@mozilla.com> - 4.0.0
773
774  * add suffix function to accompany the prefix function (88a93ac)
775
776 ##### 2013-03-19 - Kristof Willaert <kristof.willaert@gmail.com> - 4.0.0
777
778  * Add floor function implementation and unit tests (0527341)
779
780 ##### 2012-04-03 - Eric Shamow <eric@puppetlabs.com> - 4.0.0
781
782  * (#13610) Add is\_function\_available to stdlib (961dcab)
783
784 ##### 2012-12-17 - Justin Lambert <jlambert@eml.cc> - 4.0.0
785
786  * str2bool should return a boolean if called with a boolean (5d5a4d4)
787
788 ##### 2012-10-23 - Uwe Stuehler <ustuehler@team.mobile.de> - 4.0.0
789
790  * Fix number of arguments check in flatten() (e80207b)
791
792 ##### 2013-03-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
793
794  * Add contributing document (96e19d0)
795
796 ##### 2013-03-04 - Raphaël Pinson <raphael.pinson@camptocamp.com> - 4.0.0
797
798  * Add missing documentation for validate\_augeas and validate\_cmd to README.markdown (a1510a1)
799
800 ##### 2013-02-14 - Joshua Hoblitt <jhoblitt@cpan.org> - 4.0.0
801
802  * (#19272) Add has\_element() function (95cf3fe)
803
804 ##### 2013-02-07 - Raphaël Pinson <raphael.pinson@camptocamp.com> - 4.0.0
805
806  * validate\_cmd(): Use Puppet::Util::Execution.execute when available (69248df)
807
808 ##### 2012-12-06 - Raphaël Pinson <raphink@gmail.com> - 4.0.0
809
810  * Add validate\_augeas function (3a97c23)
811
812 ##### 2012-12-06 - Raphaël Pinson <raphink@gmail.com> - 4.0.0
813
814  * Add validate\_cmd function (6902cc5)
815
816 ##### 2013-01-14 - David Schmitt <david@dasz.at> - 4.0.0
817
818  * Add geppetto project definition (b3fc0a3)
819
820 ##### 2013-01-02 - Jaka Hudoklin <jakahudoklin@gmail.com> - 4.0.0
821
822  * Add getparam function to get defined resource parameters (20e0e07)
823
824 ##### 2013-01-05 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
825
826  * (maint) Add Travis CI Support (d082046)
827
828 ##### 2012-12-04 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
829
830  * Clarify that stdlib 3 supports Puppet 3 (3a6085f)
831
832 ##### 2012-11-30 - Erik Dalén <dalen@spotify.com> - 4.0.0
833
834  * maint: style guideline fixes (7742e5f)
835
836 ##### 2012-11-09 - James Fryman <james@frymanet.com> - 4.0.0
837
838  * puppet-lint cleanup (88acc52)
839
840 ##### 2012-11-06 - Joe Julian <me@joejulian.name> - 4.0.0
841
842  * Add function, uriescape, to URI.escape strings. Redmine #17459 (fd52b8d)
843
844 ##### 2012-09-18 - Chad Metcalf <chad@wibidata.com> - 3.2.0
845
846  * Add an ensure\_packages function. (8a8c09e)
847
848 ##### 2012-11-23 - Erik Dalén <dalen@spotify.com> - 3.2.0
849
850  * (#17797) min() and max() functions (9954133)
851
852 ##### 2012-05-23 - Peter Meier <peter.meier@immerda.ch> - 3.2.0
853
854  * (#14670) autorequire a file\_line resource's path (dfcee63)
855
856 ##### 2012-11-19 - Joshua Harlan Lifton <lifton@puppetlabs.com> - 3.2.0
857
858  * Add join\_keys\_to\_values function (ee0f2b3)
859
860 ##### 2012-11-17 - Joshua Harlan Lifton <lifton@puppetlabs.com> - 3.2.0
861
862  * Extend delete function for strings and hashes (7322e4d)
863
864 ##### 2012-08-03 - Gary Larizza <gary@puppetlabs.com> - 3.2.0
865
866  * Add the pick() function (ba6dd13)
867
868 ##### 2012-03-20 - Wil Cooley <wcooley@pdx.edu> - 3.2.0
869
870  * (#13974) Add predicate functions for interface facts (f819417)
871
872 ##### 2012-11-06 - Joe Julian <me@joejulian.name> - 3.2.0
873
874  * Add function, uriescape, to URI.escape strings. Redmine #17459 (70f4a0e)
875
876 ##### 2012-10-25 - Jeff McCune <jeff@puppetlabs.com> - 3.1.1
877
878  * (maint) Fix spec failures resulting from Facter API changes (97f836f)
879
880 ##### 2012-10-23 - Matthaus Owens <matthaus@puppetlabs.com> - 3.1.0
881
882  * Add PE facts to stdlib (cdf3b05)
883
884 ##### 2012-08-16 - Jeff McCune <jeff@puppetlabs.com> - 3.0.1
885
886  * Fix accidental removal of facts\_dot\_d.rb in 3.0.0 release
887
888 ##### 2012-08-16 - Jeff McCune <jeff@puppetlabs.com> - 3.0.0
889
890  * stdlib 3.0 drops support with Puppet 2.6
891  * stdlib 3.0 preserves support with Puppet 2.7
892
893 ##### 2012-08-07 - Dan Bode <dan@puppetlabs.com> - 3.0.0
894
895  * Add function ensure\_resource and defined\_with\_params (ba789de)
896
897 ##### 2012-07-10 - Hailee Kenney <hailee@puppetlabs.com> - 3.0.0
898
899  * (#2157) Remove facter\_dot\_d for compatibility with external facts (f92574f)
900
901 ##### 2012-04-10 - Chris Price <chris@puppetlabs.com> - 3.0.0
902
903  * (#13693) moving logic from local spec\_helper to puppetlabs\_spec\_helper (85f96df)
904
905 ##### 2012-10-25 - Jeff McCune <jeff@puppetlabs.com> - 2.5.1
906
907  * (maint) Fix spec failures resulting from Facter API changes (97f836f)
908
909 ##### 2012-10-23 - Matthaus Owens <matthaus@puppetlabs.com> - 2.5.0
910
911  * Add PE facts to stdlib (cdf3b05)
912
913 ##### 2012-08-15 - Dan Bode <dan@puppetlabs.com> - 2.5.0
914
915  * Explicitly load functions used by ensure\_resource (9fc3063)
916
917 ##### 2012-08-13 - Dan Bode <dan@puppetlabs.com> - 2.5.0
918
919  * Add better docs about duplicate resource failures (97d327a)
920
921 ##### 2012-08-13 - Dan Bode <dan@puppetlabs.com> - 2.5.0
922
923  * Handle undef for parameter argument (4f8b133)
924
925 ##### 2012-08-07 - Dan Bode <dan@puppetlabs.com> - 2.5.0
926
927  * Add function ensure\_resource and defined\_with\_params (a0cb8cd)
928
929 ##### 2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
930
931  * Disable tests that fail on 2.6.x due to #15912 (c81496e)
932
933 ##### 2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
934
935  * (Maint) Fix mis-use of rvalue functions as statements (4492913)
936
937 ##### 2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
938
939  * Add .rspec file to repo root (88789e8)
940
941 ##### 2012-06-07 - Chris Price <chris@puppetlabs.com> - 2.4.0
942
943  * Add support for a 'match' parameter to file\_line (a06c0d8)
944
945 ##### 2012-08-07 - Erik Dalén <dalen@spotify.com> - 2.4.0
946
947  * (#15872) Add to\_bytes function (247b69c)
948
949 ##### 2012-07-19 - Jeff McCune <jeff@puppetlabs.com> - 2.4.0
950
951  * (Maint) use PuppetlabsSpec::PuppetInternals.scope (master) (deafe88)
952
953 ##### 2012-07-10 - Hailee Kenney <hailee@puppetlabs.com> - 2.4.0
954
955  * (#2157) Make facts\_dot\_d compatible with external facts (5fb0ddc)
956
957 ##### 2012-03-16 - Steve Traylen <steve.traylen@cern.ch> - 2.4.0
958
959  * (#13205) Rotate array/string randomley based on fqdn, fqdn\_rotate() (fef247b)
960
961 ##### 2012-05-22 - Peter Meier <peter.meier@immerda.ch> - 2.3.3
962
963  * fix regression in #11017 properly (f0a62c7)
964
965 ##### 2012-05-10 - Jeff McCune <jeff@puppetlabs.com> - 2.3.3
966
967  * Fix spec tests using the new spec\_helper (7d34333)
968
969 ##### 2012-05-10 - Puppet Labs <support@puppetlabs.com> - 2.3.2
970
971  * Make file\_line default to ensure => present (1373e70)
972  * Memoize file\_line spec instance variables (20aacc5)
973  * Fix spec tests using the new spec\_helper (1ebfa5d)
974  * (#13595) initialize\_everything\_for\_tests couples modules Puppet ver (3222f35)
975  * (#13439) Fix MRI 1.9 issue with spec\_helper (15c5fd1)
976  * (#13439) Fix test failures with Puppet 2.6.x (665610b)
977  * (#13439) refactor spec helper for compatibility with both puppet 2.7 and master (82194ca)
978  * (#13494) Specify the behavior of zero padded strings (61891bb)
979
980 ##### 2012-03-29 Puppet Labs <support@puppetlabs.com> - 2.1.3
981
982 * (#11607) Add Rakefile to enable spec testing
983 * (#12377) Avoid infinite loop when retrying require json
984
985 ##### 2012-03-13 Puppet Labs <support@puppetlabs.com> - 2.3.1
986
987 * (#13091) Fix LoadError bug with puppet apply and puppet\_vardir fact
988
989 ##### 2012-03-12 Puppet Labs <support@puppetlabs.com> - 2.3.0
990
991 * Add a large number of new Puppet functions
992 * Backwards compatibility preserved with 2.2.x
993
994 ##### 2011-12-30 Puppet Labs <support@puppetlabs.com> - 2.2.1
995
996 * Documentation only release for the Forge
997
998 ##### 2011-12-30 Puppet Labs <support@puppetlabs.com> - 2.1.2
999
1000 * Documentation only release for PE 2.0.x
1001
1002 ##### 2011-11-08 Puppet Labs <support@puppetlabs.com> - 2.2.0
1003
1004 * #10285 - Refactor json to use pson instead.
1005 * Maint  - Add watchr autotest script
1006 * Maint  - Make rspec tests work with Puppet 2.6.4
1007 * #9859  - Add root\_home fact and tests
1008
1009 ##### 2011-08-18 Puppet Labs <support@puppetlabs.com> - 2.1.1
1010
1011 * Change facts.d paths to match Facter 2.0 paths.
1012 * /etc/facter/facts.d
1013 * /etc/puppetlabs/facter/facts.d
1014
1015 ##### 2011-08-17 Puppet Labs <support@puppetlabs.com> - 2.1.0
1016
1017 * Add R.I. Pienaar's facts.d custom facter fact
1018 * facts defined in /etc/facts.d and /etc/puppetlabs/facts.d are
1019   automatically loaded now.
1020
1021 ##### 2011-08-04 Puppet Labs <support@puppetlabs.com> - 2.0.0
1022
1023 * Rename whole\_line to file\_line
1024 * This is an API change and as such motivating a 2.0.0 release according to semver.org.
1025
1026 ##### 2011-08-04 Puppet Labs <support@puppetlabs.com> - 1.1.0
1027
1028 * Rename append\_line to whole\_line
1029 * This is an API change and as such motivating a 1.1.0 release.
1030
1031 ##### 2011-08-04 Puppet Labs <support@puppetlabs.com> - 1.0.0
1032
1033 * Initial stable release
1034 * Add validate\_array and validate\_string functions
1035 * Make merge() function work with Ruby 1.8.5
1036 * Add hash merging function
1037 * Add has\_key function
1038 * Add loadyaml() function
1039 * Add append\_line native
1040
1041 ##### 2011-06-21 Jeff McCune <jeff@puppetlabs.com> - 0.1.7
1042
1043 * Add validate\_hash() and getvar() functions
1044
1045 ##### 2011-06-15 Jeff McCune <jeff@puppetlabs.com> - 0.1.6
1046
1047 * Add anchor resource type to provide containment for composite classes
1048
1049 ##### 2011-06-03 Jeff McCune <jeff@puppetlabs.com> - 0.1.5
1050
1051 * Add validate\_bool() function to stdlib
1052
1053 ##### 0.1.4 2011-05-26 Jeff McCune <jeff@puppetlabs.com>
1054
1055 * Move most stages after main
1056
1057 ##### 0.1.3 2011-05-25 Jeff McCune <jeff@puppetlabs.com>
1058
1059 * Add validate\_re() function
1060
1061 ##### 0.1.2 2011-05-24 Jeff McCune <jeff@puppetlabs.com>
1062
1063 * Update to add annotated tag
1064
1065 ##### 0.1.1 2011-05-24 Jeff McCune <jeff@puppetlabs.com>
1066
1067 * Add stdlib::stages class with a standard set of stages