Skip to content

Commit ed97cd9

Browse files
authored
Merge pull request #690 from jbondpdx/master
MODULES-4008: clarify deprecation language
2 parents d64c9cd + 4f61f3c commit ed97cd9

File tree

1 file changed

+55
-7
lines changed

1 file changed

+55
-7
lines changed

README.markdown

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -712,46 +712,68 @@ See the [`assert_type()`](https://docs.puppetlabs.com/references/latest/function
712712

713713
#### `is_absolute_path`
714714

715+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
716+
715717
Returns 'true' if the given path is absolute. *Type*: rvalue.
716718

717719
#### `is_array`
718720

721+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
722+
719723
Returns 'true' if the variable passed to this function is an array. *Type*: rvalue.
720724

721725
#### `is_bool`
722726

727+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
728+
723729
Returns 'true' if the variable passed to this function is a boolean. *Type*: rvalue.
724730

725731
#### `is_domain_name`
726732

733+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
734+
727735
Returns 'true' if the string passed to this function is a syntactically correct domain name. *Type*: rvalue.
728736

729737
#### `is_float`
730738

739+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
740+
731741
Returns 'true' if the variable passed to this function is a float. *Type*: rvalue.
732742

733743
#### `is_function_available`
734744

745+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
746+
735747
Accepts a string as an argument and determines whether the Puppet runtime has access to a function by that name. It returns 'true' if the function exists, 'false' if not. *Type*: rvalue.
736748

737749
#### `is_hash`
738750

751+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
752+
739753
Returns 'true' if the variable passed to this function is a hash. *Type*: rvalue.
740754

741755
#### `is_integer`
742756

757+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
758+
743759
Returns 'true' if the variable returned to this string is an integer. *Type*: rvalue.
744760

745761
#### `is_ip_address`
746762

763+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
764+
747765
Returns 'true' if the string passed to this function is a valid IP address. *Type*: rvalue.
748766

749767
#### `is_ipv6_address`
750768

769+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
770+
751771
Returns 'true' if the string passed to this function is a valid IPv6 address. *Type*: rvalue.
752772

753773
#### `is_ipv4_address`
754774

775+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
776+
755777
Returns 'true' if the string passed to this function is a valid IPv4 address. *Type*: rvalue.
756778

757779
#### `is_mac_address`
@@ -760,10 +782,14 @@ Returns 'true' if the string passed to this function is a valid MAC address. *Ty
760782

761783
#### `is_numeric`
762784

785+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
786+
763787
Returns 'true' if the variable passed to this function is a number. *Type*: rvalue.
764788

765789
#### `is_string`
766790

791+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
792+
767793
Returns 'true' if the variable passed to this function is a string. *Type*: rvalue.
768794

769795
#### `join`
@@ -1228,6 +1254,8 @@ validate_absolute_path($undefined)
12281254

12291255
#### `validate_array`
12301256

1257+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1258+
12311259
Validates that all passed values are array data structures. Aborts catalog compilation if any value fails this check.
12321260

12331261
The following values pass:
@@ -1276,6 +1304,8 @@ validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers
12761304

12771305
#### `validate_bool`
12781306

1307+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1308+
12791309
Validates that all passed values are either true or false. Aborts catalog compilation if any value fails this check.
12801310

12811311
The following values will pass:
@@ -1316,6 +1346,8 @@ validate_cmd($haproxycontent, '/usr/sbin/haproxy -f % -c', 'Haproxy failed to va
13161346

13171347
#### `validate_hash`
13181348

1349+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1350+
13191351
Validates that all passed values are hash data structures. Aborts catalog compilation if any value fails this check.
13201352

13211353
The following values will pass:
@@ -1338,6 +1370,8 @@ Validates that all passed values are hash data structures. Aborts catalog compil
13381370

13391371
#### `validate_integer`
13401372

1373+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1374+
13411375
Validates that the first argument is an integer (or an array of integers). Aborts catalog compilation if any of the checks fail.
13421376

13431377
The second argument is optional and passes a maximum. (All elements of) the first argument has to be less or equal to this max.
@@ -1396,6 +1430,8 @@ Validates that the first argument is an integer (or an array of integers). Abort
13961430

13971431
#### `validate_ip_address`
13981432

1433+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1434+
13991435
Validates that the argument is an IP address, regardless of it is an IPv4 or an IPv6
14001436
address. It also validates IP address with netmask. The argument must be given as a string.
14011437

@@ -1444,24 +1480,28 @@ validate_legacy("Optional[String]", "validate_re", "Value to be validated", ["."
14441480

14451481
This function supports updating modules from Puppet 3 style argument validation (using the stdlib `validate_*` functions) to Puppet 4 data types, without breaking functionality for those depending on Puppet 3 style validation.
14461482

1447-
> Note: This function relies on internal APIs from Puppet 4.4.0 (PE 2016.1) onwards, and doesn't work on earlier versions.
1483+
> Note: This function is compatible only with Puppet 4.4.0 (PE 2016.1) and later.
14481484
14491485
##### For module users
14501486

1451-
If you are running Puppet 4 and receiving deprecation warnings about `validate_*` functions, the `validate_legacy` function can help you find and resolve the deprecated code.
1487+
If you are running Puppet 4, the `validate_legacy` function can help you find and resolve deprecated Puppet 3 `validate_*` functions. These functions are deprecated as of stdlib version 4.13 and will be removed in a future version of stdlib.
14521488

1453-
In Puppet 3, the `validate_*` functions were the only way to easily check the types of class and defined type arguments. Some of the functions provided additional helpers like [validate_numeric](#validate_numeric), which unintentionally allowed not only numbers, but also arrays of numbers. Puppet 4 allows much better defined type checking using [data types](https://docs.puppet.com/puppet/latest/reference/lang_data.html), without such unintentional effects. The `validate_legacy` function makes these differences visible and makes it easier to move to the clearer Puppet 4 syntax.
1489+
Puppet 4 allows improved defined type checking using [data types](https://docs.puppet.com/puppet/latest/reference/lang_data.html). Data types avoid some of the problems with Puppet 3's `validate_*` functions, which could sometimes be inconsistent. For example, [validate_numeric](#validate_numeric) unintentionally allowed not only numbers, but also arrays of numbers or strings that looked like numbers.
14541490

1455-
Depending on the current state of development of the modules you use and the data you feed those modules, you'll encounter different messages:
1491+
If you run Puppet 4 and use modules with deprecated `validate_*` functions, you might encounter deprecation messages. The `validate_legacy` function makes these differences visible and makes it easier to move to the clearer Puppet 4 syntax.
1492+
1493+
The deprecation messages you get can vary, depending on the modules and data that you use. These deprecation messages appear by default only in Puppet 4:
14561494

14571495
* `Notice: Accepting previously invalid value for target type '<type>'`: This message is informational only. You're using values that are allowed by the new type, but would have been invalid by the old validation function.
14581496
* `Warning: This method is deprecated, please use the stdlib validate_legacy function`: The module has not yet upgraded to `validate_legacy`. Use the [deprecation](#deprecation) options to silence warnings for now, or submit a fix with the module's developer. See the information [for module developers](#for-module-developers) below for how to fix the issue.
1459-
* `Warning: validate_legacy(<function>) expected <type> value, got <actual type>_`: Your code passes a value that was accepted by the Puppet 3 style validation, but will not be accepted by the next version of the module. Most often, you can fix this by removing quotes from numbers or booleans.
1497+
* `Warning: validate_legacy(<function>) expected <type> value, got <actual type>_`: Your code passes a value that was accepted by the Puppet 3-style validation, but will not be accepted by the next version of the module. Most often, you can fix this by removing quotes from numbers or booleans.
14601498
* `Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, validate_legacy(<function>) expected <type> value, got <actual type>`: Your code passes a value that is not acceptable to either the new or the old style validation.
14611499

14621500
##### For module developers
14631501

1464-
Many `validate_*` functions have surprising holes in their validation. For example, [validate_numeric](#validate_numeric) allows not only numbers, but also arrays of numbers or strings that look like numbers, without giving you any control over the specifics. In contrast, Puppet 4 [data types](https://docs.puppet.com/puppet/latest/reference/lang_data.html) allows you to choose between `Numeric`, `Array[Numeric]`, or `Optional[Numeric]`. The `validate_legacy` function helps you move from Puppet 3 style validation to Puppet 4 validation without breaking functionality your module's users depend on.
1502+
The `validate_legacy` function helps you move from Puppet 3 style validation to Puppet 4 validation without breaking functionality your module's users depend on.
1503+
1504+
Moving to Puppet 4 type validation allows much better defined type checking using [data types](https://docs.puppet.com/puppet/latest/reference/lang_data.html). Many of Puppet 3's `validate_*` functions have surprising holes in their validation. For example, [validate_numeric](#validate_numeric) allows not only numbers, but also arrays of numbers or strings that look like numbers, without giving you any control over the specifics.
14651505

14661506
For each parameter of your classes and defined types, choose a new Puppet 4 data type to use. In most cases, the new data type allows a different set of values than the original `validate_*` function. The situation then looks like this:
14671507

@@ -1504,6 +1544,8 @@ Always note such changes in your CHANGELOG and README.
15041544

15051545
#### `validate_numeric`
15061546

1547+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1548+
15071549
Validates that the first argument is a numeric value (or an array or string of numeric values). Aborts catalog compilation if any of the checks fail.
15081550

15091551
The second argument is optional and passes a maximum. (All elements of) the first argument has to be less or equal to this max.
@@ -1520,6 +1562,8 @@ Validates that the first argument is a numeric value (or an array or string of n
15201562

15211563
#### `validate_re`
15221564

1565+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1566+
15231567
Performs simple validation of a string against one or more regular expressions. The first argument of this function should be the string to
15241568
test, and the second argument should be a stringified regular expression (without the // delimiters) or an array of regular expressions. If none of the regular expressions match the string passed in, compilation aborts with a parse error.
15251569

@@ -1554,6 +1598,8 @@ test, and the second argument should be a stringified regular expression (withou
15541598

15551599
#### `validate_slength`
15561600

1601+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1602+
15571603
Validates that the first argument is a string (or an array of strings), and is less than or equal to the length of the second argument. It fails if the first argument is not a string or array of strings, or if the second argument is not convertable to a number. Optionally, a minimum string length can be given as the third argument.
15581604

15591605
The following values pass:
@@ -1576,6 +1622,8 @@ Validates that the first argument is a string (or an array of strings), and is l
15761622

15771623
#### `validate_string`
15781624

1625+
**Deprecated. Will be removed in a future version of stdlib. See [`validate_legacy`](#validatelegacy).**
1626+
15791627
Validates that all passed values are string data structures. Aborts catalog compilation if any value fails this check.
15801628

15811629
The following values pass:
@@ -1646,7 +1694,7 @@ Takes one element from first array given and merges corresponding elements from
16461694

16471695
As of Puppet Enterprise 3.7, the stdlib module is no longer included in PE. PE users should install the most recent release of stdlib for compatibility with Puppet modules.
16481696

1649-
###Version Compatibility
1697+
### Version Compatibility
16501698

16511699
Versions | Puppet 2.6 | Puppet 2.7 | Puppet 3.x | Puppet 4.x |
16521700
:---------------|:-----:|:---:|:---:|:----:

0 commit comments

Comments
 (0)