chef/cookbooks/poise/CHANGELOG.md
Greg Karékinian ff3d062c73 Update users cookbook and poise cookbooks
The poise cookbooks were incompatible with Chef 13
2017-06-16 15:50:13 +02:00

199 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
## v2.8.1
* Fix a missing `require` when using `subclass_providers!` on Chef 12.3.
## v2.8.0
* Chef 13 compatibility.
* Passing a symbol for the parent now works with the `include Poise(:name)`
shortcut.
* Fixed `subclass_providers!` on older versions of Chef.
## v2.7.2
* Test harness fixes for Chef.
## v2.7.1
* Minor tweak for compatability with Chef master.
## v2.7.0
* More compatibility improvements for Chef 12.9.
* New helper: `Poise::Helpers::Win32User` to automatically convert `'root'`
defaults for user and group properties to more platform-appropriate values.
* Enhanced `poise_shell_out` to better cope with Windows command parsing. Use
Bash-style commands and it will automatically convert.
* Overall compatibility fixes for Windows.
## v2.6.1
* Compatibility with Chef master to fix issues with `defined_in!` not ignoring
stack frames from Chef code.
* Setting a provider in a inversion options resource now works as (probably)
expected.
## v2.6.0
* New backwards-compatibility helper: `Poise::Backports::VERIFY_PATH`. Use it
like `verify "myapp -t #{Poise::Backports::VERIFY_PATH}" if defined?(verify)`
for backwards-compatible usage of file verifications.
* Fixed Poise's implementation of lazy defaults to more closely match Chef's
even when both are used in conjunction. Lazy defaults will no longer be
evaluated when setting a value or getting an existing non-default value.
## v2.5.0
* New property for inversion resources: `provider_no_auto`. Set one or more
provider names that will be ignored for automatic resolution for that instance.
* Support `variables` as an alias for `options` in template content properties
to match the `template` resource.
* Template content properties are no longer validated after creation for
non-default actions.
* Formalize the extra-verbose logging mode for Poise and expose it via helpers.
* Extra-verbose logging mode can now be enabled by creating a `/poise_debug` file.
* New helper: `poise_shell_out`. Like normal `shell_out` but sets group and
environment variables automatically to better defaults.
## v2.4.0
* Added return value to `Container#register_subresource` to track if the resource
was already added.
* Improve inspect output for subresources and containers.
* Ensure notifications work with subresources.
* Inversion providers process name equivalences.
## v2.3.2
* Improve handling of deeply nested subresources.
## v2.3.1
* Ensure a container with a parent link to its own type doesn't use self as the
default parent.
* Improve handling of `load_current_resource` in providers that call it via
`super`.
## v2.3.0
* New helper: `ResourceSubclass`, a helper for subclassing a resource while
still using the providers as the base class.
* New feature: Non-default containers. Use `container_default: false` to mark
a container class as ineligible for default lookup.
* New feature: parent attribute defaults. You can set a `parent_default` to
provide a default value for the parent of a resource. This supports the
`lazy { }` helper as with normal default values.
* New feature: use `forced_keys: [:name]` on an option collector property to
force keys that would otherwise be clobbered by resource methods.
* Can enable verbose logging mode via a node attribute in addition to an
environment variable.
## v2.2.3
* Add `ancestor_send` utility method for use in other helpers.
* Improve subresource support for use in mixins.
## v2.2.2
* Fix 2.2.1 for older versions of Chef.
## v2.2.1
* Fixed delayed notifications inside `notifying_block`.
* Default actions as expected within LWRPs.
## v2.2.0
* Compatibility with Chef 12.4.1 and Chefspec 4.3.0.
* New helper `ResourceCloning`: Disables resource cloning between Poise-based
resources. This is enabled by default.
* Subresource parent references can be set to nil.
## v2.1.0
* Compatibility with Chef 12.4.
* Add `#property` as an alias for `#attribute` in resources. This provides
forward compatibility with future versions of Chef.
* Freeze default resource attribute values. **This may break your code**,
however this is not a major release because any code broken by this change
was itself already a bug.
## v2.0.1
* Make the ChefspecHelpers helper a no-op if chefspec is not already loaded.
* Fix for finding the correct cookbook for a file when using vendored gems.
* New flag for the OptionCollector helper, `parser`:
```ruby
class Resource < Chef::Resource
include Poise
attribute(:options, option_collector: true, parser: proc {|val| parse(val) })
def parse(val)
{name: val}
end
end
```
* Fix for a possible infinite loop when using `ResourceProviderMixin` in a nested
module structure.
## v2.0.0
Major overhaul! Poise is now a Halite gem/cookbook. New helpers:
* ChefspecMatchers Automatically create Chefspec matchers for Poise resources.
* DefinedIn Track which file (and cookbook) a resource or provider is defined in.
* Fused Experimental support for defining provider actions in the resource class.
* Inversion Support for end-user dependency inversion with providers.
All helpers are compatible with Chef >= 12.0. Chef 11 is now deprecated, if you
need to support Chef 11 please continue to use Poise 1.
## v1.0.12
* Correctly propagate errors from inside notifying_block.
## v1.0.10
* Fixes an issue with the LWRPPolyfill helper and false values.
## v1.0.8
* Delayed notifications from nested converges will still only run at the end of
the main converge.
## v1.0.6
* The include_recipe helper now works correctly when used at compile time.
## v1.0.4
* Redeclaring a template attribute with the same name as a parent class will
inherit its options.
## v1.0.2
* New template attribute pattern.
```ruby
attribute(:config, template: true)
...
resource 'name' do
config_source 'template.erb'
end
...
new_resource.config_content
```
## v1.0.0
* Initial release!