Merge remote-tracking branch 'origin/master' into leap_master
[puppet_stdlib.git] / CHANGELOG.md
1 # Change log
2
3 All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
4 and this project adheres to [Semantic Versioning](http://semver.org).
5
6 ## Supported Release 4.20.0
7 ### Summary
8
9 This release adds new functions and updated README translations.
10
11 #### Added
12 - `to_json`, `to_json_pretty`, and `to_yaml` functions
13 - new Japanese README translations
14
15 #### Fixed
16 - compatibility issue with older versions of Puppet and the `pw_hash` function ([MODULES-5546](https://tickets.puppet.com/browse/MODULES-5546))
17
18 #### Removed
19 - support for EOL platform Debian 6 (Squeeze)
20
21 ## Supported Release 4.19.0
22 ### Summary
23
24 This release adds new functions and better documentation/fixes for existing functions with a noteworthy fix for file_line.
25
26 #### Added
27 - Add validate_domain_name function
28 - Add the round function
29 - Add type for MAC address
30 - Add support for sensitive data type to pw_hash ([MODULES-4908](https://tickets.puppet.com/browse/MODULES-4908))
31 - Add new function, fact() (FACT-932)
32
33 #### Fixed
34 - Fixes for the file_line provider ([MODULES-5003](https://tickets.puppet.com/browse/MODULES-5003)) 
35 - Add documentation for email functions ([MODULES-5382](https://tickets.puppet.com/browse/MODULES-5382)) 
36 - unique function is deprecated for puppet version > 5. (FM-6239) 
37 - Fix headers in CHANGELOG.md so that headers render correctly
38 - ensure_packages, converge ensure values 'present' and 'installed'
39
40 #### Changed
41 - Removes listed support for EOL Ubuntu versions
42
43 ## Supported Release 4.18.0
44 ### Summary
45
46 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.
47
48 #### Fixed
49 - Reverts lower bound of Puppet requirement to 2.7.20
50
51 ## Supported Release 4.17.1
52 ### Summary
53
54 Small release to address a bug (PUP-7650). Also pushes the Puppet version compatibility to 4.7.0.
55
56 #### Bugfixes
57 - (MODULES-5095) Workaround for PUP-7650
58 - (FM-6197) Formatting fixes for file_line resource
59
60
61 ## Supported Release 4.17.0
62 ### Summary
63 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.
64
65 #### Features
66 - Addition of POT file / folder structure for i18n.
67 - Addition of Internationalized READMEs.
68 - `glob()` function
69
70 ### Fixed
71 - Occasional duplicate type definitions when using `defined_with_params()`
72 - `file_line` encoding issue on ruby 1.8 (unsupported)
73 - Huge readme refresh
74
75 ## Supported Release 4.16.0
76 ### Summary
77
78 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.
79
80 #### Features
81 - Addition of coverage in all unit tests for functions, data and resource types for UTF8 for i18n.
82 - All strings within the readme and functions that are split over two lines have been combined in preparation for i18n parser/decorator.
83 - 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.
84 - 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.
85 - 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.
86 - Permit double slash in absolute/Unix path types.
87
88 #### Bugfixes
89 - Fix unsupported data type error with rspec-puppet master.
90 - Now allows test module metadata.json to be read by Puppet.
91 - Fix acceptance test failure "Hiera is not a class".
92 - Removal of unsupported platforms and future parser setting in acceptance tests.
93 - Regex for tuple checking has been loosened.
94 - Ensure_packages function - Now only tries to apply the resource if not defined.
95 - (MODULES-4528) Use versioncmp to check Puppet version for 4.10.x compat.
96 - Adds comments to warn for UTF8 incompatibility of the functions that may not be compatible with UTF8 with Ruby < 2.4.0.
97
98 ## Supported Release 4.15.0
99 ### Summary
100
101 This release introduces multiple new functions, a new fact and the addition of Ubuntu Xenial support. Also includes a bugfix and documentation update.
102
103 #### Features
104 - Addition of puppet_server fact to return agents server.
105 - Addition of a pry function.
106 - Addition of tests for ensure_resources.
107 - Addition of FQDN UUID generation function.
108 - Addition of Ubuntu Xenial to OS Support.
109
110 #### Bugfixes
111 - Ensure_packages now works with Ruby < 2.0.
112 - Updated the documentation of str2bool function.
113
114 ## Supported Release 4.14.0
115 ### Summary
116
117 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.
118
119 #### Features
120 - Deprecation function now uses puppet stacktrace if available.
121 - join_key_to_values function now handles array values. If values are arrays, multiple keys are added for each element.
122 - Updated Gemfile to deal with parallel_tests Ruby dependancy (MODULES-3983).
123 - Updated/Fixed ipv4 regex validator (MODULES-3980).
124 - Deprecation clarification added to README.
125
126 #### Bugfixes
127 - README typo fixes.
128 - Use .dup to duplicate classes for modification (MODULES-3829).
129 - Fixes spec failures that were caused by a change in the tested error message in validate_legacy_spec.
130 - Broken link to validate_legacy docs fixed.
131 - Updates deprecation tests to include future parser.
132
133 ## Supported Release 4.13.1
134 ### Summary
135
136 This bugfix release addresses the `undefined method 'optional_repeated_param'` error messages seen by users of puppet 3.7.
137
138 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.
139
140 #### Bugfixes
141
142 * Emit deprecations warnings for each function, instead of once per process. (MODULES-3961)
143 * Use a universally available API for the v4 deprecation stubs of `is_*` and `validate_*`. (MODULES-3962)
144 * Make `getvar()` compatible to ruby 1.8.7. (MODULES-3969)
145 * Add v4 deprecation stubs for the `is_` counterparts of the deprecated functions to emit the deprecations warnings in all cases.
146
147
148 ## Supported Release 4.13.0
149 ### Summary
150
151 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.
152
153 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.
154
155 Special thanks to [Voxpupuli's](https://voxpupuli.org/) Igor Galić for donating the puppet-tea types to kickstart this part of stdlib.
156
157
158 #### Deprecations
159 * `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.
160 * 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.
161
162
163 #### Features
164 * Add Puppet 4 data types for Unix, and Windows paths, and URLs.
165 * Add `deprecation` function to warn users of functionality that will be removed soon.
166 * Add `validate_legacy` function to help with migrating to Puppet 4 data types.
167
168 * Add `any2bool` function, a combination of of `string2bool` and `num2bool`.
169 * Add `delete_regex` function to delete array elements matching a regular expression.
170 * Add `puppet_environmentpath` fact to expose the `environmentpath` setting.
171 * Add `regexpescape` function to safely insert arbitrary strings into regular expressions.
172 * Add `shell_escape`, `shell_join`, and `shell_split` functions for safer working with shell scripts..
173
174 * The `delete` function now also accepts regular expressions as search term.
175 * The `loadyaml` function now accepts a default value, which is returned when there is an error loading the file.
176
177 #### Bugfixes
178 * Fix `file_line.match_for_absence` implementation and description to actually work. (MODULES-3590)
179 * Fix `getparam` so that it can now also return `false`. (MODULES-3933)
180 * Fix the fixture setup for testing and adjust `load_module_metadata` and `loadjson` tests.
181 * Fix `defined_with_params` to handle `undef` correctly on all puppet versions. (PUP-6422, MODULES-3543)
182 * Fix `file_line.path` validation to use puppet's built in `absolute_path?` matcher.
183
184 #### Minor Improvements
185 * README changes: improved descriptions of `deep_merge`, `delete`, `ensure_packages`, `file_line.after`, `range`, and `validate_numeric`.
186 * The `getvar` function now returns nil in all situations where the variable is not found.
187 * Update the `dig44` function with better `undef`, `nil`, and `false` handling.
188 * Better wording on `str2bool` argument validation error message.
189
190
191 ### Known issues
192 * The `validate_legacy` function relies on internal APIs from Puppet 4.4.0 (PE 2016.1) onwards, and doesn't work on earlier versions.
193 * 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.
194
195 ## Supported Release 4.12.0
196 ### Summary
197
198 This release provides several new functions, bugfixes, modulesync changes, and some documentation updates.
199
200 #### Features
201 - Adds `clamp`. This function keeps values within a specified range.
202 - Adds `validate_x509_rsa_key_pair`. This function validates an x509 RSA certificate and key pair.
203 - Adds `dig`. This function performs a deep lookup in nested hashes or arrays.
204 - Extends the `base64` support to fit `rfc2045` and `rfc4648`.
205 - Adds `is_ipv6_address` and `is_ipv4_address`. These functions validate the specified ipv4 or ipv6 addresses.
206 - Adds `enclose_ipv6`. This function encloses IPv6 addresses in square brackets.
207 - Adds `ensure_resources`. This function takes a list of resources and creates them if they do not exist.
208 - Extends `suffix` to support applying a suffix to keys in a hash.
209 - Apply modulesync changes.
210 - Add validate_email_address function.
211
212 #### Bugfixes
213 - Fixes `fqdn_rand_string` tests, since Puppet 4.4.0 and later have a higher `fqdn_rand` ceiling.
214 - (MODULES-3152) Adds a check to `package_provider` to prevent failures if Gem is not installed.
215 - Fixes to README.md.
216 - Fixes catch StandardError rather than the gratuitous Exception
217 - Fixes file_line attribute validation.
218 - Fixes concat with Hash arguments.
219
220 ## Supported Release 4.11.0
221 ### Summary
222
223 Provides a validate_absolute_paths and Debian 8 support. There is a fix to the is_package_provider fact and a test improvement.
224
225 #### Features
226 -  Adds new parser called is_absolute_path
227 -  Supports Debian 8
228
229 #### Bugfixes
230 -  Allow package_provider fact to resolve on PE 3.x
231
232 #### Improvements
233 - ensures that the test passes independently of changes to rubygems for ensure_resource
234
235 ## 2015-12-15 - Supported Release 4.10.0
236 ### Summary
237
238 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.
239
240 #### Features
241 - Adds service_provider fact
242 - Adds is_a() function
243 - Adds package_provider fact
244 - Adds validate_ip_address function
245 - Adds seeded_rand function
246
247 #### Bugfixes
248 - Fix backwards compatibility from an improvement to the parseyaml function
249 - Renaming of load_module_metadata test to include _spec.rb
250 - Fix root_home fact on AIX 5.x, now '-c' rather than '-C'
251 - Fixed Gemfile to work with ruby 1.8.7
252
253 #### Improvements
254 - (MODULES-2462) Improvement of parseyaml function
255 - Improvement of str2bool function
256 - Improvement to readme
257 - Improvement of intersection function
258 - Improvement of validate_re function
259 - Improved speed on Facter resolution of service_provider
260 - empty function now handles numeric values
261 - Package_provider now prevents deprecation warning about the allow_virtual parameter
262 - load_module_metadata now succeeds on empty file
263 - Check added to ensure puppetversion value is not nil
264 - Improvement to bool2str to return a string of choice using boolean
265 - Improvement to naming convention in validate_ipv4_address function
266
267 ## Supported Release 4.9.1
268 ### Summary
269
270 Small release for support of newer PE versions. This increments the version of PE in the metadata.json file.
271
272 ## 2015-09-08 - Supported Release 4.9.0
273 ### Summary
274
275 This release adds new features including the new functions dos2unix, unix2dos, try_get_value, convert_base as well as other features and improvements.
276
277 #### Features
278 - (MODULES-2370) allow `match` parameter to influence `ensure => absent` behavior
279 - (MODULES-2410) Add new functions dos2unix and unix2dos
280 - (MODULE-2456) Modify union to accept more than two arrays
281 - Adds a convert_base function, which can convert numbers between bases
282 - Add a new function "try_get_value"
283
284 #### Bugfixes
285 - n/a
286
287 #### Improvements
288 - (MODULES-2478) Support root_home fact on AIX through "lsuser" command
289 - Acceptance test improvements
290 - Unit test improvements
291 - Readme improvements
292
293 ## 2015-08-10 - Supported Release 4.8.0
294 ### Summary
295 This release adds a function for reading metadata.json from any module, and expands file\_line's abilities.
296
297 #### Features
298 - New parameter `replace` on `file_line`
299 - New function `load_module_metadata()` to load metadata.json and return the content as a hash.
300 - Added hash support to `size()`
301
302 #### Bugfixes
303 - Fix various docs typos
304 - Fix `file_line` resource on puppet < 3.3
305
306 ## 2015-06-22 - Supported Release 4.7.0
307 ### Summary
308
309 Adds Solaris 12 support along with improved Puppet 4 support. There are significant test improvements, and some minor fixes.
310
311 #### Features
312 - Add support for Solaris 12
313
314 #### Bugfixes
315 - Fix for AIO Puppet 4
316 - Fix time for ruby 1.8.7
317 - Specify rspec-puppet version
318 - range() fix for typeerror and missing functionality
319 - Fix pw_hash() on JRuby < 1.7.17
320 - fqdn_rand_string: fix argument error message
321 - catch and rescue from looking up non-existent facts
322 - Use puppet_install_helper, for Puppet 4
323
324 #### Improvements
325 - Enforce support for Puppet 4 testing
326 - fqdn_rotate/fqdn_rand_string acceptance tests and implementation
327 - Simplify mac address regex
328 - validate_integer, validate_numeric: explicitely reject hashes in arrays
329 - Readme edits
330 - Remove all the pops stuff for rspec-puppet
331 - Sync via modulesync
332 - Add validate_slength optional 3rd arg
333 - Move tests directory to examples directory
334
335 ## 2015-04-14 - Supported Release 4.6.0
336 ### Summary
337
338 Adds functions and function argument abilities, and improves compatibility with the new puppet parser
339
340 #### Features
341 - MODULES-444: `concat()` can now take more than two arrays
342 - `basename()` added to have Ruby File.basename functionality
343 - `delete()` can now take an array of items to remove
344 - `prefix()` can now take a hash
345 - `upcase()` can now take a hash or array of upcaseable things
346 - `validate_absolute_path()` can now take an array
347 - `validate_cmd()` can now use % in the command to embed the validation file argument in the string
348 - MODULES-1473: deprecate `type()` function in favor of `type3x()`
349 - MODULES-1473: Add `type_of()` to give better type information on future parser
350 - Deprecate `private()` for `assert_private()` due to future parser
351 - Adds `ceiling()` to take the ceiling of a number
352 - Adds `fqdn_rand_string()` to generate random string based on fqdn
353 - Adds `pw_hash()` to generate password hashes
354 - Adds `validate_integer()`
355 - Adds `validate_numeric()` (like `validate_integer()` but also accepts floats)
356
357 #### Bugfixes
358 - Fix seeding of `fqdn_rotate()`
359 - `ensure_resource()` is more verbose on debug mode
360 - Stricter argument checking for `dirname()`
361 - Fix `is_domain_name()` to better match RFC
362 - Fix `uriescape()` when called with array
363 - Fix `file_line` resource when using the `after` attribute with `match`
364
365 ## 2015-01-14 - Supported Release 4.5.1
366 ### Summary
367
368 This release changes the temporary facter_dot_d cache locations outside of the /tmp directory due to a possible security vunerability. CVE-2015-1029
369
370 #### Bugfixes
371 - Facter_dot_d cache will now be stored in puppet libdir instead of tmp
372
373 ## 2014-12-15 - Supported Release 4.5.0
374 ### Summary
375
376 This release improves functionality of the member function and adds improved future parser support.
377
378 #### Features
379 - MODULES-1329: Update member() to allow the variable to be an array.
380 - Sync .travis.yml, Gemfile, Rakefile, and CONTRIBUTING.md via modulesync
381
382 #### Bugfixes
383 - Fix range() to work with numeric ranges with the future parser
384 - Accurately express SLES support in metadata.json (was missing 10SP4 and 12)
385 - Don't require `line` to match the `match` parameter
386
387 ## 2014-11-10 - Supported Release 4.4.0
388 ### Summary
389 This release has an overhauled readme, new private manifest function, and fixes many future parser bugs.
390
391 #### Features
392 - All new shiny README
393 - New `private()` function for making private manifests (yay!)
394
395 #### Bugfixes
396 - Code reuse in `bool2num()` and `zip()`
397 - Fix many functions to handle `generate()` no longer returning a string on new puppets
398 - `concat()` no longer modifies the first argument (whoops)
399 - strict variable support for `getvar()`, `member()`, `values_at`, and `has_interface_with()`
400 - `to_bytes()` handles PB and EB now
401 - Fix `tempfile` ruby requirement for `validate_augeas()` and `validate_cmd()`
402 - Fix `validate_cmd()` for windows
403 - Correct `validate_string()` docs to reflect non-handling of `undef`
404 - Fix `file_line` matching on older rubies
405
406
407 ## 2014-07-15 - Supported Release 4.3.2
408 ### Summary
409
410 This release merely updates metadata.json so the module can be uninstalled and
411 upgraded via the puppet module command.
412
413 ## 2014-07-14 - Supported Release 4.3.1
414 ### Summary
415 This supported release updates the metadata.json to work around upgrade behavior of the PMT.
416
417 #### Bugfixes
418 - Synchronize metadata.json with PMT-generated metadata to pass checksums
419
420 ## 2014-06-27 - Supported Release 4.3.0
421 ### Summary
422 This release is the first supported release of the stdlib 4 series. It remains
423 backwards-compatible with the stdlib 3 series. It adds two new functions, one bugfix, and many testing updates.
424
425 #### Features
426 - New `bool2str()` function
427 - New `camelcase()` function
428
429 #### Bugfixes
430 - Fix `has_interface_with()` when interfaces fact is nil
431
432 ## 2014-06-04 - Release 4.2.2
433 ### Summary
434
435 This release adds PE3.3 support in the metadata and fixes a few tests.
436
437 ## 2014-05-08 - Release - 4.2.1
438 ### Summary
439 This release moves a stray symlink that can cause problems.
440
441 ## 2014-05-08 - Release - 4.2.0
442 ### Summary
443 This release adds many new functions and fixes, and continues to be backwards compatible with stdlib 3.x
444
445 #### Features
446 - New `base64()` function
447 - New `deep_merge()` function
448 - New `delete_undef_values()` function
449 - New `delete_values()` function
450 - New `difference()` function
451 - New `intersection()` function
452 - New `is_bool()` function
453 - New `pick_default()` function
454 - New `union()` function
455 - New `validate_ipv4_address` function
456 - New `validate_ipv6_address` function
457 - Update `ensure_packages()` to take an option hash as a second parameter.
458 - Update `range()` to take an optional third argument for range step
459 - Update `validate_slength()` to take an optional third argument for minimum length
460 - Update `file_line` resource to take `after` and `multiple` attributes
461
462 #### Bugfixes
463 - Correct `is_string`, `is_domain_name`, `is_array`, `is_float`, and `is_function_available` for parsing odd types such as bools and hashes.
464 - Allow facts.d facts to contain `=` in the value
465 - Fix `root_home` fact on darwin systems
466 - Fix `concat()` to work with a second non-array argument
467 - Fix `floor()` to work with integer strings
468 - Fix `is_integer()` to return true if passed integer strings
469 - Fix `is_numeric()` to return true if passed integer strings
470 - Fix `merge()` to work with empty strings
471 - Fix `pick()` to raise the correct error type
472 - Fix `uriescape()` to use the default URI.escape list
473 - Add/update unit & acceptance tests.
474
475
476 ## 2014-03-04 - Supported Release - 3.2.1
477 ### Summary
478 This is a supported release
479
480 #### Bugfixes
481 - Fixed `is_integer`/`is_float`/`is_numeric` for checking the value of arithmatic expressions.
482
483 #### Known bugs
484 * No known bugs
485
486 ---
487
488 ##### 2013-05-06 - Jeff McCune <jeff@puppetlabs.com> - 4.1.0
489
490  * (#20582) Restore facter\_dot\_d to stdlib for PE users (3b887c8)
491  * (maint) Update Gemfile with GEM\_FACTER\_VERSION (f44d535)
492
493 ##### 2013-05-06 - Alex Cline <acline@us.ibm.com> - 4.1.0
494
495  * Terser method of string to array conversion courtesy of ethooz. (d38bce0)
496
497 ##### 2013-05-06 - Alex Cline <acline@us.ibm.com> 4.1.0
498
499  * Refactor ensure\_resource expectations (b33cc24)
500
501 ##### 2013-05-06 - Alex Cline <acline@us.ibm.com> 4.1.0
502
503  * Changed str-to-array conversion and removed abbreviation. (de253db)
504
505 ##### 2013-05-03 - Alex Cline <acline@us.ibm.com> 4.1.0
506
507  * (#20548) Allow an array of resource titles to be passed into the ensure\_resource function (e08734a)
508
509 ##### 2013-05-02 - Raphaël Pinson <raphael.pinson@camptocamp.com> - 4.1.0
510
511  * Add a dirname function (2ba9e47)
512
513 ##### 2013-04-29 - Mark Smith-Guerrero <msmithgu@gmail.com> - 4.1.0
514
515  * (maint) Fix a small typo in hash() description (928036a)
516
517 ##### 2013-04-12 - Jeff McCune <jeff@puppetlabs.com> - 4.0.2
518
519  * Update user information in gemspec to make the intent of the Gem clear.
520
521 ##### 2013-04-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.1
522
523  * Fix README function documentation (ab3e30c)
524
525 ##### 2013-04-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
526
527  * stdlib 4.0 drops support with Puppet 2.7
528  * stdlib 4.0 preserves support with Puppet 3
529
530 ##### 2013-04-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
531
532  * Add ability to use puppet from git via bundler (9c5805f)
533
534 ##### 2013-04-10 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
535
536  * (maint) Make stdlib usable as a Ruby GEM (e81a45e)
537
538 ##### 2013-04-10 - Erik Dalén <dalen@spotify.com> - 4.0.0
539
540  * Add a count function (f28550e)
541
542 ##### 2013-03-31 - Amos Shapira <ashapira@atlassian.com> - 4.0.0
543
544  * (#19998) Implement any2array (7a2fb80)
545
546 ##### 2013-03-29 - Steve Huff <shuff@vecna.org> - 4.0.0
547
548  * (19864) num2bool match fix (8d217f0)
549
550 ##### 2013-03-20 - Erik Dalén <dalen@spotify.com> - 4.0.0
551
552  * Allow comparisons of Numeric and number as String (ff5dd5d)
553
554 ##### 2013-03-26 - Richard Soderberg <rsoderberg@mozilla.com> - 4.0.0
555
556  * add suffix function to accompany the prefix function (88a93ac)
557
558 ##### 2013-03-19 - Kristof Willaert <kristof.willaert@gmail.com> - 4.0.0
559
560  * Add floor function implementation and unit tests (0527341)
561
562 ##### 2012-04-03 - Eric Shamow <eric@puppetlabs.com> - 4.0.0
563
564  * (#13610) Add is\_function\_available to stdlib (961dcab)
565
566 ##### 2012-12-17 - Justin Lambert <jlambert@eml.cc> - 4.0.0
567
568  * str2bool should return a boolean if called with a boolean (5d5a4d4)
569
570 ##### 2012-10-23 - Uwe Stuehler <ustuehler@team.mobile.de> - 4.0.0
571
572  * Fix number of arguments check in flatten() (e80207b)
573
574 ##### 2013-03-11 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
575
576  * Add contributing document (96e19d0)
577
578 ##### 2013-03-04 - Raphaël Pinson <raphael.pinson@camptocamp.com> - 4.0.0
579
580  * Add missing documentation for validate\_augeas and validate\_cmd to README.markdown (a1510a1)
581
582 ##### 2013-02-14 - Joshua Hoblitt <jhoblitt@cpan.org> - 4.0.0
583
584  * (#19272) Add has\_element() function (95cf3fe)
585
586 ##### 2013-02-07 - Raphaël Pinson <raphael.pinson@camptocamp.com> - 4.0.0
587
588  * validate\_cmd(): Use Puppet::Util::Execution.execute when available (69248df)
589
590 ##### 2012-12-06 - Raphaël Pinson <raphink@gmail.com> - 4.0.0
591
592  * Add validate\_augeas function (3a97c23)
593
594 ##### 2012-12-06 - Raphaël Pinson <raphink@gmail.com> - 4.0.0
595
596  * Add validate\_cmd function (6902cc5)
597
598 ##### 2013-01-14 - David Schmitt <david@dasz.at> - 4.0.0
599
600  * Add geppetto project definition (b3fc0a3)
601
602 ##### 2013-01-02 - Jaka Hudoklin <jakahudoklin@gmail.com> - 4.0.0
603
604  * Add getparam function to get defined resource parameters (20e0e07)
605
606 ##### 2013-01-05 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
607
608  * (maint) Add Travis CI Support (d082046)
609
610 ##### 2012-12-04 - Jeff McCune <jeff@puppetlabs.com> - 4.0.0
611
612  * Clarify that stdlib 3 supports Puppet 3 (3a6085f)
613
614 ##### 2012-11-30 - Erik Dalén <dalen@spotify.com> - 4.0.0
615
616  * maint: style guideline fixes (7742e5f)
617
618 ##### 2012-11-09 - James Fryman <james@frymanet.com> - 4.0.0
619
620  * puppet-lint cleanup (88acc52)
621
622 ##### 2012-11-06 - Joe Julian <me@joejulian.name> - 4.0.0
623
624  * Add function, uriescape, to URI.escape strings. Redmine #17459 (fd52b8d)
625
626 ##### 2012-09-18 - Chad Metcalf <chad@wibidata.com> - 3.2.0
627
628  * Add an ensure\_packages function. (8a8c09e)
629
630 ##### 2012-11-23 - Erik Dalén <dalen@spotify.com> - 3.2.0
631
632  * (#17797) min() and max() functions (9954133)
633
634 ##### 2012-05-23 - Peter Meier <peter.meier@immerda.ch> - 3.2.0
635
636  * (#14670) autorequire a file\_line resource's path (dfcee63)
637
638 ##### 2012-11-19 - Joshua Harlan Lifton <lifton@puppetlabs.com> - 3.2.0
639
640  * Add join\_keys\_to\_values function (ee0f2b3)
641
642 ##### 2012-11-17 - Joshua Harlan Lifton <lifton@puppetlabs.com> - 3.2.0
643
644  * Extend delete function for strings and hashes (7322e4d)
645
646 ##### 2012-08-03 - Gary Larizza <gary@puppetlabs.com> - 3.2.0
647
648  * Add the pick() function (ba6dd13)
649
650 ##### 2012-03-20 - Wil Cooley <wcooley@pdx.edu> - 3.2.0
651
652  * (#13974) Add predicate functions for interface facts (f819417)
653
654 ##### 2012-11-06 - Joe Julian <me@joejulian.name> - 3.2.0
655
656  * Add function, uriescape, to URI.escape strings. Redmine #17459 (70f4a0e)
657
658 ##### 2012-10-25 - Jeff McCune <jeff@puppetlabs.com> - 3.1.1
659
660  * (maint) Fix spec failures resulting from Facter API changes (97f836f)
661
662 ##### 2012-10-23 - Matthaus Owens <matthaus@puppetlabs.com> - 3.1.0
663
664  * Add PE facts to stdlib (cdf3b05)
665
666 ##### 2012-08-16 - Jeff McCune <jeff@puppetlabs.com> - 3.0.1
667
668  * Fix accidental removal of facts\_dot\_d.rb in 3.0.0 release
669
670 ##### 2012-08-16 - Jeff McCune <jeff@puppetlabs.com> - 3.0.0
671
672  * stdlib 3.0 drops support with Puppet 2.6
673  * stdlib 3.0 preserves support with Puppet 2.7
674
675 ##### 2012-08-07 - Dan Bode <dan@puppetlabs.com> - 3.0.0
676
677  * Add function ensure\_resource and defined\_with\_params (ba789de)
678
679 ##### 2012-07-10 - Hailee Kenney <hailee@puppetlabs.com> - 3.0.0
680
681  * (#2157) Remove facter\_dot\_d for compatibility with external facts (f92574f)
682
683 ##### 2012-04-10 - Chris Price <chris@puppetlabs.com> - 3.0.0
684
685  * (#13693) moving logic from local spec\_helper to puppetlabs\_spec\_helper (85f96df)
686
687 ##### 2012-10-25 - Jeff McCune <jeff@puppetlabs.com> - 2.5.1
688
689  * (maint) Fix spec failures resulting from Facter API changes (97f836f)
690
691 ##### 2012-10-23 - Matthaus Owens <matthaus@puppetlabs.com> - 2.5.0
692
693  * Add PE facts to stdlib (cdf3b05)
694
695 ##### 2012-08-15 - Dan Bode <dan@puppetlabs.com> - 2.5.0
696
697  * Explicitly load functions used by ensure\_resource (9fc3063)
698
699 ##### 2012-08-13 - Dan Bode <dan@puppetlabs.com> - 2.5.0
700
701  * Add better docs about duplicate resource failures (97d327a)
702
703 ##### 2012-08-13 - Dan Bode <dan@puppetlabs.com> - 2.5.0
704
705  * Handle undef for parameter argument (4f8b133)
706
707 ##### 2012-08-07 - Dan Bode <dan@puppetlabs.com> - 2.5.0
708
709  * Add function ensure\_resource and defined\_with\_params (a0cb8cd)
710
711 ##### 2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
712
713  * Disable tests that fail on 2.6.x due to #15912 (c81496e)
714
715 ##### 2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
716
717  * (Maint) Fix mis-use of rvalue functions as statements (4492913)
718
719 ##### 2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
720
721  * Add .rspec file to repo root (88789e8)
722
723 ##### 2012-06-07 - Chris Price <chris@puppetlabs.com> - 2.4.0
724
725  * Add support for a 'match' parameter to file\_line (a06c0d8)
726
727 ##### 2012-08-07 - Erik Dalén <dalen@spotify.com> - 2.4.0
728
729  * (#15872) Add to\_bytes function (247b69c)
730
731 ##### 2012-07-19 - Jeff McCune <jeff@puppetlabs.com> - 2.4.0
732
733  * (Maint) use PuppetlabsSpec::PuppetInternals.scope (master) (deafe88)
734
735 ##### 2012-07-10 - Hailee Kenney <hailee@puppetlabs.com> - 2.4.0
736
737  * (#2157) Make facts\_dot\_d compatible with external facts (5fb0ddc)
738
739 ##### 2012-03-16 - Steve Traylen <steve.traylen@cern.ch> - 2.4.0
740
741  * (#13205) Rotate array/string randomley based on fqdn, fqdn\_rotate() (fef247b)
742
743 ##### 2012-05-22 - Peter Meier <peter.meier@immerda.ch> - 2.3.3
744
745  * fix regression in #11017 properly (f0a62c7)
746
747 ##### 2012-05-10 - Jeff McCune <jeff@puppetlabs.com> - 2.3.3
748
749  * Fix spec tests using the new spec\_helper (7d34333)
750
751 ##### 2012-05-10 - Puppet Labs <support@puppetlabs.com> - 2.3.2
752
753  * Make file\_line default to ensure => present (1373e70)
754  * Memoize file\_line spec instance variables (20aacc5)
755  * Fix spec tests using the new spec\_helper (1ebfa5d)
756  * (#13595) initialize\_everything\_for\_tests couples modules Puppet ver (3222f35)
757  * (#13439) Fix MRI 1.9 issue with spec\_helper (15c5fd1)
758  * (#13439) Fix test failures with Puppet 2.6.x (665610b)
759  * (#13439) refactor spec helper for compatibility with both puppet 2.7 and master (82194ca)
760  * (#13494) Specify the behavior of zero padded strings (61891bb)
761
762 ##### 2012-03-29 Puppet Labs <support@puppetlabs.com> - 2.1.3
763
764 * (#11607) Add Rakefile to enable spec testing
765 * (#12377) Avoid infinite loop when retrying require json
766
767 ##### 2012-03-13 Puppet Labs <support@puppetlabs.com> - 2.3.1
768
769 * (#13091) Fix LoadError bug with puppet apply and puppet\_vardir fact
770
771 ##### 2012-03-12 Puppet Labs <support@puppetlabs.com> - 2.3.0
772
773 * Add a large number of new Puppet functions
774 * Backwards compatibility preserved with 2.2.x
775
776 ##### 2011-12-30 Puppet Labs <support@puppetlabs.com> - 2.2.1
777
778 * Documentation only release for the Forge
779
780 ##### 2011-12-30 Puppet Labs <support@puppetlabs.com> - 2.1.2
781
782 * Documentation only release for PE 2.0.x
783
784 ##### 2011-11-08 Puppet Labs <support@puppetlabs.com> - 2.2.0
785
786 * #10285 - Refactor json to use pson instead.
787 * Maint  - Add watchr autotest script
788 * Maint  - Make rspec tests work with Puppet 2.6.4
789 * #9859  - Add root\_home fact and tests
790
791 ##### 2011-08-18 Puppet Labs <support@puppetlabs.com> - 2.1.1
792
793 * Change facts.d paths to match Facter 2.0 paths.
794 * /etc/facter/facts.d
795 * /etc/puppetlabs/facter/facts.d
796
797 ##### 2011-08-17 Puppet Labs <support@puppetlabs.com> - 2.1.0
798
799 * Add R.I. Pienaar's facts.d custom facter fact
800 * facts defined in /etc/facts.d and /etc/puppetlabs/facts.d are
801   automatically loaded now.
802
803 ##### 2011-08-04 Puppet Labs <support@puppetlabs.com> - 2.0.0
804
805 * Rename whole\_line to file\_line
806 * This is an API change and as such motivating a 2.0.0 release according to semver.org.
807
808 ##### 2011-08-04 Puppet Labs <support@puppetlabs.com> - 1.1.0
809
810 * Rename append\_line to whole\_line
811 * This is an API change and as such motivating a 1.1.0 release.
812
813 ##### 2011-08-04 Puppet Labs <support@puppetlabs.com> - 1.0.0
814
815 * Initial stable release
816 * Add validate\_array and validate\_string functions
817 * Make merge() function work with Ruby 1.8.5
818 * Add hash merging function
819 * Add has\_key function
820 * Add loadyaml() function
821 * Add append\_line native
822
823 ##### 2011-06-21 Jeff McCune <jeff@puppetlabs.com> - 0.1.7
824
825 * Add validate\_hash() and getvar() functions
826
827 ##### 2011-06-15 Jeff McCune <jeff@puppetlabs.com> - 0.1.6
828
829 * Add anchor resource type to provide containment for composite classes
830
831 ##### 2011-06-03 Jeff McCune <jeff@puppetlabs.com> - 0.1.5
832
833 * Add validate\_bool() function to stdlib
834
835 ##### 0.1.4 2011-05-26 Jeff McCune <jeff@puppetlabs.com>
836
837 * Move most stages after main
838
839 ##### 0.1.3 2011-05-25 Jeff McCune <jeff@puppetlabs.com>
840
841 * Add validate\_re() function
842
843 ##### 0.1.2 2011-05-24 Jeff McCune <jeff@puppetlabs.com>
844
845 * Update to add annotated tag
846
847 ##### 0.1.1 2011-05-24 Jeff McCune <jeff@puppetlabs.com>
848
849 * Add stdlib::stages class with a standard set of stages