Announce: Puppet 3.5.0-rc1 Available.

79 views
Skip to first unread message

Ryan McKern

unread,
Mar 14, 2014, 8:38:04 PM3/14/14
to puppet...@googlegroups.com, puppe...@googlegroups.com
**Not yet released.** Entered RC1 on March 14, 2014.

3.5.0 is a backward-compatible features and fixes release in the Puppet 3 series. The biggest things in this release are:

* Better support for dynamic environments
* A cleaner replacement for the classic `import nodes/*.pp` pattern
* Scriptable configuration with a new `puppet config set` command
* A new global `$facts` hash
* Early support for hashes and arrays in fact values
* Improvements to the future parser
* Support for RHEL 7, Ruby 2.1, and Facter 2.0

...along with the usual flurry of smaller improvements and bug fixes.


How to Upgrade
-----

If you're upgrading from a 3.x version of Puppet, you can usually just go for it. Upgrade your puppet master servers before upgrading the agents they serve. (But do look at the table of contents above and see if there are any "Upgrade Warning" notes for the new version.)

If you're upgrading from Puppet 2.x, please learn about major upgrades of Puppet first (http://docs.puppetlabs.com/guides/upgrading.html)!  We have important advice about upgrade plans and package management practices. The short version is: test first, roll out in stages, give yourself plenty of time to work with. Also, read the release notes for Puppet 3 (http://docs.puppetlabs.com/puppet/3/reference/release_notes.html) for a list of all the breaking changes made between the 2.x and 3.x series.

What's New?
-----

### Dynamic Environments

