<commit_before>homepage: http://lpuppet.banquise.net/
changelog-type: markdown
hash: ee5c0b05be6d32ae00744eb0fe2cef976febfce683b429c383f336fdc390ce42
test-bench-deps:
  ansi-wl-pprint: -any
  unix: -any
  base: -any
  strict-base-types: -any
  unordered-containers: -any
  hspec: -any
  text: -any
  megaparsec: -any
  HUnit: -any
  lens: -any
  hslogger: -any
  mtl: -any
  hspec-megaparsec: -any
  transformers: -any
  language-puppet: -any
  temporary: -any
  scientific: -any
  Glob: -any
  vector: -any
maintainer: <EMAIL>
synopsis: Tools to parse and evaluate the Puppet DSL.
changelog: ! "# v1.3.11 (2017/10/07)\n\n* Added yera command\n* Minor fixes to the
  validate_integer function, and to the mount resource\n* Support for the \"lookup\"
  command in hiera files\n* Fix Glob compilation problem\n\n# v1.3.10 (2017/08/28)\n\n*
  Add `sort` stdlib function\n* Remove `SafeProcess` module (fix `ghc-8.2` compilation)\n*
  Remove `ghc-7.x` support\n\n# v1.3.9 (2017/07/30)\n\n* Moved to megaparsec 6\n\n#
  v1.3.8.1 (2017/07/21)\n\n* Fix haddocks error (#208)\n\n# v1.3.8 (2017/07/20)\n\n*
  Add support for calling Functions in Strings (#199)\n* Add $facts hash for Puppet
  4 (#198)\n* Initial support for datatype syntax (#206)\n\n# v1.3.7 (2017/03/14)\n\n*
  Add puppet `sprintf` function\n* Fix scientific2text (#196)\n\n# v1.3.6 (2017/02/27)\n\n*
  The `defined` function can now test variables\n* Fixed the `delete_at` function,
  added new tests, TBC\n* Fixed the `ensure_resource` function, so that its second
  argument can take an array.\n\n# v1.3.5.1 (2017/02/02)\n\n* Version bumps for megaparsec
  & servant\n\n# v1.3.5 (2017/01/31)\n\n* Ignored packages are not parsed anymore\n\n#
  v1.3.4.1 (2017/01/12)\n\n* Version bump for the directory dependency\n\n# v1.3.4
  (2016/12/14)\n\n* Adds implicit dependencies for some types where users and groups
  are defined\n\n# v1.3.3 (2016/12/05)\n\n* Rename some pdbquery subcommands\n* Output
  pdbquery in `json` instead of `yaml`\n* Fix `pdbquery resources NODENAME`\n* Add
  `pdbquery fact NODENAME`\n\n# v1.3.2.1 (2016/10/04)\n\n* Support for megaparsec
  5.1\n\n# v1.3.2 (2016/09/21)\n\n* Add stdlib `validate_integer`\n* Support for servant
  0.9\n\n# v1.3.1 (2016/08/31)\n\n* Add `--version` to puppetresources and pdbquery\n*
  Version bump for some dependencies\n\n# v1.3 (2016/07/11)\n\nThis release is about
  dependencies versions upgrades.\n\n## Removed features\n* External Lua plugins are
  not a thing anymore\n\n#v1.2 (2016/05/31)\n\n## New features\n* `validate_numeric`
  function\n* Preliminary implementation of variable captures in regexp matches\n*
  Ready for GHC 8 and corresponding stackage nightly\n\n## Bugs fixed\n* Fixed a deadlock
  when template code called the `template` or `inline_template` functions. It just
  stops now :(\n\n# v1.1.5.1 (2016/03/14)\n\n## New features\n* `assert_private` function\n*
  `join_keys_to_values` function\n\n## Bugs Fixed\n* Several resource collector misbehaviour\n*
  Case expressions can now have multiple matchers of any kind as the same selector\n\n#
  v1.1.5 (2016/02/02)\n\n## New features\n\n* Added the `pick_default` function\n*
  `merge` now works with an arbitrary number of hashes\n* Added the `hash` function\n*
  puppet native type `file` resource accept selinux parameters\n* Added the `shellquote`
  function\n\n## Bugs fixed\n\n* `create_resources` can now create virtual and exported
  resources\n* puppet native type `file` fix for parameters `sourceselect` and `recurselimit`\n*
  Hiera array merge now only keeps unique values\n* `merge` now properly priorizes
  the lastest arguments\n\n# v1.1.4.1 (2015/11/15)\n\n## New features\n* Support for
  the new puppet `contain` function\n\n## Bugs fixed\n* Fix parser for search expression
  (see #132)\n* Fix logger set up (see #136)\n* Fix some regsubst (see #119)\n* Fix
  the `template` and `inline_template` functions (see #142)\n* Support lookups for
  expressions used in selector (TODO: arbitrary expression)\n* Fix a ruby 1.8 syntax
  error\n* Fix a case where resource overrides were not applied to the correct resource\n*
  Fix a bug where a class value would be incorrectly inferred as having a default
  value whereas it doesn't\n\n## Changes\n* Replace `parsec` `megaparsec` (see #138)\n*
  All resource names are normalized. The leading `::` is ignored (see #140)\n* Add
  CI using travis\n* Drop support for ghc < 7.10 explicitly\n\n# v1.1.4 (2015/09/07)\n\n##
  New features\n* The `regsubst` function now works with arrays.\n* The `file` variable
  is resolved in templates.\n* Support for `function_x` calls in templates.\n\n##
  Bugs fixed\n* Expressions such as (-1) are now supported.\n* Selectors recognize
  the undef token now.\n* Fixed a bug with parsing lines starting with `::`.\n* Sanitize
  resource names in some missing instances to fix bugs\n  when they were starting
  with `::`.\n\n# v1.1.3 (2015/05/31)\n\n## New features\n* Support for the `$settings`
  variables.\n* Support for the `to_yaml` function in templates.\n* Settings can now
  be altered in the default YAML file.\n* Defaults and overriden facts are now controlled
  in the YAML file too.\n\n# v1.1.1.2 (2015/04/28)\n\nVarious packaging changes.\n\n#
  v1.1.1 (2015/04/20)\n\n## New features\n* Add 'notify' native type\n* Ability to
  provide defaults via a yaml file for some options\n* Added the 'ensure_packages'
  and 'ensure_resources' functions\n\n## Bugs fixed\n* Enable 'package' native type
  (issue #102)\n* Builds against GHC 7.10\n\n## Changes\n* Even in Permissive mode,
  don't resolve unknown variable (see #103)\n* Add priority to the logger permissive
  output (see #106)\n* New hruby version\n* Rename option `--ignoremodules` into `--ignoredmodules`\n\n##
  Various\n* Hiera config interpolation logs decrease from NOTICE to INFO\n\n# v1.1.0
  (2015/03/11)\n\nCritical bugs have been fixed, upgrade recommended.\n\n## New features\n*
  New `dumpinfos` debug function.\n* The interpreter can now run in a strict or permissive
  mode.\n* The new `-a` option accepts a comma separated list of nodes for gathering
  stats.\n* The new `--noextratests` option disable optional tests from `Puppet.OptionalTests`.\n*
  Implementation of `member()` from stdlib (see issue #100 for details)\n\n## Bugs
  fixed\n* Exported/virtual custom types are not expanded. This is a huge bug.\n*
  Class/define parameters that are explicitely set as undefined are now overriden
  by\n  default values.\n* Empty resource groups are now rejected.\n* An existing
  resource can now be realized.\n\n## Various\n* Hiera config interpolation logs decrease
  from WARN to NOTICE\n* Remove option `--nousergrouptest`\n* Ease the use of the
  puppetresources command options. See the README file for changes.\n\n\n# v1.0.1
  (2014/11/13)\n## New features\n* Support for the `join` function.\n* Support for
  filtering json puppetresources output (fix issue #64)\n* Support for `cmpversion`
  in the templates.\n* The various chaining modes have been implemented.\n* Support
  for the `is_bool` function (<NAME>)\n* Support for `concat` and `concat::fragment`
  (<NAME>)\n\n## Bugs fixed\n* Fix array value extrapolation in string
  (issue #35)\n* ${var} without quotes will now be rejected by the parser (issue #78)\n\n##
  Various\n* `README` moved to asciidoc (<NAME>)\n\n# v1.0.0 (2014/08/31)\n##
  IMPORTANT\nBuilding without hruby is now unsupported.\n## New features\n* Support
  for Debian distribution detection in facter.\n* Support for the \"~>\" operator.\n*
  Support for mixed-case resource references.\n* Added the `grep` function.\n## Bugs
  fixed\n* Better support for --ignoremodules.\n* Fixed parsing of standalone `$`
  characters in strings.\n\n# v0.14.0 (2014/06/12)\n## New features\n* Overhauled
  the dependency check system\n* Added an option to skip the user and group checks\n*
  Added an option to ignore some modules\n## Bugs fixed\n* Added `vagrant`, `nagios`,
  `www-data`, `postgres` and `nginx` to the list of known users.\n* Fixed how resource
  relationships were resolved with notify and before.\n* Fixed a problem where inheritance
  whould be used with `::` prefix.\n* The `defined` function now works with classes.\n*
  All numbers are now strings in templates.\n\n# v0.13.0 (2014/05/21)\n## New features\n*
  Hacky support for `scope.get_hash`.\n* New stuff from the new parser (adding hashes,
  arrays, etc.).\n* Wrote a pure evaluation function, for unit tests and prisms.\n*
  `Num` and `Fractional` instances for `Expression`.\n* Numbers are now internally
  stored as numbers, just like the new parser does.\n* Add support for \"structured
  facts\".\n* New stdlib functions: `is_hash`, `has_key`, `size`, `values`.\n## Bugs
  fixed\n* Puppetresources does not fail tests for file sources starting with `file://`.\n*
  Escaped characters were not properly handled in the parser.\n* Properly catch division
  by 0 (!!!!).\n* Got rid of the orphan instances ... code is now a lot uglier.\n*
  Fixed settings of \"title\" and \"name\" in classes. The original puppet version\n
  \ only seems to do this when we declare in define style :(\n* Fixed associativity
  priority between `=~` and `and`.\n\n# v0.12.3 (2014/03/13)\n## New featues\n* puppetresources
  now tests that groups and users are defined before being used\n in file, user, cron
  and exec.\n\n# v0.12.2 (2014/02/18)\n## New featues\n* Facts are now dumped in `TestDB`
  format by `pdbquery`.\n* The `puppetresources` command now has switch controlling
  the PuppetDB commit and \"catalog update\".\n\n# v0.12.1 (2014/02/10)\n## New featues\n*
  *Dead code* finder in puppetresources.\n* CPU related facts.\n* `puppetresources`
  now exits with the proper error code.\n* `puppetresources` can now display some
  statistics about compilation times.\n* Bumped the version of the http-conduit dependency.\n##
  Bugs fixed\n* Fixed dependencies so that builds with GHC 7.8-rc1 work.\n\n# v0.12.0
  (2014/02/07)\n## New featues\n* Builds against GHC 7.8-rc1.\n\n# v0.11.1 (2014/01/31)\n##
  Bugs fixed\n* Fixed build issues with strict-base-types version.\n\n# v0.11.0 (2014/01/30)\n##
  New features\n* Removal of the dedicated parsing threads.\n* Better default RTS
  options (for now, just the default allocation size)\n* Upgraded dependencies : aeson
  0.7, attoparsec 0.11, lens 4, parsers\n\t  0.10, text 1.1, filecache 0.3, hruby
  0.2\n\n# v0.10.6 (2014/01/25)\n## New features\n* New all nodes testing for puppetresources.\n*
  Added some uname related facts.\n* Added some lenses and prisms.\n## Bugs fixed\n*
  Parsing function calls without parens at the expression level is not\n\tallowed
  now.\n* Allow parsing of boolean facts from YAML files.\n* Allow resource references
  with array variables.\n* Fix spurious multiple includes error.\n* Fixed the implementation
  of some puppet functions.\n\n# v0.10.5 (2014/01/06)\n## Bugs fixed\n* Lambda blocks
  can now end with a bare function call\n* Fix version bounds with hslua and luautils\n\n#
  v0.10.4 (2013/12/18)\n## New features\n* Moved to the latest hruby version.\n* Updated
  the text bound\n\n# v0.10.3 (2013/12/03)\n## New features\n* The scope tracking
  system has been improved. It is now possible to know\n\tthe original host of an
  imported resource, which helps a lot in case of\n\tresource clashes\n* is_virtual
  fact\n* new stdlib functions: flatten, str2bool, validate_absolute_path\n* Hiera
  support\n* JSON output that is compatible with \"puppet apply\"\n* New addfacts
  command for the pdbquery utility\n* Support for the classes variable in templates\n*
  Support for @instance variables in inline_template\n* Support for scope['key'] syntax
  in templates\n* Support for facts overriding with puppetresources\n## Bugs fixed\n*
  Deserialization problems with puppetDBs\n* Fixed several bugs with imported resources\n*
  Bug with relationships overrides that got stored as parameters\n* Importing several
  exported resources from the same class now works\n* Templates with an invalid encoding
  could crash the process\n* Yaml parse errors of the puppetdb file now throw errors\n\n#
  v0.10.2 (2013/10/27)\n## Bugs fixed\n* PVP support\n## New features\n* Support for
  properly setting instance variables before computing\n\ttemplates with native Ruby.\n\n#
  v0.10.1 (2013/10/27)\n## Bugs fixed\n* The TestDB file was never created.\n\n# v0.10.0
  (2013/10/27)\n## New features\n* Map/each/filter functions with lambdas (not really
  tested)\n* Rewrite of the PuppetDB API\n* The whole scope stack is kept with each
  Resource, for easier debugging\n* Inclusion of three PuppetDB backends : dummy (no
  effect), TestDB (stored\n\tin a YAML file) and Remote (standard PuppetDB API)\n##
  Bugs fixed\n* This is a hack : variables declared in a parent (inheritance) can
  now be\n\toverriden. This is because inheritance is not handled like in Vanilla.
  As\n\tI do not really use inheritance, I am not sure if this is much of a\n\tbreakage.\n\n#
  v0.9.0 (2013/08/15)\n  Huge rewrite !\n* See http://lpuppet.banquise.net/blog/2013/08/15/version-0-dot-9-0-is-out-for-testing/\n\n#
  v0.4.2 (2013/06/01)\n## New features\n* Functions 'values' and 'keys' from stdlib
  are now implemented.\n* hruby integration\n## Bugs fixed\n\n# v0.4.0 (2013/05/16)\n##
  New features\n* Big refactor of the PuppetDB API.\n* New \"fake\" PuppetDB used
  for testing\n* Support of the caller_module_name variable.\n* Support for a dumpvariable()
  function.\n* More details stored in the resource types, and in error messages.\n*
  User native type\n* Removal of the MissingH, filepath, monad-loop and directory
  dependency\n* Puppet booleans are now handled at parse stage\n* inline_template
  function\n## Bugs fixed\n* fqdn_rand now puppet perfect (at least for 32 bit max
  values)\n* Now depends on the built-in bytestring library that comes with\n\tGHC-7.6.1.\n*
  Aliases should now work as expected ... I wish!\n* regexp_subs now works in a PCRE
  manner\n* Destination dependency can now be a variable resolving in an array.\n\n#
  v0.3.3 (2013/01/21)\n## New features\n* Tries to find calcerb.rb next to the executable.\n*
  Started cleaning imports ...\n* It is now possible to write \"top level\" functions
  in lua.\n* Function getvar (stdlib)\n* TENTATIVE support for aliases.\n* Checks
  that file names don't have trailing slashes.\n* Checks that exec commands are fully
  qualified if path is not defined.\n* New native type : package.\n## Bugs fixed\n*
  Fixed a ton of problems related to exported resources and relations.\n* Minor fix
  about zonerecord.\n* Resolving variable names starting with :: in templates\n* Fixed
  the file function.\n\n# v0.3.2 (2012/12/13)\n  The license has been changed to BSD3.\n##
  Bugs fixed\n* It is now possible to use expressions in include blocks. This is\n\ttemporary,
  as include should be handled just like every other function.\n\n# v0.3.1 (2012/11/23)\n##
  New features\n* Yes, we can generate JSon catalogs now.\n## Bugs fixed\n* Several
  bugs about resource relationships.\n\n# v0.3.0 (2012/11/19)\n## New features\n*
  Resource relationships are somehow supported. The API is broken as a\n\tresult.\n*
  Exported resources are now returned.\n\n# v0.2.2 (2012/11/12)\n## New features\n*
  A few statistics are exported.\n\n# v0.2.1 (2012/11/12)\n## Bugs fixed\n* The defaults
  system was pretty much broken, it should be better now.\n## New features\n* Basic
  testing framework started.\n* create_resources now supports the defaults system.\n*
  defined() function works for resource references.\n* in operator implemented for
  hashes.\n* Multithreading works.\n* The ruby <> daemon communication is now over
  ByteStrings.\n* The toRuby function has been optimized, doubling the overall speed
  for\n\trendering complex catalogs.\n* Various internal changes.\n\n# v0.2.0 (2012/10/08)\n##
  New features\n* Lua integration for custom functions.\n* Automatically creates magic
  types based on the content of the modules.\n## Bugs fixed\n* Defaults parameters
  can now end with a comma.\n\n# v0.1.8.0 (2012/09/20)\n## New features\n* Refactoring
  of the PuppetDB API for interfacing with the facter library.\n* Support of exported
  resource resolution through PuppetDB ! This results\n\tin an API breakage.\n* Make
  binary distribution possible (ruby helper path).\n## Bugs fixed\n* Defines with
  spurious parameters, or unset mandatory parameters, should\n\tnow be catched.\n*
  Exception handling for the HTTP failures.\n* Handles undefined variables in Ruby
  templates.\n* Undefined variables in Erbs now always throw exceptions. This is\n\tstricter
  than Puppet (which throws exceptions for \"native\" variables), but\n\tis I believe
  good practice.\n\n# v0.1.7.2 (2012/09/17)\n## New features\n* Preliminary support
  for PuppetDB\n\n# v0.1.7.1 (2012/09/14)\n## Bugs fixed\n* Various details have been
  modified since the official language\n\t  documentation has been published.\n* Better
  handling of collector conditions.\n* Solves bug with interpolable strings that are
  not resolved when first\n\t  found.\n## New features\n* Amending attributes with
  a collector.\n* Stdlib functions : chomp\n* Resource pretty printer now aligns =>.\n*
  Case statements with regexps.\n\n# v0.1.7 (2012/08/24)\n## Bugs fixed\n* Fix bug
  with '<' in the Erb parser !\n* Assignments can now be any valid Puppet expression.\n*
  Proper list of metaparameters.\n## New features\n* Quick resolution of boolean conditions.\n*
  Start of the move to a real PCRE library.\n* Function is_domain_name.\n* New native
  types : zone_record, cron, exec, group, host, mount, file.\n\n# v0.1.6 (2012/08/01)\n##
  New features\n* Errors now print a stack trace (only works with profiling builds).\n*
  Nested classes.\n* generate() function.\n* defines with spurious top level statements
  now should work.\n* validate_* functions from puppetlabs/stdlib.\n## Bugs fixed\n*
  Metaparameters now include stages (not handled).\n* Resolving non empty arrays as
  boolean returns true.\n* Duplicate parameters are now detected.\n\n# v0.1.5 (2012/07/06)\n##
  Bugs fixed\n* Detection of spurious parameters when declaring parametrized classes
  now\n\tworks.\n* Resource overrides with non trivial names should now work.\n* Require
  statements in required files would not be loaded.\n\n# v0.1.4 (2012/07/02)\n## New
  features\n* Basic native template function.\n* Added anchor as a native type for
  now. A better fix will be to just parse\n\t  for defined types in the lib directory
  of modules.\n* Tentative defined() implementation. Will not work for resource references.\n*
  Functions md5, sha1, lowcase, upcase, split.\n## Bugs fixed\n* String comparison
  is not case insensitive.\n* Variable scope for inherited classes should now work.\n*
  Support for the $module_name variable (probably a bit buggy).\n* Proper location
  of a \"define not found\" error.\n* Parsing bug for single quoted strings and slashes.\n*
  Bug where a resource name is a variable that is actually an array.\n* Array indexing.\n*
  Top level variables are now supported in Erb.\n## Various\n* Removed the title parameter
  from the catalog printing functions.\n* Used hslint a bit.\n"
basic-deps:
  http-client: ! '>=0.4.30 && <0.6'
  exceptions: ! '>=0.8 && <0.9'
  bytestring: -any
  lens-aeson: ! '>=1.0'
  ansi-wl-pprint: ==0.6.*
  case-insensitive: ==1.2.*
  unix: ! '>=2.7 && <2.8'
  split: ==0.2.*
  stm: ==2.4.*
  base: ! '>=4.9 && <5'
  time: ! '>=1.5 && <2'
  strict-base-types: ! '>=0.3'
  servant-client: ! '>=0.9 && <1'
  unordered-containers: ==0.2.*
  hspec: -any
  text: ! '>=0.11'
  http-api-data: ! '>=0.2 && <0.4'
  megaparsec: ==6.*
  process: ! '>=1.2'
  parsec: ==3.1.*
  semigroups: -any
  servant: ! '>=0.9 && <1'
  memory: ! '>=0.7'
  containers: ==0.5.*
  lens: ! '>=4.12 && <5'
  hruby: ! '>=0.3.2 && <0.4'
  formatting: -any
  hslogger: ==1.2.*
  filecache: ! '>=0.2.9 && <0.3'
  cryptonite: ! '>=0.6'
  mtl: ! '>=2.2.1 && <2.3'
  hashable: ==1.2.*
  operational: ! '>=0.2.3 && <0.3'
  parallel-io: -any
  base16-bytestring: ==0.1.*
  attoparsec: ! '>=0.12'
  regex-pcre-builtin: ! '>=0.94.4'
  transformers: ! '>=0.4 && <0.6'
  language-puppet: -any
  optparse-applicative: -any
  random: -any
  scientific: ! '>=0.2 && <0.4'
  pcre-utils: ! '>=0.1.7 && <0.2'
  Glob: <0.9
  aeson: ! '>=0.8'
  yaml: ! '>=0.8.8 && <0.9'
  vector: ! '>=0.10'
  directory: ! '>=1.2 && <1.4'
all-versions:
- '0.1.3'
- '0.1.4'
- '0.1.5'
- '0.1.6'
- '0.1.7'
- '0.1.7.2'
- '0.1.8.0'
- '0.2.0'
- '0.2.0.1'
- '0.2.0.2'
- '0.2.2.0'
- '0.3.0.0'
- '0.3.1.0'
- '0.3.2'
- '0.4.0'
- '0.4.2'
- '0.10.0'
- '0.10.1'
- '0.10.2'
- '0.10.3'
- '0.10.4'
- '0.10.5'
- '0.10.6'
- '0.11.0'
- '0.11.1'
- '0.11.1.1'
- '0.12.0'
- '0.12.1'
- '0.12.2'
- '0.12.3'
- '0.13.0'
- '0.14.0'
- '1.0.0'
- '1.0.1'
- '1.1.0'
- '1.1.1'
- '1.1.1.1'
- '1.1.1.2'
- '1.1.3'
- '1.1.3.1'
- '1.1.4'
- '1.1.4.1'
- '1.1.5'
- '1.1.5.1'
- '1.2'
- '1.3'
- '1.3.1'
- '1.3.1.1'
- '1.3.2'
- '1.3.2.1'
- '1.3.3'
- '1.3.4'
- '1.3.4.1'
- '1.3.5'
- '1.3.5.1'
- '1.3.6'
- '1.3.7'
- '1.3.8'
- '1.3.8.1'
- '1.3.9'
- '1.3.10'
- '1.3.11'
author: <NAME>
latest: '1.3.11'
description-type: text
description: ! "= Language-puppet\n\nimage:https://img.shields.io/hackage/v/language-puppet.svg[link=\"http://hackage.haskell.org/package/language-puppet\"]\nimage:https://www.stackage.org/package/language-puppet/badge/lts[link=\"https://www.stackage.org/lts/package/language-puppet\"]\nimage:https://www.stackage.org/package/language-puppet/badge/nightly[link=\"https://www.stackage.org/nightly/package/language-puppet\"]\nimage:https://travis-ci.org/bartavelle/language-puppet.svg?branch=master[\"Build<commit_msg>Update from Hackage at 2017-10-09T07:37:51Z<commit_after>homepage: http://lpuppet.banquise.net/
changelog-type: markdown
hash: 56086a873333ee3d8d37cf504d6ced8a748526734f1e9b5eb6cbf3b2ac9d2be5
test-bench-deps:
  ansi-wl-pprint: -any
  unix: -any
  base: -any
  strict-base-types: -any
  unordered-containers: -any
  hspec: -any
  text: -any
  megaparsec: -any
  HUnit: -any
  lens: -any
  hslogger: -any
  mtl: -any
  hspec-megaparsec: -any
  transformers: -any
  language-puppet: -any
  temporary: -any
  scientific: -any
  Glob: -any
  vector: -any
maintainer: <EMAIL>
synopsis: Tools to parse and evaluate the Puppet DSL.
changelog: ! "# v1.3.12 (2017/10/09)\n\n* Support for Glob >= 0.9\n\n# v1.3.11 (2017/10/07)\n\n*
  Added yera command\n* Minor fixes to the validate_integer function, and to the mount
  resource\n* Support for the \"lookup\" command in hiera files\n* Fix Glob compilation
  problem\n\n# v1.3.10 (2017/08/28)\n\n* Add `sort` stdlib function\n* Remove `SafeProcess`
  module (fix `ghc-8.2` compilation)\n* Remove `ghc-7.x` support\n\n# v1.3.9 (2017/07/30)\n\n*
  Moved to megaparsec 6\n\n# v1.3.8.1 (2017/07/21)\n\n* Fix haddocks error (#208)\n\n#
  v1.3.8 (2017/07/20)\n\n* Add support for calling Functions in Strings (#199)\n*
  Add $facts hash for Puppet 4 (#198)\n* Initial support for datatype syntax (#206)\n\n#
  v1.3.7 (2017/03/14)\n\n* Add puppet `sprintf` function\n* Fix scientific2text (#196)\n\n#
  v1.3.6 (2017/02/27)\n\n* The `defined` function can now test variables\n* Fixed
  the `delete_at` function, added new tests, TBC\n* Fixed the `ensure_resource` function,
  so that its second argument can take an array.\n\n# v1.3.5.1 (2017/02/02)\n\n* Version
  bumps for megaparsec & servant\n\n# v1.3.5 (2017/01/31)\n\n* Ignored packages are
  not parsed anymore\n\n# v1.3.4.1 (2017/01/12)\n\n* Version bump for the directory
  dependency\n\n# v1.3.4 (2016/12/14)\n\n* Adds implicit dependencies for some types
  where users and groups are defined\n\n# v1.3.3 (2016/12/05)\n\n* Rename some pdbquery
  subcommands\n* Output pdbquery in `json` instead of `yaml`\n* Fix `pdbquery resources
  NODENAME`\n* Add `pdbquery fact NODENAME`\n\n# v1.3.2.1 (2016/10/04)\n\n* Support
  for megaparsec 5.1\n\n# v1.3.2 (2016/09/21)\n\n* Add stdlib `validate_integer`\n*
  Support for servant 0.9\n\n# v1.3.1 (2016/08/31)\n\n* Add `--version` to puppetresources
  and pdbquery\n* Version bump for some dependencies\n\n# v1.3 (2016/07/11)\n\nThis
  release is about dependencies versions upgrades.\n\n## Removed features\n* External
  Lua plugins are not a thing anymore\n\n#v1.2 (2016/05/31)\n\n## New features\n*
  `validate_numeric` function\n* Preliminary implementation of variable captures in
  regexp matches\n* Ready for GHC 8 and corresponding stackage nightly\n\n## Bugs
  fixed\n* Fixed a deadlock when template code called the `template` or `inline_template`
  functions. It just stops now :(\n\n# v1.1.5.1 (2016/03/14)\n\n## New features\n*
  `assert_private` function\n* `join_keys_to_values` function\n\n## Bugs Fixed\n*
  Several resource collector misbehaviour\n* Case expressions can now have multiple
  matchers of any kind as the same selector\n\n# v1.1.5 (2016/02/02)\n\n## New features\n\n*
  Added the `pick_default` function\n* `merge` now works with an arbitrary number
  of hashes\n* Added the `hash` function\n* puppet native type `file` resource accept
  selinux parameters\n* Added the `shellquote` function\n\n## Bugs fixed\n\n* `create_resources`
  can now create virtual and exported resources\n* puppet native type `file` fix for
  parameters `sourceselect` and `recurselimit`\n* Hiera array merge now only keeps
  unique values\n* `merge` now properly priorizes the lastest arguments\n\n# v1.1.4.1
  (2015/11/15)\n\n## New features\n* Support for the new puppet `contain` function\n\n##
  Bugs fixed\n* Fix parser for search expression (see #132)\n* Fix logger set up (see
  #136)\n* Fix some regsubst (see #119)\n* Fix the `template` and `inline_template`
  functions (see #142)\n* Support lookups for expressions used in selector (TODO:
  arbitrary expression)\n* Fix a ruby 1.8 syntax error\n* Fix a case where resource
  overrides were not applied to the correct resource\n* Fix a bug where a class value
  would be incorrectly inferred as having a default value whereas it doesn't\n\n##
  Changes\n* Replace `parsec` `megaparsec` (see #138)\n* All resource names are normalized.
  The leading `::` is ignored (see #140)\n* Add CI using travis\n* Drop support for
  ghc < 7.10 explicitly\n\n# v1.1.4 (2015/09/07)\n\n## New features\n* The `regsubst`
  function now works with arrays.\n* The `file` variable is resolved in templates.\n*
  Support for `function_x` calls in templates.\n\n## Bugs fixed\n* Expressions such
  as (-1) are now supported.\n* Selectors recognize the undef token now.\n* Fixed
  a bug with parsing lines starting with `::`.\n* Sanitize resource names in some
  missing instances to fix bugs\n  when they were starting with `::`.\n\n# v1.1.3
  (2015/05/31)\n\n## New features\n* Support for the `$settings` variables.\n* Support
  for the `to_yaml` function in templates.\n* Settings can now be altered in the default
  YAML file.\n* Defaults and overriden facts are now controlled in the YAML file too.\n\n#
  v1.1.1.2 (2015/04/28)\n\nVarious packaging changes.\n\n# v1.1.1 (2015/04/20)\n\n##
  New features\n* Add 'notify' native type\n* Ability to provide defaults via a yaml
  file for some options\n* Added the 'ensure_packages' and 'ensure_resources' functions\n\n##
  Bugs fixed\n* Enable 'package' native type (issue #102)\n* Builds against GHC 7.10\n\n##
  Changes\n* Even in Permissive mode, don't resolve unknown variable (see #103)\n*
  Add priority to the logger permissive output (see #106)\n* New hruby version\n*
  Rename option `--ignoremodules` into `--ignoredmodules`\n\n## Various\n* Hiera config
  interpolation logs decrease from NOTICE to INFO\n\n# v1.1.0 (2015/03/11)\n\nCritical
  bugs have been fixed, upgrade recommended.\n\n## New features\n* New `dumpinfos`
  debug function.\n* The interpreter can now run in a strict or permissive mode.\n*
  The new `-a` option accepts a comma separated list of nodes for gathering stats.\n*
  The new `--noextratests` option disable optional tests from `Puppet.OptionalTests`.\n*
  Implementation of `member()` from stdlib (see issue #100 for details)\n\n## Bugs
  fixed\n* Exported/virtual custom types are not expanded. This is a huge bug.\n*
  Class/define parameters that are explicitely set as undefined are now overriden
  by\n  default values.\n* Empty resource groups are now rejected.\n* An existing
  resource can now be realized.\n\n## Various\n* Hiera config interpolation logs decrease
  from WARN to NOTICE\n* Remove option `--nousergrouptest`\n* Ease the use of the
  puppetresources command options. See the README file for changes.\n\n\n# v1.0.1
  (2014/11/13)\n## New features\n* Support for the `join` function.\n* Support for
  filtering json puppetresources output (fix issue #64)\n* Support for `cmpversion`
  in the templates.\n* The various chaining modes have been implemented.\n* Support
  for the `is_bool` function (<NAME>cker)\n* Support for `concat` and `concat::fragment`
  (<NAME>cker)\n\n## Bugs fixed\n* Fix array value extrapolation in string
  (issue #35)\n* ${var} without quotes will now be rejected by the parser (issue #78)\n\n##
  Various\n* `README` moved to asciidoc (<NAME>)\n\n# v1.0.0 (2014/08/31)\n##
  IMPORTANT\nBuilding without hruby is now unsupported.\n## New features\n* Support
  for Debian distribution detection in facter.\n* Support for the \"~>\" operator.\n*
  Support for mixed-case resource references.\n* Added the `grep` function.\n## Bugs
  fixed\n* Better support for --ignoremodules.\n* Fixed parsing of standalone `$`
  characters in strings.\n\n# v0.14.0 (2014/06/12)\n## New features\n* Overhauled
  the dependency check system\n* Added an option to skip the user and group checks\n*
  Added an option to ignore some modules\n## Bugs fixed\n* Added `vagrant`, `nagios`,
  `www-data`, `postgres` and `nginx` to the list of known users.\n* Fixed how resource
  relationships were resolved with notify and before.\n* Fixed a problem where inheritance
  whould be used with `::` prefix.\n* The `defined` function now works with classes.\n*
  All numbers are now strings in templates.\n\n# v0.13.0 (2014/05/21)\n## New features\n*
  Hacky support for `scope.get_hash`.\n* New stuff from the new parser (adding hashes,
  arrays, etc.).\n* Wrote a pure evaluation function, for unit tests and prisms.\n*
  `Num` and `Fractional` instances for `Expression`.\n* Numbers are now internally
  stored as numbers, just like the new parser does.\n* Add support for \"structured
  facts\".\n* New stdlib functions: `is_hash`, `has_key`, `size`, `values`.\n## Bugs
  fixed\n* Puppetresources does not fail tests for file sources starting with `file://`.\n*
  Escaped characters were not properly handled in the parser.\n* Properly catch division
  by 0 (!!!!).\n* Got rid of the orphan instances ... code is now a lot uglier.\n*
  Fixed settings of \"title\" and \"name\" in classes. The original puppet version\n
  \ only seems to do this when we declare in define style :(\n* Fixed associativity
  priority between `=~` and `and`.\n\n# v0.12.3 (2014/03/13)\n## New featues\n* puppetresources
  now tests that groups and users are defined before being used\n in file, user, cron
  and exec.\n\n# v0.12.2 (2014/02/18)\n## New featues\n* Facts are now dumped in `TestDB`
  format by `pdbquery`.\n* The `puppetresources` command now has switch controlling
  the PuppetDB commit and \"catalog update\".\n\n# v0.12.1 (2014/02/10)\n## New featues\n*
  *Dead code* finder in puppetresources.\n* CPU related facts.\n* `puppetresources`
  now exits with the proper error code.\n* `puppetresources` can now display some
  statistics about compilation times.\n* Bumped the version of the http-conduit dependency.\n##
  Bugs fixed\n* Fixed dependencies so that builds with GHC 7.8-rc1 work.\n\n# v0.12.0
  (2014/02/07)\n## New featues\n* Builds against GHC 7.8-rc1.\n\n# v0.11.1 (2014/01/31)\n##
  Bugs fixed\n* Fixed build issues with strict-base-types version.\n\n# v0.11.0 (2014/01/30)\n##
  New features\n* Removal of the dedicated parsing threads.\n* Better default RTS
  options (for now, just the default allocation size)\n* Upgraded dependencies : aeson
  0.7, attoparsec 0.11, lens 4, parsers\n\t  0.10, text 1.1, filecache 0.3, hruby
  0.2\n\n# v0.10.6 (2014/01/25)\n## New features\n* New all nodes testing for puppetresources.\n*
  Added some uname related facts.\n* Added some lenses and prisms.\n## Bugs fixed\n*
  Parsing function calls without parens at the expression level is not\n\tallowed
  now.\n* Allow parsing of boolean facts from YAML files.\n* Allow resource references
  with array variables.\n* Fix spurious multiple includes error.\n* Fixed the implementation
  of some puppet functions.\n\n# v0.10.5 (2014/01/06)\n## Bugs fixed\n* Lambda blocks
  can now end with a bare function call\n* Fix version bounds with hslua and luautils\n\n#
  v0.10.4 (2013/12/18)\n## New features\n* Moved to the latest hruby version.\n* Updated
  the text bound\n\n# v0.10.3 (2013/12/03)\n## New features\n* The scope tracking
  system has been improved. It is now possible to know\n\tthe original host of an
  imported resource, which helps a lot in case of\n\tresource clashes\n* is_virtual
  fact\n* new stdlib functions: flatten, str2bool, validate_absolute_path\n* Hiera
  support\n* JSON output that is compatible with \"puppet apply\"\n* New addfacts
  command for the pdbquery utility\n* Support for the classes variable in templates\n*
  Support for @instance variables in inline_template\n* Support for scope['key'] syntax
  in templates\n* Support for facts overriding with puppetresources\n## Bugs fixed\n*
  Deserialization problems with puppetDBs\n* Fixed several bugs with imported resources\n*
  Bug with relationships overrides that got stored as parameters\n* Importing several
  exported resources from the same class now works\n* Templates with an invalid encoding
  could crash the process\n* Yaml parse errors of the puppetdb file now throw errors\n\n#
  v0.10.2 (2013/10/27)\n## Bugs fixed\n* PVP support\n## New features\n* Support for
  properly setting instance variables before computing\n\ttemplates with native Ruby.\n\n#
  v0.10.1 (2013/10/27)\n## Bugs fixed\n* The TestDB file was never created.\n\n# v0.10.0
  (2013/10/27)\n## New features\n* Map/each/filter functions with lambdas (not really
  tested)\n* Rewrite of the PuppetDB API\n* The whole scope stack is kept with each
  Resource, for easier debugging\n* Inclusion of three PuppetDB backends : dummy (no
  effect), TestDB (stored\n\tin a YAML file) and Remote (standard PuppetDB API)\n##
  Bugs fixed\n* This is a hack : variables declared in a parent (inheritance) can
  now be\n\toverriden. This is because inheritance is not handled like in Vanilla.
  As\n\tI do not really use inheritance, I am not sure if this is much of a\n\tbreakage.\n\n#
  v0.9.0 (2013/08/15)\n  Huge rewrite !\n* See http://lpuppet.banquise.net/blog/2013/08/15/version-0-dot-9-0-is-out-for-testing/\n\n#
  v0.4.2 (2013/06/01)\n## New features\n* Functions 'values' and 'keys' from stdlib
  are now implemented.\n* hruby integration\n## Bugs fixed\n\n# v0.4.0 (2013/05/16)\n##
  New features\n* Big refactor of the PuppetDB API.\n* New \"fake\" PuppetDB used
  for testing\n* Support of the caller_module_name variable.\n* Support for a dumpvariable()
  function.\n* More details stored in the resource types, and in error messages.\n*
  User native type\n* Removal of the MissingH, filepath, monad-loop and directory
  dependency\n* Puppet booleans are now handled at parse stage\n* inline_template
  function\n## Bugs fixed\n* fqdn_rand now puppet perfect (at least for 32 bit max
  values)\n* Now depends on the built-in bytestring library that comes with\n\tGHC-7.6.1.\n*
  Aliases should now work as expected ... I wish!\n* regexp_subs now works in a PCRE
  manner\n* Destination dependency can now be a variable resolving in an array.\n\n#
  v0.3.3 (2013/01/21)\n## New features\n* Tries to find calcerb.rb next to the executable.\n*
  Started cleaning imports ...\n* It is now possible to write \"top level\" functions
  in lua.\n* Function getvar (stdlib)\n* TENTATIVE support for aliases.\n* Checks
  that file names don't have trailing slashes.\n* Checks that exec commands are fully
  qualified if path is not defined.\n* New native type : package.\n## Bugs fixed\n*
  Fixed a ton of problems related to exported resources and relations.\n* Minor fix
  about zonerecord.\n* Resolving variable names starting with :: in templates\n* Fixed
  the file function.\n\n# v0.3.2 (2012/12/13)\n  The license has been changed to BSD3.\n##
  Bugs fixed\n* It is now possible to use expressions in include blocks. This is\n\ttemporary,
  as include should be handled just like every other function.\n\n# v0.3.1 (2012/11/23)\n##
  New features\n* Yes, we can generate JSon catalogs now.\n## Bugs fixed\n* Several
  bugs about resource relationships.\n\n# v0.3.0 (2012/11/19)\n## New features\n*
  Resource relationships are somehow supported. The API is broken as a\n\tresult.\n*
  Exported resources are now returned.\n\n# v0.2.2 (2012/11/12)\n## New features\n*
  A few statistics are exported.\n\n# v0.2.1 (2012/11/12)\n## Bugs fixed\n* The defaults
  system was pretty much broken, it should be better now.\n## New features\n* Basic
  testing framework started.\n* create_resources now supports the defaults system.\n*
  defined() function works for resource references.\n* in operator implemented for
  hashes.\n* Multithreading works.\n* The ruby <> daemon communication is now over
  ByteStrings.\n* The toRuby function has been optimized, doubling the overall speed
  for\n\trendering complex catalogs.\n* Various internal changes.\n\n# v0.2.0 (2012/10/08)\n##
  New features\n* Lua integration for custom functions.\n* Automatically creates magic
  types based on the content of the modules.\n## Bugs fixed\n* Defaults parameters
  can now end with a comma.\n\n# v0.1.8.0 (2012/09/20)\n## New features\n* Refactoring
  of the PuppetDB API for interfacing with the facter library.\n* Support of exported
  resource resolution through PuppetDB ! This results\n\tin an API breakage.\n* Make
  binary distribution possible (ruby helper path).\n## Bugs fixed\n* Defines with
  spurious parameters, or unset mandatory parameters, should\n\tnow be catched.\n*
  Exception handling for the HTTP failures.\n* Handles undefined variables in Ruby
  templates.\n* Undefined variables in Erbs now always throw exceptions. This is\n\tstricter
  than Puppet (which throws exceptions for \"native\" variables), but\n\tis I believe
  good practice.\n\n# v0.1.7.2 (2012/09/17)\n## New features\n* Preliminary support
  for PuppetDB\n\n# v0.1.7.1 (2012/09/14)\n## Bugs fixed\n* Various details have been
  modified since the official language\n\t  documentation has been published.\n* Better
  handling of collector conditions.\n* Solves bug with interpolable strings that are
  not resolved when first\n\t  found.\n## New features\n* Amending attributes with
  a collector.\n* Stdlib functions : chomp\n* Resource pretty printer now aligns =>.\n*
  Case statements with regexps.\n\n# v0.1.7 (2012/08/24)\n## Bugs fixed\n* Fix bug
  with '<' in the Erb parser !\n* Assignments can now be any valid Puppet expression.\n*
  Proper list of metaparameters.\n## New features\n* Quick resolution of boolean conditions.\n*
  Start of the move to a real PCRE library.\n* Function is_domain_name.\n* New native
  types : zone_record, cron, exec, group, host, mount, file.\n\n# v0.1.6 (2012/08/01)\n##
  New features\n* Errors now print a stack trace (only works with profiling builds).\n*
  Nested classes.\n* generate() function.\n* defines with spurious top level statements
  now should work.\n* validate_* functions from puppetlabs/stdlib.\n## Bugs fixed\n*
  Metaparameters now include stages (not handled).\n* Resolving non empty arrays as
  boolean returns true.\n* Duplicate parameters are now detected.\n\n# v0.1.5 (2012/07/06)\n##
  Bugs fixed\n* Detection of spurious parameters when declaring parametrized classes
  now\n\tworks.\n* Resource overrides with non trivial names should now work.\n* Require
  statements in required files would not be loaded.\n\n# v0.1.4 (2012/07/02)\n## New
  features\n* Basic native template function.\n* Added anchor as a native type for
  now. A better fix will be to just parse\n\t  for defined types in the lib directory
  of modules.\n* Tentative defined() implementation. Will not work for resource references.\n*
  Functions md5, sha1, lowcase, upcase, split.\n## Bugs fixed\n* String comparison
  is not case insensitive.\n* Variable scope for inherited classes should now work.\n*
  Support for the $module_name variable (probably a bit buggy).\n* Proper location
  of a \"define not found\" error.\n* Parsing bug for single quoted strings and slashes.\n*
  Bug where a resource name is a variable that is actually an array.\n* Array indexing.\n*
  Top level variables are now supported in Erb.\n## Various\n* Removed the title parameter
  from the catalog printing functions.\n* Used hslint a bit.\n"
basic-deps:
  http-client: ! '>=0.4.30 && <0.6'
  exceptions: ! '>=0.8 && <0.9'
  bytestring: -any
  lens-aeson: ! '>=1.0'
  ansi-wl-pprint: ==0.6.*
  case-insensitive: ==1.2.*
  unix: ! '>=2.7 && <2.8'
  split: ==0.2.*
  stm: ==2.4.*
  base: ! '>=4.9 && <5'
  time: ! '>=1.5 && <2'
  strict-base-types: ! '>=0.3'
  servant-client: ! '>=0.9 && <1'
  unordered-containers: ==0.2.*
  hspec: -any
  text: ! '>=0.11'
  http-api-data: ! '>=0.2 && <0.4'
  megaparsec: ==6.*
  process: ! '>=1.2'
  parsec: ==3.1.*
  semigroups: -any
  servant: ! '>=0.9 && <1'
  memory: ! '>=0.7'
  containers: ==0.5.*
  lens: ! '>=4.12 && <5'
  hruby: ! '>=0.3.2 && <0.4'
  formatting: -any
  hslogger: ==1.2.*
  filecache: ! '>=0.2.9 && <0.3'
  cryptonite: ! '>=0.6'
  mtl: ! '>=2.2.1 && <2.3'
  hashable: ==1.2.*
  operational: ! '>=0.2.3 && <0.3'
  parallel-io: -any
  base16-bytestring: ==0.1.*
  attoparsec: ! '>=0.12'
  regex-pcre-builtin: ! '>=0.94.4'
  transformers: ! '>=0.4 && <0.6'
  language-puppet: -any
  optparse-applicative: -any
  random: -any
  scientific: ! '>=0.2 && <0.4'
  pcre-utils: ! '>=0.1.7 && <0.2'
  Glob: -any
  aeson: ! '>=0.8'
  yaml: ! '>=0.8.8 && <0.9'
  vector: ! '>=0.10'
  directory: ! '>=1.2 && <1.4'
all-versions:
- '0.1.3'
- '0.1.4'
- '0.1.5'
- '0.1.6'
- '0.1.7'
- '0.1.7.2'
- '0.1.8.0'
- '0.2.0'
- '0.2.0.1'
- '0.2.0.2'
- '0.2.2.0'
- '0.3.0.0'
- '0.3.1.0'
- '0.3.2'
- '0.4.0'
- '0.4.2'
- '0.10.0'
- '0.10.1'
- '0.10.2'
- '0.10.3'
- '0.10.4'
- '0.10.5'
- '0.10.6'
- '0.11.0'
- '0.11.1'
- '0.11.1.1'
- '0.12.0'
- '0.12.1'
- '0.12.2'
- '0.12.3'
- '0.13.0'
- '0.14.0'
- '1.0.0'
- '1.0.1'
- '1.1.0'
- '1.1.1'
- '1.1.1.1'
- '1.1.1.2'
- '1.1.3'
- '1.1.3.1'
- '1.1.4'
- '1.1.4.1'
- '1.1.5'
- '1.1.5.1'
- '1.2'
- '1.3'
- '1.3.1'
- '1.3.1.1'
- '1.3.2'
- '1.3.2.1'
- '1.3.3'
- '1.3.4'
- '1.3.4.1'
- '1.3.5'
- '1.3.5.1'
- '1.3.6'
- '1.3.7'
- '1.3.8'
- '1.3.8.1'
- '1.3.9'
- '1.3.10'
- '1.3.11'
- '1.3.12'
author: <NAME>
latest: '1.3.12'
description-type: text
description: ! "= Language-puppet\n\nimage:https://img.shields.io/hackage/v/language-puppet.svg[link=\"http://hackage.haskell.org/package/language-puppet\"]\nimage:https://www.stackage.org/package/language-puppet/badge/lts[link=\"https://www.stackage.org/lts/package/language-puppet\"]\nimage:https://www.stackage.org/package/language-puppet/badge/nightly[link=\"https://www.stackage.org/nightly/package/language-puppet\"]\nimage:https://travis-ci.org/bartavelle/language-puppet.svg?branch=master[\"Build
{'fraction_non_alphanumeric': 0.1377137094925975, 'fraction_numerical': 0.05445294953476647, 'mean_word_length': 3.513342987174183, 'pattern_counts': {'":': 0, '<': 56, '<?xml version=': 0, '>': 76, 'https://': 12, 'lorem ipsum': 0, 'www.': 10, 'xml': 0}, 'pii_count': 56, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '950299', 'n_tokens_mistral': 16641, 'n_tokens_neox': 15429, 'n_words': 5268}