README.md in puppet-resource_api-1.0.2 vs README.md in puppet-resource_api-1.0.3
- old
+ new
@@ -53,10 +53,12 @@
pdk (INFO): Creating '.../example/lib/puppet/provider/foo/foo.rb' from template.
pdk (INFO): Creating '.../example/spec/unit/puppet/provider/foo/foo_spec.rb' from template.
$
```
+Note that the templates released with PDK 1.4 suffer from the fallout of [PDK-911](https://tickets.puppetlabs.com/browse/PDK-911), and need all occurrences of `:present` changed to `'present'`. This will be fixed in PDK 1.5.
+
The three generated files are the type, the implementation, and the unit tests. The default template contains an example that demonstrates the basic workings of the Resource API. This allows the unit tests to run immediately after creating the provider:
```
$ pdk test unit
[✔] Preparing to run the unit tests.
@@ -116,15 +118,15 @@
class Puppet::Provider::Foo::Foo < Puppet::ResourceApi::SimpleProvider
def get(_context)
[
{
name: 'foo',
- ensure: :present,
+ ensure: 'present',
},
{
name: 'bar',
- ensure: :present,
+ ensure: 'present',
},
]
end
def create(context, name, should)
@@ -186,21 +188,27 @@
This gem is still under heavy development. This section is a living document of what is already done, and what items are still outstanding.
Currently working:
* Basic type and provider definition, using `name`, `desc`, and `attributes`.
+* Scalar puppet 4 [data types](https://puppet.com/docs/puppet/5.3/lang_data_type.html#core-data-types):
+ * String
+ * Integer, Float, Numeric
+ * Boolean
+ * Enum[absent, present]
+ * simple Optionals
* The `canonicalize`, `simple_get_filter`, and `remote_resource` features.
* All the logging facilities.
* Executing the new provider under the following commands:
* `puppet apply`
* `puppet resource`
* `puppet agent`
* `puppet device` (if applicable)
There are still a few notable gaps between the implementation and the specification:
+* Complex data types, like Array, Hash, Tuple or Struct are not yet implemented.
* Only a single runtime environment (the Puppet commands) is currently implemented.
-* The `:init_only` behaviour is not yet implemented ([PDK-885](https://tickets.puppetlabs.com/browse/PDK-885))
Restrictions of running under puppet:
* `supports_noop` is not effective, as puppet doesn't call into the type under noop.
Future possibilities:
@@ -220,16 +228,19 @@
### Cutting a release
To cut a new release, from a current `master` checkout:
+* Start the release branch with `git checkout -b release-prep`
* Update `lib/puppet/resource_api/version.rb` to the new version
* Update the CHANGELOG
* Have a [CHANGELOG_GITHUB_TOKEN](https://github.com/skywinder/github-changelog-generator#github-token) set in your environment
* run `rake changelog`
* double check the PRs to make sure they're all tagged correctly (using the new CHANGELOG for cross-checking)
* Check README and other materials for up-to-date-ness
* Commit changes with title "Release prep for v<VERSION>"
-* Upload and PR the release prep to github as normal
+* Upload and PR the release prep to github through the main repo starting with `git push upstream`
+ * make sure to use the name of your git remote pointing to main repo instead of "upstream"
* Check that CI is green and merge the PR
* Run `rake release[upstream]` to release from your checkout
* make sure to use the name of your git remote pointing to main repo instead of "upstream"
+* Remove the release-prep branch