Lots of people have been using dynamic temporary environments based on VCS checkouts to test and roll out their Puppet code, as described in this classic blog post (http://puppetlabs.com/blog/git-workflow-and-puppet-environments). This pattern is great, but it pretty much works by accident, so we wanted a better way to support it.

Now we have one! The short version is:

* Create a `$confdir/environments` directory on your puppet master.
* Each new environment is a subdirectory of that directory. The name of the directory will become the name of the environment.
* Each environment dir contains a `modules` directory and a `manifests` directory.
    * The `modules` directory will get stuck in front of the `modulepath`.
    * The `manifests` directory will be used as the `manifest` setting (see "Auto-Import" below).
* No other configuration is needed. Puppet will automatically discover environments.

So basically, you do a `git clone` or `git-new-workdir` in your `environments` directory, and nodes can immediately start requesting catalogs in that environment.

This feature isn't quite finished yet: it's missing the ability to set the `config_version` setting per-environment, which is something we're hoping to add in 3.6. But depending on what you're doing, it's probably good enough to start using today.

For full details, see the reference page about simple environments and the reference page about the modulepath

Related issues:

- [PUP-1574: Using new directory environments with puppet apply prevents evaluation of the manifest requested on the commandline.](https://tickets.puppetlabs.com/browse/PUP-1574)
- [PUP-1584: Puppet module tool should work with new directory environments](https://tickets.puppetlabs.com/browse/PUP-1584)
- [PUP-536: Create endpoint for enumerating environments](https://tickets.puppetlabs.com/browse/PUP-536)
- [PUP-1551: Change from "environmentdir" to "environmentpath"](https://tickets.puppetlabs.com/browse/PUP-1551)
- [PUP-1118: Support an $environmentsdir setting](https://tickets.puppetlabs.com/browse/PUP-1118)
- [PUP-1151: List information for known environments via REST](https://tickets.puppetlabs.com/browse/PUP-1151)
- [PUP-1676: Puppet config print respects legacy but not directory environments](https://tickets.puppetlabs.com/browse/PUP-1676)
- [PUP-1678: Environment Endpoint should show configuration and not all modules](https://tickets.puppetlabs.com/browse/PUP-1678)
- [PUP-1735: Puppet::Node::Environment.current should reroute with deprecation warning](https://tickets.puppetlabs.com/browse/PUP-1735)


### Auto-Import (Use a Directory as Main Manifest)

You can now set the `manifest` setting to a directory instead of a single file. (E.g. `manifest = $confdir/manifests`) If you do, the puppet master will parse every `.pp` file in that directory in alphabetical order (without descending into subdirectories) and use the whole set as the site manifest. Similarly, you can give puppet apply a directory as its argument, and it'll do the same thing.

We did this because:

* `import` is horrible...
* ...but the `import nodes/*.pp` pattern is good.

Lots of people like to use node definitions and keep every node in a separate file. In Puppet 3.4 and earlier, this meant putting an `import` statement in puppet.conf and storing the node files in another directory. Now, you can just put all your nodes in the main manifest dir and point the `manifest` setting at it.

And since this was the last real reason to use `import`, we can deprecate it now! (See "Deprecations and Removals" below.)

See the page about the manifest directory for more details.

Related issues:

- [PUP-865: Provide a manifest directory where all manifests are automatically parsed.](https://tickets.puppetlabs.com/browse/PUP-865)

### Scriptable Configuration (`puppet config set`)

You can now change Puppet's settings without parsing the config file, using the `puppet config set` command. This is mostly useful for configuring Puppet as part of your provisioning process, but can be convenient for one-off changes as well.

Related issues:

- [PUP-663: Set an entry in puppet.conf](https://tickets.puppetlabs.com/browse/PUP-663)
- [PUP-665: Select a section](https://tickets.puppetlabs.com/browse/PUP-665)

### Global `$facts` Hash

You have to manually enable this (along with the `$trusted` hash) by setting `trusted_node_data = true` in puppet.conf on your puppet master(s). It'll be on by default in Puppet 4.

In addition to using `$fact_name`, you can now use `$facts[fact_name]` to get a fact value. The `$facts` hash is protected and can't be overridden locally, so you won't need the `$::` idiom when using this.

Our hope is that this will visibly distinguish facts from normal variables, make Puppet code more readable, and eventually clean up the global variable namespace. (That'll take a while, though --- we probably won't be able to disable `$fact_name` until, like, Puppet 5.)

Related issues:

- [PUP-542: Provide access to all facts in a single structure](https://tickets.puppetlabs.com/browse/PUP-542)

### Structured Facts (Early Version)

You have to manually enable this by setting `stringify_facts = false` in puppet.conf on your puppet master(s). It'll be enabled by default in Puppet 4.

In Facter 2.0 and later, fact values can be any data type, including hashes, arrays, and booleans. (This is a change from Facter 1.7, where facts could only be strings.) If you enable structured facts in Puppet, you can do more cool stuff in your manifests and templates with any facts that use this new feature.

These are the early days of structured facts support --- they work in Puppet and Facter now, but none of the built-in facts use data structures yet, and external systems like PuppetDB haven't yet been updated to take advantage of them. (Any structured facts will still get smooshed into strings when they're sent to PuppetDB.) But if you have a use for hashes or arrays in your custom facts, turn this on and give it a try.


### Future Parser is Faster and Better

We think the future parser (http://docs.puppetlabs.com/puppet/3/reference/experiments_future.html) is fast enough to use in a large environment now --- we haven't done extensive benchmarking with real-life manifests, but the testing we've done suggests it's about on par with the default parser. So if you've been waiting to try it out, give it a spin and let us know how it goes.

It also has some new tricks in this release:

* HEREDOCs are now allowed! This is a much more convenient way to handle large strings.
* A new template language was added, based on the Puppet language instead of on Ruby.
* There's a new "future" evaluator that goes along with the future parser.

Related issues:

- [PUP-490: Remove partially implemented support for 'import'](https://tickets.puppetlabs.com/browse/PUP-490)
- [PUP-527: Validate collect expressions (future parser)](https://tickets.puppetlabs.com/browse/PUP-527)
- [PUP-798: New Evaluator does not cache parse results](https://tickets.puppetlabs.com/browse/PUP-798)
- [PUP-800: Complete implementation of Location handling](https://tickets.puppetlabs.com/browse/PUP-800)
- [PUP-939: add support for enumerable type(s) in all iterative functions](https://tickets.puppetlabs.com/browse/PUP-939)
- [PUP-954: Correct Type System Flaws](https://tickets.puppetlabs.com/browse/PUP-954)
- [PUP-992: Relationship expression artificially denies arrays as operands](https://tickets.puppetlabs.com/browse/PUP-992)
- [PUP-994: Future evaluator should unique relationship operands](https://tickets.puppetlabs.com/browse/PUP-994)
- [PUP-1029: filter function should accept two parameters](https://tickets.puppetlabs.com/browse/PUP-1029)
- [PUP-1176: Add feature switch for evaluator](https://tickets.puppetlabs.com/browse/PUP-1176)
- [PUP-1212: runtime errors in future evaluator has uninformative backtrace](https://tickets.puppetlabs.com/browse/PUP-1212)
- [PUP-1234: each function broken after upgrading to 3.4](https://tickets.puppetlabs.com/browse/PUP-1234)
- [PUP-1247: Enabling --parser future causes classes to be not found and other errors](https://tickets.puppetlabs.com/browse/PUP-1247)
- [PUP-1579: Rename Literal Type to Scalar](https://tickets.puppetlabs.com/browse/PUP-1579)
- [PUP-486: Add subtype of String](https://tickets.puppetlabs.com/browse/PUP-486)
- [PUP-491: Implement a 4x validator](https://tickets.puppetlabs.com/browse/PUP-491)
- [PUP-502: Implement evaluation of 'definitions'](https://tickets.puppetlabs.com/browse/PUP-502)
- [PUP-792: Merge Feature Branch New Evaluator](https://tickets.puppetlabs.com/browse/PUP-792)
- [PUP-1619: Add Tuple and Struct types to the type system](https://tickets.puppetlabs.com/browse/PUP-1619)
- [PUP-644: PR (2020): (#21873) Make `name[x]` different from `name [x]` - hlindberg](https://tickets.puppetlabs.com/browse/PUP-644)
- [PUP-910: 3x functions do not know how to handle new data types](https://tickets.puppetlabs.com/browse/PUP-910)
- [PUP-979: future parser fails to recognize hash as parameter in un-parenthesized calls](https://tickets.puppetlabs.com/browse/PUP-979)
- [PUP-1220: dynamic variable lookup works in templates](https://tickets.puppetlabs.com/browse/PUP-1220)
- [PUP-1576: New Parser does not handle hyphenated barewords](https://tickets.puppetlabs.com/browse/PUP-1576)
- [PUP-1814: Double backslashes in single quote strings should be interpreted as single](https://tickets.puppetlabs.com/browse/PUP-1814)
- [PUP-1897: EPP ignores code after parameter declaration](https://tickets.puppetlabs.com/browse/PUP-1897)
- [PUP-1898: EPP - Error when trying to report argument error in inline_epp](https://tickets.puppetlabs.com/browse/PUP-1898)
- [PUP-28: Add heredoc support in future parser](https://tickets.puppetlabs.com/browse/PUP-28)
- [PUP-30: Support Puppet Templates](https://tickets.puppetlabs.com/browse/PUP-30)
- [PUP-473: Add support for \u for unicode chars in strings](https://tickets.puppetlabs.com/browse/PUP-473)
- [PUP-479: Handle types other than string as hash key](https://tickets.puppetlabs.com/browse/PUP-479)
- [PUP-482: Handle Comparisons / Equality a consistent way](https://tickets.puppetlabs.com/browse/PUP-482)
- [PUP-483: Handle Match in useful and consistent way](https://tickets.puppetlabs.com/browse/PUP-483)
- [PUP-487: Decide on 'in' operator vs. '=='](https://tickets.puppetlabs.com/browse/PUP-487)
- [PUP-489: Handle += / -= with consistent semantics](https://tickets.puppetlabs.com/browse/PUP-489)
- [PUP-525: Support Regular Expression as data type (an issue of encoding)](https://tickets.puppetlabs.com/browse/PUP-525)
- [PUP-1895: EPP - Define parameters with `<% |$x| %>` instead of `<% ($x) %>`](https://tickets.puppetlabs.com/browse/PUP-1895)

### Platform Support Updates

Newly supported:

* Puppet now supports RHEL 7, with packages and acceptance testing. This mostly involved cleaning up resource providers to handle things like systemd more cleanly.
* We're running acceptance tests on Fedora 19 and 20, now, too.
* Facter 2.0.1 works with Puppet 3.5, including its new structured facts support (see above).
* We have early support for Ruby 2.1. We're running spec tests on it, so we think it works fine! But since none of our testing platforms ship with it, we aren't running acceptance tests on it, which means there might be problems we don't know about yet.

Newly abandoned:

* Support for Fedora 18 is done, since it EOL-ed in January; no more acceptance tests or packages.
* Facter 1.6 is no longer supported with Puppet 3.5.

Related issues:

- [PUP-576: Add a fedora19 host to the platforms we are testing in ci.](https://tickets.puppetlabs.com/browse/PUP-576)
- [PUP-876: upstart service operating system confine should include redhat and centos](https://tickets.puppetlabs.com/browse/PUP-876)
- [PUP-923: Add Fedora 20 to acceptance](https://tickets.puppetlabs.com/browse/PUP-923)
- [PUP-1694: Provide packages for Rhel7](https://tickets.puppetlabs.com/browse/PUP-1694)
- [PUP-1825: Allow use of Facter 2](https://tickets.puppetlabs.com/browse/PUP-1825)
- [PUP-1463: Ensure services that were previously enabled get enabled after systemd service unit name change](https://tickets.puppetlabs.com/browse/PUP-1463)
- [PUP-1491: (packaging)Remove Fedora 18 from default mocks](https://tickets.puppetlabs.com/browse/PUP-1491)
- [PUP-1821: Bump facter dependency to 1.7 or greater](https://tickets.puppetlabs.com/browse/PUP-1821)
- [PUP-1732: 'puppet resource service' with systemd provider shows lots of non-services](https://tickets.puppetlabs.com/browse/PUP-1732)
- [PUP-1766: Make systemd the default provider for RHEL7](https://tickets.puppetlabs.com/browse/PUP-1766)

### Smaller New Features

In addition to the big-ticket improvements above, we added a lot of smaller features.

Misc features:

* Pluginsync can now sync external facts to agent nodes! This requires Facter 2.0.1 or later. (At the time of RC1, Facter 2.0.1 was still in RC.)
* Certificate extensions will now appear in the `$trusted` hash.
* There's a new `strict_variables` setting; if set to true, it will throw parse errors when accessing undeclared variables. Right now, this will wreak havoc; eventually, it will make Puppet code easier to debug.
* Related to the last: The `defined` function can now test whether a variable is defined. Note that you have to single-quote the variable name, like this: `defined('$my_var')` --- otherwise, the function will receive the value of the variable instead of its name. Anyway, going forward, this will be a more accurate way to distinguish between `false`, `undef`, and uninitialized variables, especially if you're using `strict_variables = true`.
* The `http` report processor can use basic auth now when forwarding reports.
* Puppet apply now has a `--test` option that acts much like puppet agent's `--test`.
* On Windows, the puppet agent service will now log activity using the Windows Event Log instead of a logfile.

Type and provider features:

* The `ssh_authorized_key` type can use ssh-ed25519 keys now.
* When `service` resources fail to start or restart, they'll log the exit code, stdin, and stderr text as Puppet errors to help with debugging.
* The `rpm` package provider now accepts virtual packages.
* The `rpm` package provider now supports `uninstall_options`.
* The `package` type has a new `package_settings` attribute. This is a property that can be implemented differently per-provider; currently nothing uses it, but there are plans to make the FreeBSD provider use it for port options.
* The `user` type now validates the `shell` attribute, to make sure it actually exists and is executable.
* You can now use msgpack as the on-disk cache format for some of Puppet's generated data types.
* The `file` type has a new `validate_cmd` attribute that can help protect against accidentally writing broken config files.
* The `resources` type has a new `unless_uid` attribute that acts like an improved version of the `unless_system_user` attribute --- it lets you protect multiple UIDs and ranges of UIDs from deletion when purging `user` resources.
* You can now purge unmanaged `cron` resources with the `resources` type.

Features for extension writers:

* The Puppet::Util::Profiler#profile API is now public, and can be used by extensions like indirector termini and report handlers.
* There's a new v2.0 HTTP API, which doesn't have to abide by the (sometimes inconsistent and weird) semantics of the main API. Right now, the only v2.0 endpoint is for getting information about environments via the API.


Related issues:

- [PUP-1068: Puppet master can't submit reports to an HTTP server using basic auth](https://tickets.puppetlabs.com/browse/PUP-1068)
- [PUP-1218: Improve ssh-ed25519 integration](https://tickets.puppetlabs.com/browse/PUP-1218)
- [PUP-1219: PR (2182): Improve ssh-ed25519 integration - jasperla](https://tickets.puppetlabs.com/browse/PUP-1219)
- [PUP-950: PR (2132): (#23376) Add support for ssh-ed25519 keys to ssh_authorized_key type - jasperla](https://tickets.puppetlabs.com/browse/PUP-950)
- [PUP-1318: Provide a logoutput for service like exec](https://tickets.puppetlabs.com/browse/PUP-1318)
- [PUP-897: package type should accept virtual package for rpm](https://tickets.puppetlabs.com/browse/PUP-897)
- [PUP-1369: Package options property for package](https://tickets.puppetlabs.com/browse/PUP-1369)
- [PUP-1448: User's type 'shell' parameter should be validated](https://tickets.puppetlabs.com/browse/PUP-1448)
- [PUP-1327: PR (2060) owner of files created by nagios resource types](https://tickets.puppetlabs.com/browse/PUP-1327)
- [PUP-1589: PR (2328): Msgpack terminii - dalen](https://tickets.puppetlabs.com/browse/PUP-1589)
- [PUP-1670: PR (2347): A way to validate file content syntax before replacing files](https://tickets.puppetlabs.com/browse/PUP-1670)
- [PUP-1447: Allow specified UIDs to be excluded from purge](https://tickets.puppetlabs.com/browse/PUP-1447)
- [PUP-1490: Support --test option for puppet apply](https://tickets.puppetlabs.com/browse/PUP-1490)
- [PUP-1564: PR (2319) package rpm provider should support :uninstall_options feature](https://tickets.puppetlabs.com/browse/PUP-1564)
- [PUP-649: PR (2024): (#3220) crontab: allow purging unmanaged resources - ffrank](https://tickets.puppetlabs.com/browse/PUP-649)
- [PUP-1772: Proposal to make Puppet::Util::Profiler#profile api public](https://tickets.puppetlabs.com/browse/PUP-1772)
- [PUP-672: Informational certificate extensions should be exposed inside the Puppet DSL](https://tickets.puppetlabs.com/browse/PUP-672)
- [PUP-1048: PR (2161): (#21641) Windows puppet service should log to the eventlog - glennsarti](https://tickets.puppetlabs.com/browse/PUP-1048)
- [PUP-1505: Puppet should use new Facter.search_external for external facts pluginsync](https://tickets.puppetlabs.com/browse/PUP-1505)
- [PUP-1432: Implement v2.0 API error responses](https://tickets.puppetlabs.com/browse/PUP-1432)
- [PUP-1549: V2.0 API shows the message body in the Reason-Phrase](https://tickets.puppetlabs.com/browse/PUP-1549)
- [PUP-1166: Add better error message for strict variables (current parser)](https://tickets.puppetlabs.com/browse/PUP-1166)
- [PUP-1372: with strict variable lookup option there is no way to check if var is defined](https://tickets.puppetlabs.com/browse/PUP-1372)

### Deprecations and Removals

As we start to get ready for Puppet 4, we're deprecating some features we're hoping to remove or replace. (Be ready for more of these in Puppet 3.6, too.) Using deprecated features will cause warnings to be logged on the puppet master; these features will be removed in Puppet 4.

Deprecations in the Puppet language:

* The `import` keyword is deprecated. Instead of importing, you should set your `manifest` setting to a directory of .pp files.
* Modifying arrays and hashes in Puppet code or templates is deprecated. (This actually should never have been possible, but we can't kill it in a minor version because it might break something.)

Deprecations in the type and provider API:

* Using the `:parent` option when creating a type is deprecated. This actually hasn't worked for a long while, but now it will warn you that it won't do anything.

Removals:

* The experimental bindings-based Hiera2/data-in-modules code has been removed. We're back to the drawing board on this.

Related issues:

- [PUP-899: Deprecate parent parameter for type](https://tickets.puppetlabs.com/browse/PUP-899)
- [PUP-864: Deprecate Data Structure Mutation](https://tickets.puppetlabs.com/browse/PUP-864)
- [PUP-866: Deprecate "import"](https://tickets.puppetlabs.com/browse/PUP-866)
- [PUP-546: Remove Hiera2 and bindings-based data in modules code](https://tickets.puppetlabs.com/browse/PUP-546)

### Performance Improvements

3.5 is faster! We found a situation where defined types were a lot slower than they needed to be, some slow cases in `puppet cert list` and the module tool, and a few other performance wins.

Related issues:

- [PUP-716: Puppet::FileSystem::File creates many short-lived objects](https://tickets.puppetlabs.com/browse/PUP-716)
- [PUP-751: Performance regression due to excessive file watching](https://tickets.puppetlabs.com/browse/PUP-751)
- [PUP-753: Create a reasonable "benchmark" manifest](https://tickets.puppetlabs.com/browse/PUP-753)
- [PUP-1059: PR (2162): (#16570) Don't load the node object again in configurer - dalen](https://tickets.puppetlabs.com/browse/PUP-1059)
- [PUP-1592: Puppet excessively stats the filesystem when looking for defined types](https://tickets.puppetlabs.com/browse/PUP-1592)
- [PUP-1563: PR (2322) Module tool rechecks for conflicts for each installed module](https://tickets.puppetlabs.com/browse/PUP-1563)
- [PUP-1665: PR - Puppet cert list behavior is suboptimal](https://tickets.puppetlabs.com/browse/PUP-1665)
- [PUP-1058: puppet apply loading facts twice](https://tickets.puppetlabs.com/browse/PUP-1058)

### Bug Fixes and Clean-Ups

We fixed a bunch of bugs in types and providers (including a big cleanup of the yumrepo type), improved standards-compliance in our use of certificates, fixed a bunch of Windows-specific problems, cleaned up some inconsistencies, and fixed some bugs that don't fit in any particular bucket.

Type and provider bugs:

- [PUP-1051: gem package provider is confused by platform components in version strings](https://tickets.puppetlabs.com/browse/PUP-1051)
- [PUP-1158: Augeas provider warns on parse errors in other files handled by same lens](https://tickets.puppetlabs.com/browse/PUP-1158)
- [PUP-1421: appdmg prematurely filters for sources ending in .dmg](https://tickets.puppetlabs.com/browse/PUP-1421)
- [PUP-1450: [Windows] Copying file resources from non-NTFS volumes causes Invalid DACL errors](https://tickets.puppetlabs.com/browse/PUP-1450)
- [PUP-1559: Windows - Specifying well-known SIDs as a group / user in manifests causes errors](https://tickets.puppetlabs.com/browse/PUP-1559)
- [PUP-730: PR (2140): (#23141) Add OpenBSD to the exclusion list for 'remounts' in mount type - jasperla](https://tickets.puppetlabs.com/browse/PUP-730)
- [PUP-1192: PR (2176): (maint) Windows file provider :links => :follow - Iristyle](https://tickets.puppetlabs.com/browse/PUP-1192)
- [PUP-1561: puppet resource cron does not list crontab entries](https://tickets.puppetlabs.com/browse/PUP-1561)
- [PUP-713: PR (2050): (#4820) cron type should not allow specification of special parameter and normal hour/minute/day/etc parameters. - ffrank](https://tickets.puppetlabs.com/browse/PUP-713)
- [PUP-1085: Pacman provider constantly reinstalls package groups on arch linux](https://tickets.puppetlabs.com/browse/PUP-1085)
- [PUP-648: PR (2023): Add upgradeable and versionable features to pkgin provider - javiplx](https://tickets.puppetlabs.com/browse/PUP-648)
- [PUP-1510: ensure => absent on user resource with forcelocal => true does not work as expected.](https://tickets.puppetlabs.com/browse/PUP-1510)
- [PUP-1338: yumrepo module is too picky about white space](https://tickets.puppetlabs.com/browse/PUP-1338)
- [PUP-789: Yumrepo should be refactored to use a provider](https://tickets.puppetlabs.com/browse/PUP-789)
- [PUP-1722: Yumrepo doesn't permit HTTPS URLs](https://tickets.puppetlabs.com/browse/PUP-1722)
- [PUP-778: PR (2086): Initial refactoring of yumrepo. - apenney](https://tickets.puppetlabs.com/browse/PUP-778)
- [PUP-1066: yum repos should be ensurable.](https://tickets.puppetlabs.com/browse/PUP-1066)
- [PUP-652: PR (2026): #19422: Deal with invalid arguments to nagios types - yath](https://tickets.puppetlabs.com/browse/PUP-652)
- [PUP-714: PR (2051): Suppress misleading warn. in openbsd provider - ptomulik](https://tickets.puppetlabs.com/browse/PUP-714)
- [PUP-1846: PR (2410): File content diffing should respect loglevel - wfarr](https://tickets.puppetlabs.com/browse/PUP-1846)
- [PUP-1473: user resource fails on UTF-8 comment](https://tickets.puppetlabs.com/browse/PUP-1473)

Windows-related bugs:

- [PUP-1368: Puppet on Windows segfaulting](https://tickets.puppetlabs.com/browse/PUP-1368)
- [PUP-1494: Windows colors.rb may be subject to Ruby corruption bug with wide strings](https://tickets.puppetlabs.com/browse/PUP-1494)
- [PUP-1681: Windows stat doesn't expose the correct mode](https://tickets.puppetlabs.com/browse/PUP-1681)
- [PUP-1275: Windows agent only runs when --onetime is specified](https://tickets.puppetlabs.com/browse/PUP-1275)
- [PUP-1278: PR: Windows Puppet Agent Service gracefully terminates after succesfully being put into a Paused state](https://tickets.puppetlabs.com/browse/PUP-1278)
- [PUP-1284: win32-security gem doesn't handle 'Authenticated Users' correctly](https://tickets.puppetlabs.com/browse/PUP-1284)
- [PUP-797: PR (2094): (#23219) - Fix support of extra arguments in windows service - luisfdez](https://tickets.puppetlabs.com/browse/PUP-797)

Standards compliance improvements:

- [PUP-1407: puppet CA generates CRL that does not conform to RFC5280](https://tickets.puppetlabs.com/browse/PUP-1407)
- [PUP-1409: add an authorityKeyIdentifier extension to node certificates](https://tickets.puppetlabs.com/browse/PUP-1409)

Clean-ups:

- [PUP-1120: Change default private key permissions to permit group read](https://tickets.puppetlabs.com/browse/PUP-1120)
- [PUP-1451: PR (2257) Make public SSL files publicly readable](https://tickets.puppetlabs.com/browse/PUP-1451)
- [PUP-1262: PR (2196): (maint) cron: Make the munge method for the command property more readable - ffrank](https://tickets.puppetlabs.com/browse/PUP-1262)

General bugs:

- [PUP-1064: Puppet master fails with 'stack level too deep' error when storeconfigs = true with rails stack 3.1.0](https://tickets.puppetlabs.com/browse/PUP-1064)
- [PUP-1136: When applying the settings catalog, a failed transaction may not properly surface information about the event that caused it to fail](https://tickets.puppetlabs.com/browse/PUP-1136)
- [PUP-1150: Race condition in Puppet::Util::Lockfile](https://tickets.puppetlabs.com/browse/PUP-1150)
- [PUP-1246: Hiding error details in fileserver.conf parser when this config is wrong](https://tickets.puppetlabs.com/browse/PUP-1246)
- [PUP-1470: mk_resource_methods getters can't deal with false](https://tickets.puppetlabs.com/browse/PUP-1470)
- [PUP-1484: msgpack serialization of TagSet broken](https://tickets.puppetlabs.com/browse/PUP-1484)
- [PUP-1578: puppetlabs/reboot: Ruby on windows can get into an infinite loop when exiting](https://tickets.puppetlabs.com/browse/PUP-1578)
- [PUP-1101: Static compiler does not filter exported resources from the catalog](https://tickets.puppetlabs.com/browse/PUP-1101)
- [PUP-721: PR (2056): (#7659)(#20122) Fix comment stack when parsing hashes - hlindberg](https://tickets.puppetlabs.com/browse/PUP-721)
- [PUP-786: PR (2090): (#21869) Fix recursion in cert expiration check - Sharpie](https://tickets.puppetlabs.com/browse/PUP-786)
- [PUP-804: PR (2097): (maint) Handle empty or malformed JSON lockfiles - adrienthebo](https://tickets.puppetlabs.com/browse/PUP-804)
- [PUP-906: PR (2118): (#22330) add btrfs to SELinux filesystem whitelist - qralston](https://tickets.puppetlabs.com/browse/PUP-906)
- [PUP-1243: PR (2184): (maint) Fix can't modify frozen Symbol error on Ruby 2.1.0 - jeffmccune](https://tickets.puppetlabs.com/browse/PUP-1243)
- [PUP-1282: puppet gem does not include platform specific gem dependencies](https://tickets.puppetlabs.com/browse/PUP-1282)
- [PUP-1350: PR (2215): Don't replace original stacktrace when error happens parsing inline template - carlossg](https://tickets.puppetlabs.com/browse/PUP-1350)
- [PUP-1502: PR (2293): (maint) Puppet fails to properly surface backtraces - Iristyle](https://tickets.puppetlabs.com/browse/PUP-1502)
- [PUP-1420: PR (2248): move StateMachine out of the global scope - crankharder](https://tickets.puppetlabs.com/browse/PUP-1420)
- [PUP-1707: Faces help sometimes blows up when descriptions are absent](https://tickets.puppetlabs.com/browse/PUP-1707)
- [PUP-1387: CA generates subjectKeyIdentifier from issuer cert instead of cert itself](https://tickets.puppetlabs.com/browse/PUP-1387)
- [PUP-1568: Error reporting within augeas provider fails](https://tickets.puppetlabs.com/browse/PUP-1568)
- [PUP-1839: Puppet device results in SSL stack too deep error](https://tickets.puppetlabs.com/browse/PUP-1839)
- [PUP-1885: File type ignore can't convert Fixnum into String](https://tickets.puppetlabs.com/browse/PUP-1885) (This one was a regression from 3.3.0.)
- [PUP-1404: PR (2234): ensure Puppet::Util::Execution.execpipe always run the command with LANG... - doc75](https://tickets.puppetlabs.com/browse/PUP-1404)

### All Resolved Issues for 3.5.0

Our ticket tracker has the list of [all issues resolved in Puppet 3.5.0.](https://tickets.puppetlabs.com/browse/PUP/fixforversion/11009)

### Contributors
Adrien Thebo, Alejandro Ramirez, Alex Harvey, Alexei Romanoff, Anderson Mills, Andrew Parker, Ashley Penney, Bart ten Brinke, Bert Hajee, Branan Purvine-Riley, Brandon High, Carlos Sanchez, Charlie Sharpsteen, Dan Lidral-Porter, Daniele Sluijters, Derek Yarnell, Dominic Cleal, Eric Sorenson, Erik Dalén, Ethan J. Brown, Felix Frank, Gavin Williams, Glenn Pratt, Guillaume Virlet, Henrik Lindberg, Iristyle, James Ralston, Jasper Lievisse Adriaanse, Javier Palacios, Jeff McCune, Jeremy T. Bouse, Joe Julian, John (JJ) Jawed, John Julien, Jonathan Webb, Josh Cooper, Josh Partlow, Josh Sharpe, Joshua Hoblitt, Ken Barber, Kylo Ginsberg, Luis Fernandez Alvarez, Marc Seeger, Matthew Nicholas Bradley, Nick Fagerlund, Patrick Carlisle, Paweł Tomulik, Pedro Côrte-Real, Peter Huene, Peter Meier, Peter Souter, Raphaël Pinson, Rob Braden, Rob Reynolds, Ryan McKern, Sam Kottler, Sebastian Schmidt, Stephen Gelman, Vincent Ambo, Will Farrington, fhrbek, glenn.sarti, glennsarti, jrussek

### Contributions
Adrien Thebo (21):
      107f0e4 (maint) Handle empty or malformed JSON lockfiles
      f066e74 (#22744) Filter virtual resources in the static compiler
      2327f68 (maint) Ensure HieraPuppet cached instance is reset
      eac21e8 (PUP-1218) Add spec coverage for ssh_authorized_key ssh-ed25519
      6a6ef5c (PUP-1218) Add spec coverage for sshkey ssh-ed25519
      76ae6a2 (maint) Clean up sshkey and ssh_authorizd_key type specs
      bda42f2 (maint) expand ExtensionFactory creation for clarity
      b4235bc (doc) Document certificate_factory methods
      3156ca1 (maint) Don't duplicate hash keys in rspec tests
      273f2d6 Revert "Merge branch 'pull-2137'"
      90351dc (maint) Pass Facter.search arrays instead of strings
      85c0894 (maint) Don't check for Facter.search
      728d836 (maint) Add missing noun that was accidentally
      a0e9882 (maint) Implement FileSystem.file? for consistency
      d032a16 (maint) fixup yumrepo provider to use fs abstraction
      fa522ac (maint) Allow arrays, bools, and numerics to be frozen
      20c3c01 (PUP-876) Add 'any' confine
      7bdcbea (PUP-876) Enable upstart service provider on Redhat
      f7ea505 Merge pull request #2402 from kylog/issue/pup-1825/allow-use-of-facter-2
      18bf7e9 (PUP-876) Skip resource service check on EL 6
      e11cb26 (PUP-1821) Require Facter 1.7 or greater

Alejandro Ramirez (1):
      73b0c2b (PUP-1448) Validates the user type shell property

Alex Harvey (1):
      66e0fd2 (doc) Fix a typo in docs for the include function

Alexei Romanoff (1):
      8124266 (PUP-1246) Fixed hiding error details in fileserver.conf parser

Anderson Mills (1):
      6c4539c (PUP-759) Remove reference to ca_days in ca_ttl default

Andrew Parker (134):
      9f0fbb3 (#23373) Update acceptance test to use config set
      625b3dc (Maint) Allow specifying tests to run to rake task
      6505d15 (#23373) Allow basic control of puppet.conf
      e4b7556 (#23373) Remove duplicate config file parsers
      056f65b (#23373) Pull apart ConfigFile and IniFile
      024df99 (#23373) Support selecting the section
      39f54e8 (#23373) Have config parsing use IniFile's sections
      3ffabc7 (#23373) Provide a more structure config file parse
      1285d40 (#23373) Pull apart settings into a few more classes
      00c2abf (#23373) Add section control to the config print action
      3b486fb (#23373) Reuse existing section headers
      ce6b415 (#23373) Check for minimal use of [main]
      6f2c833 (#23373) Don't set metadata when it isn't supported
      53a4203 (#23373) Use puppet config set in tests
      2ad6b8d (#23373) Don't apply all metadata
      9059da0 (Maint) Remove unused code
      1b26c11 (#23373) Restore 'all' functionality
      e195de6 (#23373) Only parse section lines once
      69ad509 (Maint) Fix deprecation message to point to the right alternative
      da5d5a2 (Maint) Revert including augeas
      2307946 (PUP-665) Allow settings to be undefined
      e25be73 (PUP-665) Setting nil reverts to default
      330ce17 (PUP-665) Don't call hooks unless absolutely necessary
      8f5a575 (PUP-986) Update references to point to Jira
      a595118 (PUP-1246) Update tests to show line numbers
      f879dbc (Maint) Remove duplicate test
      13fcb1a (maint) Update test to work on non-UTF-8 systems
      f5b2a41 (PUP-672) Add acceptance test for trusted data
      d0c6e41 (Maint) Remove use of mocking
      c320f65 (maint) Require json for logstash test
      46f3300 (PUP-672) Add nested context capabilities
      8841654 (maint) Log exception using log_exception
      3383996 (PUP-672) Add defaults for context lookups
      a80015a (PUP-672) Track trusted information using the context
      a706fa3 (PUP-672) Provide certificate extensions as trusted data
      5f7fc89 (PUP-672) Updated test to match trusted data structure
      747076f (PUP-1068) Add basic auth to HTTP Connection
      3c67f61 (PUP-716) Fix up YAML specs
      2699ca9 (PUP-716) Fix up watcher spec
      b4b18e1 (PUP-716) Fix up all of util
      5d26652 (PUP-716) Fix up the type tests
      3acea26 (PUP-716) Fix up transaction tests
      3d03292 (PUP-716) Fix up tests in ssl dir
      47238bd (PUP-716) Add Memory based file impl
      56fb51b (PUP-716) Re-add memory impl
      c342ede (PUP-716) Change back to stubs from mocks
      ff429b6 (PUP-1151) Specify JSON and error responses
      3a68c73 (PUP-1151) Have puppet depend on json
      828a759 (PUP-1151) Move HTTP Errors to own module
      2e9d8dd (PUP-1151) Authorize v2 api requests
      1e04f6e (PUP-1151) Hard code return of only production environment
      fc42c64 (PUP-1151) Inject source of environments
      7cdb196 (PUP-1151) Add access to environments in auth.conf
      6dcd9b1 (PUP-1151) Ensure that json is installed for tests
      2e7ba15 (PUP-1151) Consolidate JSON schema validation
      8142d09 (PUP-1151) Convert to cygwin paths on windows
      4810aeb (PUP-1118) Fetch the environment's manifest & modulepath at init
      bdce683 (PUP-1118) Introduce "create" to make specific environments
      58a6cc5 (PUP-1118) Provide context at initialization for environments
      23fb77f (Maint) Alias TESTS as TEST
      abdb04a (PUP-1118) Remove use of Environment.current
      03fea79 (PUP-1118) Move global context methods to Puppet
      f716cf7 (Maint) Mark new context methods private
      898b660 (Maint) Unravel require of forge code
      76c064f (PUP-1118) Add check for getting multiple environments
      ecb317b (PUP-1118) List environments from a directory
      f40365a (PUP-1118) Load full environments from a directory
      ba6e5ab (PUP-1118) Simplify Puppet::Context
      757505b (PUP-1118) Create a new context after app initialization
      4b30d16 (PUP-1118) Make environments readable by puppet master
      1b9cf6f (PUP-1118) Document Puppet::Environments
      8781d0d (PUP-1118) Move root environment to Context
      5d6f48d (maint) Only load yard tasks if yard is available
      255d381 (PUP-1151) Respond with 404 when path not known
      e70300f (PUP-1118) Ensure there is only one *root*
      d474c2e (PUP-1118) Add acceptance test for using directory envs
      5c988b9 (PUP-1118) Stop using Environment.new
      b439bb8 (Maint) Remove dead port code
      3c4669d (PUP-1118) Convert environment for nodes on load
      1ca7c2c (maint) Remove warning added during debugging
      181d56c (PUP-1549) Use standard reason phrases on webrick
      655ace5 (PUP-1549) Update documentation showing reason phrase
      8bab12e (Maint) Extract re-usable resource matcher
      83c0eff (PUP-865) Allow BlockExpression to evaluate everything
      dae56db (PUP-865) Only use the pops merge for the future evaluator
      4d408df (Maint) Clean up tests
      f8ceaa0 (Maint) Remove documentation rspec output
      8384c50 (PUP-1470) Add test for new behavior
      ae24299 (PUP-753) Benchmark puppet compiling w/many modules
      f1d6683 (PUP-753) Profile the many_modules benchmark scenario
      61cffab (PUP-753) Extract benchmark impl into file
      2a6b1c7 (PUP-753) Generate scenario tasks from filesystem
      cac434a (PUP-753) Include a minimal metadata in each module
      5b2f99c (Maint) Remove unused dependencies
      b3c5ca8 (PUP-753) Use correct format constant on 1.8.7
      a36d369 (PUP-753) Remove duplicate calls to setup
      6f24451 (doc) Point to the local docs
      fe16ed6 (doc) Create a quickstart guide to get people going
      6e1c325 (doc) Extract sections of README_DEVELOPER
      22e6b07 (doc) Remove remaining developer docs
      e978330 (doc) Explain some basics for profiling puppet
      9dbbdbe (PUP-753) Write a JMeter CSV log
      a5ee135 (doc) Stop using non-words
      05e1036 (doc) Clarify use of --profile
      fac2f11 (doc) Point readers to how to run acceptance tests
      770194f (doc) Update rspec examples to show desired style
      a8391b5 (PUP-753) Add task to run/profile all scenarios
      56bdffc (PUP-753) Write times in millis
      ba5a68f (PUP-753) Benchmark system startup
      1c0e54c (PUP-649) Use class instance variable
      48c8152 (PUP-649) Loosen checks for crontab provider
      0b64460 (PUP-751) Check for reparse once per compile
      0412515 (maint) Optimize adding tags
      40c315b (maint) Use JSON for parsing metadata.json
      f854342 (maint) Remove String check
      018e2b4 (maint) Reduce calls to settings
      c129f40 (maint) Hold token name in local variabel
      c8c1ea5 (PUP-751) Benchmark defined resource types
      13ab9b4 (PUP-751) Preserve environment across resource copy
      69d03c8 (maint) Fork for each scenario
      0729c99 (PUP-751) Ensure resource knows it's type
      1e6a373 (PUP-751) Fix resource_type to check for changes
      413a733 (Maint) Ensure there is a fully ruby env
      c7e3697 (PUP-1678) List environment settings instead of modules
      601c76d (PUP-1678) Provide valid, standard source URIs
      cad535d (maint) Remove desc for generate tasks
      637dd61 (maint) Detect reparse when :code changes
      5207eba (PUP-542) Test the gamut of mutation
      5455b53 (PUP-1839) Flush cache when setting value
      7e836e5 (PUP-1839) Re-deprecate set_value
      c967d63 (PUP-1839) Introduce overridden defaults
      e2fee27 (PUP-1839) Override settings by just assigning
      73c53bb (PUP-1885) Stringify ignores for file serving
      495efc7 (Maint) Remove some duplication in tests

Ashley Penney (7):
      ce83c66 (PUP-1066) Add the ability to delete files. Add a .destory and .destroy? in order to flag files for deletion. We also sneak in a .entries reader in order to let us read the entries directly.
      7b8650e (PUP-789) Break yumrepo into a type/provider.
      8f4d73f (maint) Remove the noop check here, we don't allow flush to be called when noop is set.
      0263cab Ensure that section cannot accidently return nil.
      dd5d3e1 (maint) Added Yarddoc documentation.
      601b0fa Replace .select! with delete_if for ruby 1.8.7
      747a62f (maint) Switch from an .each to a .last so we don't repeat ourselves.

Bart ten Brinke (1):
      8408ac0 (PUP-1447) Added unless_uid option to User Resource management.

Bert Hajee (1):
      fcfe176 (pup-899) Add deprecation message for use of parent in new type

Branan Purvine-Riley (1):
      5aca376 (PUP-1677) Fix tests for PE compatibility

Brandon High (5):
      91ebb1f Fixing HTTP API link formatting
      9ed39df Adding link to LICENCE
      c1d1060 LICENCE is not a .md
      36ef118 Spelling LICENSE correctly
      3127da4 Updating copyright years in LICENSE

Carlos Sanchez (1):
      f9bcdf6 (PUP-1350) keep original stacktrace when error happens parsing inline template

Charlie Sharpsteen (3):
      0b84445 (#21869) Fix recursion in cert expiration check
      f2801ca (DOCUMENT-22) Clarify matching of crontab entries
      2968a45 (PUP-1564) Add uninstall_options to RPM provider docs

Dan Lidral-Porter (19):
      35ada47 Add vagrant testing guide to acceptance/README.
      a08de79 (PUP-1151) Environment enumeration authorization test.
      ecddcc5 (PUP-1151) Factor out v1 HTTP request processing into own request processor.
      3f0c113 (maint) Get rid of http handler's initialize_for_puppet method.
      5189d6e (PUP-1151) Add routing framework.
      7ac514e (PUP-1151) Add a 405 error class to http handler
      bf002ce (PUP-1151) Change Route matching semantic specs.
      64b9d96 (PUP-1151) Implement Route changes.
      32e54bd (PUP-1151) Add documentation for environments endpoint
      64b7629 (PUP-1151) Fix environment enumeration endpoint test
      6c54310 (PUP-1404) Add tests for execpipe locale setting
      6551e50 (PUP-1404) LC_ALL test to actually tests LC_ALL
      0b1f4bd Don't run LANG/LC_ALL tests on windows
      fcf482a (PUP-1404) Don't swallow execpipe tests on windows
      5a5f0d3 (PUP-1432) Add V2 API structured errors.
      7ce5d10 (PUP-1432) Move JSON error ser8n to error classes
      208f6e9 (PUP-1432) Fix error JSON schema
      a8e9358 (PUP-1432) Add error spec that tests serialization
      f44bca4 (maint) really fix the execution locale test

Daniele Sluijters (1):
      a690fef (PUP-1470) Make mk_resource_method with false.

Derek Yarnell (1):
      6a5adf0 Adds support for building puppet on RHEL7 via spec.

Dominic Cleal (5):
      0d0c999 (maint) Add ruby-augeas to Gemfile and Travis for more test coverage
      c35ae4f (PUP-1158) Only output load warning when file given by user has an error
      654438a (PUP-1722) Permit HTTPS and FTP protocols in yumrepo
      b5b96cf (PUP-1735) Reimplement deprecated Puppet::Node::Environment.current
      0a09175 (PUP-1905) Split modulepath when supplied as an override from CLI

Eric Sorenson (3):
      1c4fccd (maint) Update README.md for support clarification
      3bdb35c Fix trailing whitespace, add EOL clarification
      38db379 Wording tweaks from review feedback

Erik Dalén (16):
      32b1f61 (#16570) Don't load the node object again in configurer
      8fc9544 (maint) remove dead code for indirector cache
      4a89dcf (PUP-1490) Support --test option for puppet apply
      446f39e (PUP-1484) Fix serialization of TagSet
      abcfc8d (maint) Fix error message in reduce function
      b349e7d (maint) Add optional_parameter_count method to Closure
      4acaafb (maint) Fix syntax error in example code
      39c2fdf (maint) Change name from from_pson to from_data_hash
      3c892bf (maint) Deprecate from_pson methods
      346bebe (maint) Unify to_pson in FormatSupport module, just like with to_msgpack
      faa3978 (maint) Simplify msgpack format code
      fb6c03b (PUP-1588) Add msgpack indirector terminii
      dcd63c1 (maint) Make msgpack feature do the correct requires
      411e8fd (PUP-1451) Make SSL file permissions a bit more relaxed for public files
      cffffb2 (PUP-1670) Add validate_cmd parameter to file type
      828e581 (maint) Add to_data_hash on Puppet::SSL::Base

Ethan J. Brown (16):
      262f5b4 (maint) Report errs correctly on settings apply
      107271b (maint) Windows file provider :links => :follow
      ba09bfe (PUP-1133) Windows tests write config to temp
      776767c (PUP-1133) Reset permission on Windows test files
      d758620 (PUP-1133) Clean up leftover parser generate temp
      3e00466 (PUP-1133) Cleanup Windows symlink
      187e047 (PUP-1133) Cleanup after Rails temp log files
      403a9a3 (PUP-266) Ensure ADSI Group SIDs may be looked up
      d17b938 (PUP-266) Puppet manages group and owner on config
      ce904cf PUP-1494 - Remove Windows iconv from colors.rb
      9fa4a39 (maint) Puppet fails to properly surface backtraces
      b7c10f5 PUP-1494 Guard against Win32 memory corruption
      923a766 PUP-1450 Windows file resource Invalid DACL errors
      ee34bf9 PUP-1450 Honor source_permissions_ignore
      580a1ce (PUP-1559) Ensure ADSI Group SIDs may be looked up
      857291e PUP-1681 Stat doesn't expose correct mode on Win

Felix Frank (17):
      a838929 (#7659) add a test for puppetdoc in the presence of hash literals
      90e103f (#7659) add more tests for possible hash use syntaxes
      dac92a0 (maint) cron: Make the munge method for the command property more readable
      5a5bd36 (#3220) crontab: allow purging unmanaged resources
      5645ba2 (#3220) make sure that generated cron resources belong to the correct user
      fd200e6 (#3220) fix a cron testing quirk with potential benefits for normale operation
      3957d38 (#3220) make the unit test "generating cron resources" match the new behaviour
      f098f2e (#3220) save overhead in cron type unit test and add cleanup
      977aacf (#3220) uniquify implicit record names
      39f2015 (PUP-1327) add the file attributes owner, group and mode to nagios types
      ffbf6b3 (PUP-1327) simple unit test for the new nagios parameters
      ede7cf4 (PUP-1327) integration spec for the nagios type
      1ee89b7 (PUP-713) cron: forbid the mixing of special and numeric schedules
      75766d5 (PUP-713) Add tests for the special property of the cron type
      c54a95d (PUP-1220) apply proper scoping rules to scope#to_hash
      29cff9d (PUP-1220) make the dynamic scoping fix for #22800 flexible
      51b8731 (PUP-1220) optimize template scoping fix

Gavin Williams (1):
      ad2b5ea (#23316) Update yum package provider support :holdable

Glenn Pratt (2):
      d6f67ea (maint) Fix unused argument and variable in file_spec.rb
      488bcc2 (PUP-1150) Fix race condition in Puppet::Util::Lockfile.

Guillaume Virlet (1):
      c9b51eb (PUP-1404) execpipe resets LANG and LC_ALL

Henrik Lindberg (340):
      38198f6 (#22363) Add [] method to PPatternType to create regexp.
      3110458 (#22363) Extend type system with PHostClassType and PResourceType
      120774f (#22363) Add type parameter to PType
      9305ffa (#22363) Add abstract type PCatalogEntryType
      f1eab08 (#22363) Remove super type from PHostClassType
      c0591c2 (#22363) Add [] type operation to subtypes of PCatalogType
      ff551b5 (#22363) Add test of capability to create array of types using []
      43c7b3e (#22454) Fix partial shadowing of match variables.
      2a3d619 (maint) Remove unused ephemeral?(name) from scope.
      ff5be26 (#22363) Add "future evaluator"
      8dbd865 (#22363) Add variables tests and fix evaluation implementation.
      9788ff3 (#22363) Remove defunct testing of type operations
      74278bc (#22363) Add Integer[from, to, step] feature to produce array
      e5fcabe (#22363) Fix typos in test example titles
      253fc14 (#22363) Add evaluation of conditionals test and fixes
      a66b923 (maint) Cleanup Scope impl from unused methods & test specific code
      709b843 (#22363) Add examples for match result variable shadowing
      0ccf3c9 (#22363) Add tests of Block, and Array/Hash +, -, and << operators
      34f10b5 (#22363) Add support for -= operator (validate as error in puppet 3).
      3c1c376 (#22363) Add validation test for -= (UNSUPPORTED_OPERATOR) in Puppet 3
      d1bd7e7 (#22363) Add examples for -= and += (parser) and fix issues in evaluator
      51ef75e (#22363) Add evaluation of calls / lambdas
      299b324 (maint) Remove TODO comment (fixed thing), and yardoc text typos
      28ccec2 (perf) Add optimized versions of Visitorv.visit_this_n
      35807f6 (perf) Change TypeCalculator to use optimized visitor calls.
      89bc985 (perf) Make lexer 30% faster
      37c602c (perf) Add Lexer2 - a faster Lexer replacement
      872f0d7 (#20516) Add support for epp templates in new lexer
      39e097b (maint) Improve output from match_tokens2.
      4adaaf7 (maint) Fix problem after adding flag to respond_tp? call
      2989f40 (maint) Move Lexer2 to the correct namespace (Puppet::Pops::Parser)
      1a54491 (perf) Make future parser use new faster lexer
      7770c23 (maint) Add test examples for nested naming of classes
      3765069 (maint) Fix parsing hostnames containing '.' as sequence instead of name
      fd7525c (#22962) Remove alternative lambda syntaxes from tests
      02e9223 (perf) Speed up containment calculation by 2x
      cd7f8ad (maint) Allow any expression as hash key in parser
      a0bca5e (maint) Improve handling of loc/sourcepos calculation in parser support
      8ca589f (perf) Include perf benchmark for parse + validate
      8a154ab (perf) Make location calculation lazy and pass all tests
      4b3438d (maint) Remove dead / unused and broken code in Factory
      a930dbf (maint) Add use of new evaluator in specialization of EvaluatingParser
      07b39dd (#22363) Add parse / validate / evaluate tests, fix evaluator issues
      0859519 (maint) Fix indentation
      d9be82d (maint) Add missing DELETES token in grammar
      01b5296 (maint) Cleanup comments
      68f7272 (maint) Remove unused file CallOperator
      ada7756 (maint) Protect against endless recursion if user calls with wrong type
      f61cdde (#22363) Change evaluator error reporting to use Pops::Issues
      6f45d1c (perf) Move all behcmarks to one unit test and exclude it with filter
      f61569a (perf) Make small performance improvement to validation
      40ded61 (perf) Make small performance improvement to assignment validation
      2dba6bf (maint) Fix issue after optimizing validation calls; renamed var
      563554a (maint) Remove unused model class LiteralText
      aebf6b2 (#22363) Refactor model of literals
      6fbc1ef (#21874) Apply making name[x] and name [x] different.
      04fe41e (#22363) Add Puppet 4x validator & tests
      52ca43b (#22363) Add tests for evaluation of types
      eafaec2 (#22363) Make if, unless, case be rvalue producers
      bb39e91 (maint) Remove unused cruft from pops model
      8a4de7a (#22363) Add top level Program model, and add pops AST bridge
      f523ac8 (#22363) First wiring of new evaluator to parser factory
      acb7f73 (#22363) Fix typos, missing methods
      86d6f53 (#22363) Add evaluation of Resource Expression
      0f3a988 (#22363) Fix issues relating to handling of undef and "to_s"
      ff5c140 (#22363) Add impl of evaluation of resource defaults and overrides
      775d209 (#22363) Add lookup of resource parameter value
      5b3fec7 (maint) Remove unused OptionalAttributeOperation
      29ecb43 (maint) Clean up stale comments
      fb6a1ee (maint) Remove unused constructs and use faster polymorph calls
      1cdea27 (maint) Remove support for hyphen in name in lexer2
      ac6a8d2 (#22363) Add support for evaluation of CollectExpression.
      c3e089f (#22363) Make selector and case use same equality as for '==' operator
      8779a40 (#22363) Remove unused datatype_reference method in evaluator.
      ea3d6ac (maint) Remove stale TODO comments
      60bf2af (#22363) Remove the support for applying [] operation without arg(s).
      78a7270 (#22363) Refactor name of Puppet::Pops::Evaluator::Lambda to Closure
      9f1a1ae (maint) Cleanup unused code and fix comments
      f88ab81 (maint) Delete reference grammar.ra
      aaf2d91 (maint) Add TODO comment about \u handling in string quoting
      1ce685e (#22363) Improve handling of PNilType
      19d2c2b (#22363) Add missing support for Numeric type
      f944fc2 (#22363) Correct failing test that relied on fixed bug for Type[Undef]
      450dd9e (#22363) Make interpolation use string_ for all runtime types
      09b7115 (#22363) Add test for interpolation string conversion undef / default
      1713df3 (#22363) Add more String interpolation tests
      050314a (#22363) Remove ablity to apply operator % to floats
      e37a98b (#22363) Add test that shows negaice shift reverses direction
      edf5e8e (#22363) Add test that false != ''
      8f6f9fb (#22363) Remove support for compound assignments
      aa234c0 (#22363) Make Integer[from, to] work as a Range type
      b5f900a (#22363) Add test for Integer type to string
      57c869d (#22363) Add Integer range inference test
      60dc68c (#22363) Add test of instance? for integer range
      7b28eaa (maint) Remove dead code/comment
      39acf01 (#22363) Fix problems in TypeParser
      81e85da (#22363) Fix problem with reversal of compare <, > of types
      ac7618d (#22363) Fix issues with type comparisons
      9c5b4af (#22363) Add additional Integer range tests
      2ddb879 (#22363) Add capability to match against Type
      463ce09 (#22363) Make access with [] also work for class parameters
      b610a28 (#22363) Make test for [] on Class to get parameter really work
      8298f4b (#22363) Handle failing tests due to renamed collect/map
      37a3011 (#22363) Rename box_numeric to coerce_numeric
      8319670 (#22363) Port use of FileSystem to Lexer2
      d057f61 (#22363) Add strict variable lookup mode
      ee46b7b (#22363) Add test that literal type can be interpolated
      7c7bc58 (#22363) Add tests for [] without keys and unsupported LHS => error
      0a4e52e (maint) Refactor evaluating parser tests
      63ea50e (#22363) Add relationship test
      f99fc7d (#22363) Fix problem with integer string to Integer on Ruby 1.8.7
      5604115 (#22363) Make string and array access operation work as specified.
      54300d9 (#22363) Fix failing tests on Ruby 1.8.7
      aef7e43 (#22363) Refactor Type system, add Enum, Regexp, and Variant
      8d1d883 (#22363) Add alternative Visitor impl that may prove faster
      647a76a (#22363) Add validation of case and hash.
      1f31e7e (#22363) Add additional rvalue checks to if, unless, and literal list
      ba4ced2 (#22366) Fix model building of CollectExpression
      1fa7110 (#22365) Add validation of select expression
      f9343fd (#22363) Improve error messages for division by 0 and infinity
      20ae071 (#22363) Produce meaningful output for all runtime errors
      c64c1c1 (maint) Error with file set to "" should be taked as file is not known
      6921bcb (#22363) Fix problems with undef equality & problems from added tests
      6c4f052 (#22363) Make queries work with future evaluator
      ab509d9 (maint) Remove call to debugger
      826c157 (maint) Remove debugger call
      231ddaa (#22363) Make compilation work using new evaluator
      c88d587 (#22363) Make errors for illegal Class[x] references better.
      7a6a7d8 (#22363) Add compiler integration test for future evaluator
      7d1ed7b (#22363) Improve validation of names and variables
      3ec41e2 (#22363) Improve error for Class[File['foo']]
      7d3b22b (#22363) Fix failing test (typo in regexp).
      dca73e6 (#22363) Remove support for extract type and title from type calculator
      dfedea7 (#22363) Add file/line when creating resources and parameters
      d91ec64 (#22363) Add file/line information to resource operations
      a93904b (#22363) Make hash lookup agnostic for nil/undef lookup
      5ab367f (#22363) Add test to assert that hash lookup miss == undef
      0bf0e62 (#22363) Add label.plural support to LabelProvider
      6173265 (#22363) Improve label provider
      c37da60 (#22363) Improve error messages from [] operator
      96862df (#22363) Add support for Float range.
      e4e4a57 (maint) Fix failing tests after rebase to latest master
      82300dc (maint) Raise exception when reaching corner case of code merge
      fa18883 (maint) Remove calls to debugger in performance / serialization tests
      7e83025 (maint) Fix indentation in benchmark_spec.rb
      b2e845f (maint) Fix typo of o-diaresis char in comment
      fe9112d (maint) Fix indentation of attr_reader
      5f2281b (#22363) Add description of iterating an enumerable type with each.
      66fce66 (maint) Comment out unreachable code in pops bridge
      facef51 (yardoc) Fix typo in source pos adapter yardoc.
      4406e45 (yardoc) Fix stale yardoc for Resource [] operator
      16c9097 (#22363) Remove validation of relationship expressions
      1d121c3 (maint) Fix stale comments and remove commented out code.
      718ebc4 (#22363) Fix problems from changed validation of relationships.
      4707539 (#22363) Fix faulty references to Puppet::AST
      987b8ea (maint) Move require pops_bridge to pops.rb
      ef3309e (pup-954) Correct flaws in the Pattern Type implementation
      4ad3536 (maint) Fix type calculations for Variant
      f5d0880 (pup-954) Fix issues with typesystem's handling of inference.
      c502975 (pup-954) Fix failing test for Ruby 1.8.7 (hash entry order)
      f6b77cc (PUP-992) Add support for Array as operand in relationships
      26da689 (PUP-994) Ensure relationship operands have uniq content
      b766960 (PUP-490) Remove partial import-support from future evaluator
      f09ea59 (PUP-490) Remove partial support for import (the sequel)
      dbdbde2 (PUP-866) Deprecate Import
      9ce3dca (PUP-490) Remove comment that mentions "import" from transform_calls
      69d4f56 (PUP-490) Remove dead code after removal of ImportExpression
      32197e7 (maint) Fix typo in example title
      07abcba (PUP-954) Remove commented out debugger breakpoint
      341bb39 (PUP-865) Add ability to parse a directory of manifests
      9cde175 (PUP-865) Change name of shared test group to one not already claimed
      0dacd1e (PUP-865) Update defaults text for :manifest to show use of directory
      32bae2d (PUP-864) Add deprecation warning for mutation of array/hash
      08e490a (PUP-939) Add ability to filter an enumerable type.
      fdcee69 (PUP-939) Update documentation of filter function.
      4d7a26e (PUP-939) Add support for enumerable type in reduce function.
      bff9f8a (PUP-939) Add support to iterate over enumerable type in map function
      58e885c (PUP-939) Add support for enumerable type to slice function.
      09a44c6 (maint) Fix "should_not_reassign" acceptance test for future parser
      fbdc1cf (maint) Fix future parser inability to parse virtual class instantiation
      513ece6 (maint) Add Issue for reassignment of variable
      65e4739 (maint) Move 'jeff_append_to_array' from acceptance to integration test
      a475153 (maint) Make integratin/scope_spec run for both current & future parser
      e07333c (maint) Fix issue with dumping a future evaluator Expression
      a07ee79 (maint) Fix dumping of ast (PopsBridge::Expression).
      71e9217 (maint) Fix flawed test for future evaluator
      1741f32 (maint) Fix problems with scope bound? and exist? methods
      f11b917 (maint) Fix issues in runtime3 support for future evaluator
      1659b26 (maint) Fix various issues with +=, -= in future evaluator
      8a68b3d (maint) Differentiate between re-assignment and reserved var assignment
      1d9692d (maint) Make [] operator flatten keys for all LHS types except hash.
      8c8e101 (maint) Fix failing test for access operator since array is now ok
      bc4d7b9 (PUP-910) Convert args from 4x representation to 3x
      7d1cf4c (maint) Make 3x conversion use verbatim types for non Host/Resource.
      29b705d (maint) Make Resource::Type use the CodeMerger strategy
      9efd726 (pup-546) Remove hiera2 support from binder
      11be2bf (pup-546) Remove automatic injector lookup for class parameters.
      3937029 (pup-546) Remove hiera2.rb (central file with require's for hiera2)
      c494b1e (pup-546) Update default.rb and remove mention of hiera2
      a223088 (PUP-546) Replace lookup function with something useful
      16909de (PUP-546) Fix problems with lookup after removal of hiera2
      3215d45 (maint) Provide option to 4x->3x convert to handle :undef differently
      6b5b08b (PUP-798) Add call to watch_files to ensure reparsing
      48c73a2 (maint) Add Optional Type
      092ee00 (maint) Add support for Optional in TypeParser and TypeFactory
      bff6ed3 (maint) Make handling of undef more strict as a type
      8590720 (maint) Make injector accept undef/nil when doing type checking
      3d1ddf1 (maint) Fix several issues with type system implementation
      fa4e64e (maint) Add support for creating the PType (metatype) in type factory
      860b0d0 (maint) Add support for Type[T] in access operator
      a702bb8 (maint) Add test of Type[T] access operator.
      cda3993 (maint) Add support for Type[T] in TypeParser
      eb0196d (maint) Add support for Ruby['classname'] in access operator.
      335278d (maint) Add test for Ruby['classname']
      5614f21 (maint) Add support for Ruby['classname'] in type parser
      f8cb0ce (maint) Add support for Collection[<size constraint>] to type parser
      4250646 (maint) Correct assignable? for Type without type parameter
      a430cbc (maint) Add test for Type[Type[x]] instance? operations
      be0cebf (maint) Fix inconsistency when case option is a Type.
      93b43a0 (maint) Remove support for categories in the binder
      44ac0e3 (yardoc) Fix yardoc text for Injector and BindingsFactory
      b94a4aa (maint) Refactor Binder to not use two step creation.
      5c48b2f (maint) Cleanup spec tests after refactor of binder one step create
      091730d (maint) Add support for final binding
      255df4e (maint) Add handling of layered multibind
      de12ade (maint) Add convenient create/override ability to Injector
      6fccece (PUP-1176) Add evaluator feature switch for future/current evaluator
      0b401fc (PUP-1176) Add feature switch for evaluator to ParserFactory
      33b3920 (maint) Fix typo in documentation for --parser and --evaluator
      c2446db (PUP-1144) Make future parser accept $_private
      1304a33 (PUP-1144) Fix up failing tests (pending new/better validation)
      ae9d4f9 (PUP-1144) Make variable name checking stricter
      ca3adc4 (PUP-800) Add offset and length to Locatable base class in model
      fecccb3 (maint) Remove stale commented code
      f49b9ce (maint) Fix up type parser's handling of String
      938b4e7 (PUP-716) Change Puppet::FileSystem::File to module methods
      4592401 (PUP-716) Change more tests after refactoring
      b5d8439 (PUP-716) Make more tests in fileset_spec pass
      268483c (PUP-716) Fix up fileset_spec (1 failing test remains)
      0e02e6b (PUP-716) Fix up content_spec.rb
      0180757 (PUP-716) Fix up metadata_spec after refactored FileSystem changes
      a96e7f2 (PUP-716) Refactor and mae file_system/file_spec green
      2cdcce4 (PUP-716) Refactor tempfile_spec after FileSystem API change
      f28781c (PUP-716) Fix up base_spec tests after FileSystem API change
      7c0d051 (PUP-716) Fix reference to removed FileSystem::File
      dae0a9d (PUP-716) Fix typos after change of FileSystem API
      45a7fd2 (PUP-716) Fix reference to FileSystem::File in implementation
      e9d2c99 (PUP-716) Remove references to FileSystem::File in non code
      3aa4c98 (PUP-716) Fix up direct_file_server_spec after FileServer API change
      b79bcfa (PUP-716) Fix up file_server_spec after FileSystem API change
      1970b55 (PUP-716) Fix up json_spec after FileSystem API change
      25d7156 (PUP-716) Fix up ssl_file_spec, yaml_spec after FileSystem API change
      09a4d48 (PUP-716) Fix up unit/network specs after FileSystem API change
      897f317 (maint) Add () around potentially problematic Ruby expression
      6d3075c (PUP-716) Fix up FileSystem API change, tests indirector, parser, node
      6574ecc (PUP-716) Fix up tests after FileSystem API change
      28e63af (PUP-716) Fix up tests after FileSystem API change (unit/provider)
      eec0c81 (PUP-761) Fix issues with unit/indirector/key/filespec FileSystem API
      e15cae8 (PUP-761) Make most FileSystem API change related test pass
      1959c1a (maint) Remove unused file_system/file.rb
      3649986 (PUP-761) Fix integration tests after FileSystem API change
      f880bb7 (PUP-800) Clean up and improve handling of location / position
      207bb32 (PUP-716) Fix issues found in review (mainly typos)
      d584977 (PUP-1212) Fix uninformative stack backtrace in evaluator errors
      ca995cc (maint) Correct documentation of each function
      3d55fa9 (PUP-1212) Add stacktrace to all evaluator issues
      df859f8 (maint) remove dead code in scope_spec
      02878e8 (PUP-1166) Add better error message when turning on strict_variables
      efa9eef (PUP-1529) Make squelch of parse error use context instead of global
      424ce15 (PUP-1579) Rename the Literal type to Scalar
      df159e2 (PUP-1029) Add Enumeration - common place to produce an Enumerator.
      70eb5d9 (PUP-1029) Make filter function use common Enumeration support.
      720059c (PUP-1029) Make map function use common Enumeration support.
      fef9f01 (PUP-1029) Make each function use the Enumeration support.
      0ef996b (PUP-1029) Make reduce functon use common Enumeration support.
      09bfbcb (PUP-1029) Make the slice function use the common Enumeration support.
      253866c (PUP-1029) Fix problem with class Enumerator btw. 1.8.7 and 1.9.3
      ba8199d (PUP-1029) Fix problem with Enumerator for String chars on Ruby 2.0.0
      da6f08a (PUP-1029) Make map function consistent with others
      34bf008 (PUP-1029) Update documentation of map function
      36ec72d (PUP-1619) Add first impl of working Tuple Type
      9c3068a (PUP-1619) Fix problem with parsing Tuple
      690f029 (maint) Add Array type size constraint test
      731d2ba (PUP-1619) Add more tests of Tuple Type
      c527b94 (PUP-1619) Make Tuple a subtype of Data when its elements are Data
      b9840e5 (PUP-1619) Add support for a Struct Type
      e372a34 (PUP-1619) Accept missing struct keys if type for key is optional
      8c27513 (maint) Fix issue with type_of not handling Optional type
      e93ac60 (maint) Correct indentation in type parser
      dbdff13 (PUP-1619) Add support for Struct in Type Parser
      d5c26fe (PUP-1619) Add tests and fix issues in type parser
      8952cdb (maint) Fix regexp with unescaped { causing warning when running tests
      e1d378d (PUP-1619) Fix problems with Ruby 1.8.7 Range min/max & Infinity
      d2cfada (PUP-1619) Fix typo in Tuple instance_of logic
      5b8e79a (PUP-1619) Add instance? tests for struct and tuple
      96fc0cf (maint) Add missing class method instance? to TypeCalculator
      e79d999 (PUP-1029) Improve error message consistency and information
      e0240fe (PUP-1592) Speed up loading of user defined types by 2x
      5801c89 (maint) Remove stale comment about shortened list in http_environments
      e7b6d9f (maint) Make setting not screw up when interpolating a false value
      8ccb392 (PUP-542) Add structured facts to immutable $facts
      b51c12b (PUP-542) Improve descriptions of trusted & immutable node data settings
      bf84e35 (maint) Add test for interpolation of setting having false value
      56521b7 (PUP-542) Make tests pass on 1.8.7 ('hash' vs 'Hash' in message)
      6fc7d25 (PUP-1576) Make hyphen in bare words legal (future parser)
      8c7cc30 (maint) Fix typo in unicode escape in future lexer
      a3befa0 (PUP-1144) Improve handling of underscore in variable names
      95a3a09 (PUP-1814) Make double backslash in sq string behave as documented.
      2f8428c (PUP-30) Add foundation for heredoc and epp (parser and model)
      f409405 (maint) Add eAllContainers enumerator to Containment
      420edbd (PUP-30) Add SubLocatableExpression to handle "embedded" expressions
      e93eeaa (PUP-30) Add support for the SubLocatableExpression
      74873c4 (PUP-30) Add SUBLOCATE token to lexer to communicate subspace
      6e81e03 (PUP-30) Complete implementation of sublocated expression
      022fe3d (maint) Fix issue when issure report was called without issues
      c9f4c58 (maint) Fix missing argument in BindingsModelDumper
      e13941e (maint) Speed up External Syntax Check if there are no errors
      be64496 (PUP-30) Add tests for heredoc at parser and evaluator levels
      6f97e45 (maint) Correct spelling in comments
      787d3f3 (PUP-30) Make epp parser emit EPP_START, and generate Program
      e692abb (PUP-30) Add tests for epp parser and make them pass
      2437c17 (PUP-30) Add call-by-value of closure in evaluator
      b72749e (PUP-30) Rename epptemplate and inline_epptemplate to use 'epp'
      95aa2d6 (PUP-30) Complete implementation of functions epp, and inline_epp
      1539c1b (maint) Fix scope.find_global_scope when running tests
      8ac3bd1 (PUP-30) Fix tests and issues occurring when running tests
      b49ccda (PUP-30) Add more tests of epp() function
      d782a60 (maint) Correct name of test for epp function
      2a73421 (PUP-30) Add tests of inline_epp function
      597cde0 (PUP-30) Fix problem with changed behavior in StringScanner.scan_until
      2cba220 (PUP-1895) Change <%( )%> to <%| |%> for EPP parameters
      12849b5 (PUP-1898) Fix broken exception raising when inline_epp gets non string
      a78662b (PUP-1898) Fix reference to ArgumentException
      cffea9c (maint) Remove dead code checking non existing ImportExpression
      b3f8cb0 (maint) Remove dead-code check if ImportExpression is r-value
      edd3e8e (PUP-1897) Allow EPP render expression to render a block
      8a4d1b3 (PUP-979) Fix unparenthesized calls with hash to not give strange error
      a916a53 (PUP-1897) Change epp lexer/grammar to only accept single rendered expr
      323f228 (PUP-1897) Fix failing lexer2 test, and update with additional tests
      ab1ae3c (PUP-1897) Improve test of EPP trim, and expr after params

Iristyle (2):
      c580cd9 Revert "Merge branch 'ticket/master/18342-windows-file-setting-owner-group'"
      ffecc4e (maint) Fix major performance regression in Puppet specs

James Ralston (1):
      f73142e (PUP-2118) (#22330) add btrfs to SELinux filesystem whitelist

Jasper Lievisse Adriaanse (5):
      c6c2c74 (#23141) Add OpenBSD to the exclusion list for 'remounts' in mount type
      87b7299 On systems without "-o remount", use "-o update" except for AIX.
      b69a3e2 (#23376) Add support for ssh-ed25519 keys to ssh_authorized_key type
      fff10ad (PUP-1218) Add ssh-ed25519 support to the sshkey type
      208ca9b (PUP-1218) Teach the ssh_authorized_key provider about ssh-ed25519 too.

Javier Palacios (1):
      c73d590 (PUP-648) Implement upgradeable and versionable on the pkgin package provider

Jeff McCune (1):
      cb55950 (maint) Fix can't modify frozen Symbol error on Ruby 2.1.0

Jeremy T. Bouse (1):
      c6846c2 (PUP-1120) Fix private key permissions for group read

Joe Julian (1):
      218e0f1 (PUP-1563) resolve_install_conflicts excessively recurses

John (JJ) Jawed (1):
      be1e39d (PUP-1665) Fix traversal of signed certs when listing signing requests.

John Julien (1):
      c1a17ff (PUP-1510) Fixed forcelocal bug with ensure => absent

Jonathan Webb (1):
      14e257d (PUP-1421) Remove flawed source validation in package provider appdmg.

Josh Cooper (16):
      40193c5 (PUP-1282) Express Windows specific gem dependencies
      29509c3 (Maint) Fix load order dependency
      1246979 (PUP-1120) Make modes of public ssl directories explicit
      8fb2253 (PUP-1120) Be explicit about group for ssl directory
      f1fed00 (PUP-1120) Remove group write permission for ca settings
      ed2e92b (PUP-1407) Verify that CRL times are within expected ranges
      e32b0e9 (PUP-1407) Verify extensions are still present after revocation
      4b75311 (PUP-1407) Actually test deserialization and CRLReasons
      d65211e (PUP-1407) Fix specs on 187
      5820d4c (PUP-1681) Always go through the native windows methods
      5208c1a (PUP-1707) Ensure puppet man works for all applications
      b6b7906 (PUP-1707) Ensure ERB generated help content is UTF-8 encoded
      e418494 (PUP-1707) StringIO#set_encoding doesn't exist in ruby 1.8
      e117af8 (PUP-1275) Never try to fork on Windows
      3da573e (maint) Remove trailing commas
      9936638 (PUP-1563) Don't recurse when dependencies are empty

Josh Partlow (64):
      62cd3aa (#23373) Fix line number tracking for settings config
      7cc05f5 (#23373) Always open config so we are reading from the beginning
      ff96ef3 (maint) Add an acceptance pre-suite step to set the parser
      96caba1 (maint) Share common acceptance setup
      2b5d183 (maint) Ensure rgen gem installed for future parser tests
      a5a9c01 (maint) Windows ruby commands need a cmd /c prefix
      c9ff5a9 (maint) Move everything out of el6 and into acceptance/
      4ce17f7 (maint) Pin acceptance to beaker ~> 1.2
      6ba2acb (maint) Script package pipeline submission for Jenkins
      2179b4a (maint) Disable repo_proxy when running solaris acceptance
      2479210 (maint) Don't cd to nonexistent el6 directory
      3bba6db (maint) Remove an escaped return char that was breaking solaris options
      caf92e6 (maint) Check --parser setting on the test host
      74bda42 (maint) Switch to setting Beaker log_level to debug
      39d630f (PUP-798) E4ParserAdapter watches files through Environment
      9acfb98 (maint) Uniform use of TypeCollectionHelper in Scope
      37aabc4 (maint) No longer install json gem for future parser acceptance runs
      f7e81b3 (maint) Acceptance test selector tests for a string rather than a type
      959e0cc (main) Remove symlinks from acceptance harness
      260eaf1 (maint) Simply confine test to any platform with Ruby shadow
      7a1a025 (PUP-672) Puppet::Context is immutable.
      d288d68 (PUP-672) Move TrustedInformation into Puppet::Context
      59b13da (PUP-672) Fail fast if pop root of Context stack
      513f5ff Revert "Merge pull request #2207 from jpartlow/maint/master/simplify-confine-for-6857-test"
      1004eae (PUP-724,#21922) Autoload compares only integer secs
      781e579 (maint) Update fedora platform designation for ticket_6857 test
      fa2f6cf (PUP-672) TrustedInformation handles a nil certificate.
      f9b76ae (maint) Improve docs for acceptance ci:test:git from another FORK
      b390fc3 (PUP-716) File19Windows#symlink calls exist? on instance not class.
      33db03f (PUP-716) Assert path before making stat expectation
      c593804 (maint) Reset Puppet::Parser::Functions early in TestHelper.initialize
      f381f2c (PUP-1118) Fix rdoc1 specs to match changes to rdoc puppet_parser_core
      f4b6cc2 (PUP-576) Handle Ruby 2.0 OpenSSL lib error message
      284bbfc (PUP-576,PUP-1064) Update to activerecord 3.2.x to work around a Ruby 2.x issue
      7534bf7 (maint) Acceptance install_utils uses release rpm symlinks
      3ebdccf (PUP-576) Update store_configs test for Debian
      04a657c (PUP-1551) Change environmentdir to environmentpath
      370d5bc (PUP-1551) Rename environmentdir acceptance test to environmentpath
      e17268b (PUP-1551) Use environmentpath in can_enumerate_environments test
      6b9b19c (PUP-753) Use an earlier version of ruby-prof on 1.8.7
      85ffdfb (PUP-753) Constrain ruby-prof solely to the development group
      c65745c (PUP-1574) Environment setting does not override apply/parser manifest
      a2c320c (PUP-1588) Constrain new msgpack specs to only run with msgpack lib
      6a5600f (PUP-1584) Module tool acceptance with_environment tests directory envs
      a07e73b (PUP-1584) module_tool uses current_environment with target_dir overrides
      f3c2d6c (PUP-1584) Be explicit about adding log functions to root environment
      444c333 (PUP-1584) Expand some modulepath settings for windows
      5d7ff32 (PUP-1676) Puppet::Settings retrieves directory environment settings
      9725e5b (PUP-1676) Environmentpath acceptance test uses basemodulepath
      30ee60d (PUP-1676) Allow main as a directory environment.
      0b0a3b6 (DOC) Environments route is v2.0 not v2
      f9a51e9 (maint) Broaden managehome acceptance test on windows 2003
      445c54e (PUP-1678) Puppet::Node::Environment.create expands manifest path
      1df0eb4 (maint) Use with_puppet_running_on in backported cve tests.
      fd0ed3c (maint) Broaden managehome acceptance test on windows 2003
      9088d34 (PUP-1765) Directory env respects cmdline modulepath and manifest
      674bee9 (maint) Match current spec style and usage
      c40941d (PUP-1765) Change assert_not_match to assert_no_match
      c977045 (PUP-1372) Add variable and pops type checks to defined function
      5d49d37 (PUP-1765) Use master ssldir setting with default environment test
      c00e883 (maint) Release hosts to the vcloud pooling api
      a0ae696 (maint) Remove unused rsync for preserved acceptance test reruns
      30aa2be (maint) Pin to Beaker 1.7 and default to preserve_hosts onfail
      ba3b5d9 (maint) Change regex for picking up beaker hosts to match current output

Josh Sharpe (1):
      2292f59 (PUP-1420) Move global StateMachine to Puppet::Zone

Joshua Hoblitt (1):
      e37330f (PUP-1564) add :uninstall_options feature to package rpm provider

Ken Barber (1):
      0e794fe PUP-1772 Change api for Puppet::Util::Profiler#profile to public

Kylo Ginsberg (40):
      157ac49 (maint) Fix spelling in a comment.
      11fd446 (#23141) Fix remount on bsd if options are specified
      a04d428 (maint) Remove obsolete line of code
      5e7ad8b (#23141) Split spec test into two for the two non-remounts scenarios
      cbe63d3 (#23141) Remove Darwin from the list of OSs with the new 'update' support
      e1fde8c (maint) Pin beaker to 1.2.0
      1b112a1 (maint) Fix a comment.
      6494a11 (maint) Fix rdoc generator for Ruby 2.1.0
      3c79f8a (maint) Drop -v flag when untarring acceptance artifacts
      236b87d (maint) Add temp workaround for travis
      b1dfbd2 (maint) Add a diagnostic check that lmhosts is running
      1fa50a4 (PUP-1151) Fix the master port # (thus addressing a failure on windows)
      f2e7760 (maint) Derive path for status.json (rather than fixed offset from cwd)
      a685897 (maint) Fix typo in a RuntimeError name
      22a0032 (maint) Fix typo in spec test description
      44ae495 (pup-923) Add a fedora 20 config
      2f31653 (pup-1505) Switch to using facter.search_external for setting search paths for external facts
      c5162bc (maint) Fix another broken rspec restriction
      2418ebd (pup-640) Update report schema for error events
      6c982a9 (maint) Add how-to for destroying individual hosts
      379c5af (maint) Switch from -fd to -fp for specs to reduce disk space usage
      6d2eeaa (maint) Unset the defaultprovider after caching it
      c87f1fe (maint) Fix typo in spec
      1d52d35 (pup-1636) Add a rhel7 config
      9ffb57a (pup-1636) Add firewall service name for rhel7
      cfdcf76 (maint) Fix two example command lines that were missing 'rake'
      06d5f53 (maint) Add newline at end-of-file under lib
      4bdee68 (pup-1636) Skip enc test on RHEL7
      159a979 (pup-1636) Confine two tests to el5 and el6 which are all the tests are written for
      8b54913 (pup-1732) Report only services from systemd
      8ae792f (pup-1732) Remove the fixture and stub for what *not* to do
      f597f80 (maint) Remove a pending test which isn't pending on anything planned or asked for
      04067ed (maint) Revert to installing facter.git#stable if testing from github
      d5fedb3 (pup-1505) Correct require
      4444551 (pup-1766) Remove duplicate test
      5cc77cc (pup-1766) Add support for multiple defaultfor's
      0b5cbc8 (pup-1766) Set systemd as a default provider for the service type on rhel7
      784b5e6 (pup-1766) Add support for :feature to defaultfor
      d25afca (pup-1766) Break out at first failed match
      079e3ec (pup-1825) Allow use of facter 2.x

Luis Fernandez Alvarez (1):
      7fb721d (#23219) - Fix support of extra arguments in windows service

Marc Seeger (1):
      8a877d8 (maint) Add Ruby 2.1.0 to Travis CI

Matthew Nicholas Bradley (1):
      9c888b6 Correct all misspelled instances of the word occurred

Nick Fagerlund (15):
      9a9bf1b Maint: Be more clear that puppet queue is deprecated
      ef6943c Maint: Add link to list of lenses in Augeas type's lens parameter
      bad6c0e Maint: Catch a notice/notify confusion in a function description
      c052a47 Maint: (#18294) Update docs for ip property of Zone type (allows defrouters since 2.6)
      d74dd9c Maint: Move pkgdmg documentation into provider description; document changed behavior
      5f2dc71 Maint: Remove remaining links to wiki pages in Puppet source
      b915e7f (docs) Update description for Exec type's logoutput parameter
      6d26a20 (maint) Revise and reformat docs for validate_cmd parameter
      a0d87d2 (maint) Scrub whitespace on global setting descriptions when inserting into man pages
      24c8fa2 (PUP-1707) Fix possible gsubs on nil in man page ERB template
      e9c916d (maint) Revise docs for evaluator setting
      641f5ea (maint) Improve Puppet::Util::Docs.scrub's handling of one-liners
      85922de (maint) Typo fixes: repeated words (e.g. "the the")
      ce5d84d (maint) Revise help for puppet config subcommand
      3bd0a26 (maint) Banish "configuration parameter"

Patrick Carlisle (2):
      03734e5 (#20584) Add acceptance test for safer yaml handling in request body
      56c2a36 (#20584) Add acceptance test for safer yaml handling in query parameters

Paweł Tomulik (5):
      a3881a9 Suppress misleading warn. in openbsd provider
      6ba2a7b (pup-1369) Add package_settings property for package
      652f3b2 (pup-1369) Add more specs for package/package_settings
      4ef4e50 (pup-1369) Fixed a bug in package/package_settings
      0e283d8 fix regular expression in ClassGen#is_constant_defined?

Pedro Côrte-Real (2):
      b08f570 Bug 1051 (platforms mistook for versions)
      39a8807 (PUP-1051) Add rspec test to verify fix

Peter Huene (15):
      0bb13a1 (PUP-1492) Fix pacman specs so that they pass when yaourt is installed. Stub out the location of yaourt. Fix spec that assumes pacman is executed when yaourt is installed.
      295467b (PUP-1318) Fixing expected parameters in service provider specs now that service output is no longer squelched by default. Redmine 565, a seven year old issue referenced in a comment in lib/puppet/provider/service/service.rb, is no longer applicable to `Puppet::Util::Execution#execute`.  It was squelching service output because of a bug in ruby where `#read` on a pipe never returned when the spawned process is SIGTERM'd by one of its children.  The current implementation of `Puppet::Util::Execution#execute` redirects to a temporary file instead of reading from a pipe. We should no longer be squelching service output so that users can easily diagnose service failures.
      21ddae1 (maint) Adding .ruby-version and .ruby-gemset to .gitignore for RVM users.
      da5bc0e (maint) Fix acceptance test failure caused by backtrace preservation change (GH-2293). We should not be accessing the exception object from the else clause of the begin/rescue/else.
      8e835d5 (maint) Fixing acceptance test failure caused by GH-2293.
      ab168ce (PUP-1278) Updating Windows service event messages.
      065c4f5 (PUP-1473) Fix issue with UTF-8 in user comments
      18a87a4 (maint) Fix pkgin package provider spec to ensure resource uses the pkgin provider.
      a76d681 (maint) Fix yumrepo inifile spec to stub the correct method
      69a4051 (maint) Fix spec for UTF-8 strings in user comment properties
      abfc76c (PUP-897) Allow rpm package provider to query by virtual package name.
      e61ac84 (maint) Fix useradd spec when using ruby-shadow 2.3.3.
      88c1012 (maint) Change Travis CI to output documentation format for specs.
      420a9db (maint) Add rake task for parallelizing specs.
      7c4cfe2 (maint) Fix parallel:spec rake task when dependencies are not present.

Peter Meier (2):
      658f123 Fix PUP-1568 - no success variable anymore
      49412e0 Fix broken spec & wording of error message.

Peter Souter (2):
      50a9eb3 (PUP-1318) Make service squelch false This will allow us to get failure output from commands...
      4c38910 (PUP-1318) Service now outputs full errorlog on fail

Raphaël Pinson (1):
      5d70a82 Fix small typo

Rob Braden (1):
      f7f4550 (pup-1491)(packaging) Remove Fedora 18 as a default build target

Rob Reynolds (1):
      fe4bcba (PUP-1282) Allow patch version float on windows dependencies

Ryan McKern (3):
      47316e9 Add initial support for building in a RHEL 7 mock
      69f5e99 (maint) Update Debian dependencies for new debian-testing packages
      64f8b93 (packaging) Update PUPPETVERSION to 3.5.0-rc1

Sam Kottler (1):
      78b54c7 (PUP-1463) Enable puppet.service during upgrade if puppetagent.service was previously enabled

Sebastian Schmidt (2):
      64f1a1a (#7659) Fix commentstack when parsing hashes
      4ebf3af (PUP-652) Fix error reporting for ParsedFile

Stephen Gelman (1):
      34c4697 (#7173) Add HTTP basic auth support to HTTP reporting in Puppet.

Vincent Ambo (2):
      28490d2 (PUP-1085) Make Pacman provider group-aware
      82cdf16 (PUP-1085) Add and fix pacman provider tests

Will Farrington (1):
      93102e5 (PUP-1846) File content diffing should respect loglevel

fhrbek (1):
      d56347a PUP-1322 Do not fail hard on unparseable files

glenn.sarti (1):
      2cfc323 (PUP-1278) Windows Puppet Agent Service gracefully terminates after succesfully being put into a Paused state

glennsarti (2):
      f605577 (PUP-1048) Windows puppet service should log to the eventlog
      0ce0c64 (PUP-1048) Windows puppet service should log to the eventlog

jrussek (4):
      d45930c (PUP-1387) fixes wrong hash in subjectKeyIdentifier
      9fbcbf0 (PUP-1409) add authorityKeyIdentifier to client certificates
      29dffc4 (PUP-1407) Rewrite certificate_revocation_list test to use a temporary CA instead of mocks
      64f94d1 (PUP-1407) Add authorityKeyIdentifier to CRL to make the CA conform to RFC5280

--

Ryan McKern
Release Engineer, Puppet Labs

Join us at PuppetConf 2014September 23-24 in San Francisco - http://bit.ly/pupconf14
Register now and save $350! 

Josh Partlow

unread,
Mar 17, 2014, 1:28:40 PM3/17/14
to puppet...@googlegroups.com, puppe...@googlegroups.com


On Saturday, March 15, 2014 12:26:57 PM UTC-7, Stig Sandbeck Mathisen wrote:
Ryan McKern <ryan....@puppetlabs.com> writes:

> * Create a `$confdir/environments` directory on your puppet master.

Does it have to be $confdir/environments, or is it configurable?

Hi Stig,

No, you can set 'environmentpath' in your puppet.conf to a different directory or path of environment directories as needed.
 
--
Stig Sandbeck Mathisen

Reply all
Reply to author
Forward
0 new messages