summaryrefslogtreecommitdiff
path: root/DOC_CHANGES.md
diff options
context:
space:
mode:
Diffstat (limited to 'DOC_CHANGES.md')
-rw-r--r--DOC_CHANGES.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/DOC_CHANGES.md b/DOC_CHANGES.md
index 6b58871418..b0a8e0aaaf 100644
--- a/DOC_CHANGES.md
+++ b/DOC_CHANGES.md
@@ -5,3 +5,30 @@ Example Doc Change:
### Headline for the required change
Description of the required change.
-->
+
+### Resources must now use `provides` to declare recipe DSL
+
+Resources declared in `Chef::Resource` namespace will no longer get recipe DSL
+automatically. Instead, explicit `provides` is required in order to have DSL:
+
+```ruby
+module MyModule
+ class MyResource < Chef::Resource
+ provides :my_resource
+ end
+end
+```
+
+Authors of HWRPs need to be aware that in the future all resources and providers will be required to include a provides line. Starting with Chef 12.4.0 any HWRPs in the `Chef::Resource` or `Chef::Provider` namespaces that do not have provides lines will trigger deprecation warning messages when called. The LWRPBase code does `provides` automatically so LWRP authors and users who write classes that inherit from LWRPBase do not need to explicitly include provides lines.
+
+Users are encouraged to declare resources in their own namespaces instead of putting them in the special `Chef::Resource` namespace.
+
+### LWRPs are no longer automatically placed in the `Chef::Resource` namespace
+
+Starting with Chef 12.4.0, accessing an LWRP class by name from the `Chef::Resource` namespace will trigger a deprecation warning message. This means that if your cookbook includes the LWRP `mycookbook/resources/myresource.rb`, you will no longer be able to extend or reference `Chef::Resource::MycookbookMyresource` in Ruby code. LWRP recipe DSL does not change: the LWRP will still be available to recipes as `mycookbook_myresource`.
+
+You can still get the LWRP class by calling `Chef::ResourceResolver.resolve(:mycookbook_myresource)`.
+
+The primary aim here is clearing out the `Chef::Resource` namespace.
+
+References to these classes is deprecated (and will emit a warning) in Chef 12, and will be removed in Chef 13.