Release notes for Puppet Development Kit (PDK), a development kit containing tools for developing and testing Puppet code. For known issues, see PDK known issues.
Released 26 Oct 2017
This is a security release that updates several components and dependencies bundled in PDK. For the complete list of resolved issues, see the PDK project.
pdk validate failed if the module directory and name did not match
When validating a module, validation for the
autoloader_layout check failed if the module directory was not the exact module name. That is, if validating an ntp module, Puppet Lint passed
/path/ntp but failed
/path/puppetlabs-ntp. This release fixes the issue so that either of the examples would pass. PDK PR 325
Released 10 October 2017
Creation of tasks
PDK can now create tasks in modules. Tasks allow you to perform ad hoc actions for on-demand infrastructure change. When you create a module, PDK creates an empty
./tasks folder. When you create a task, PDK creates template files for the task (
<TASK>.sh) and the task metadata (
<TASK.json>. See the Create a task topic for details.
PDK validates task metadata
When you run
pdk validate metadata, PDK validates both module and task metadata files.
CLI help is improved
This release adds more context to ambiguous help output from
pdk help. PDK-482
Module creation adds examples and files subdirectories
pdk new module command now creates
./files subdirectories in the new module, to provide hints on what is possible and where these things should go. PDK-479
Running PDK commands on Windows 7 failed
Trying to use PDK on Windows 7 resulted in access errors and Ruby failure. This release fixes the issue. PDK-461
Git version in PDK did not install some dependencies on Windows
The version of Git included in the PDK packages did not work correctly with Bundler on Windows, so gem dependencies specified in a module’s Gemfile with a Git source were not correctly installed. This release fixes this issue. PDK-502
Module interview gave an incorrect licensing link
This release fixes an incorrect link to the spdx.org website in the new module interview. PDK-543
PDK validate failed to validate using Windows paths
This release fixes an issue where
puppet-lint was not properly escaping bundle commands in Windows. There is a note added to the help text in PDK. The root cause will be fixed in a
puppet-lint release. PDK-555
Validation stopped if errors were encountered
pdk validate now runs all possible validators, even if one of them reports an error.
Released 14 September 2017
Generation of defined types
Selection of Operating System support when creating a new module
The module creation interview now asks which Operating Systems your module supports. You can select supported OSes from an interactive dialog menu.
Improved error output
pdk test unitprovides improved error messages when unit tests fail to better show what went wrong. PDK-369
spec_cleanfailures are improved to provide only relevant error information. PDK-465
If you try to create a class that already exists, PDK gives an error instead of a fatal error. PDK-415
User-friendly help messages after generation of a module
After module creation, PDK tells you where the new module is located and what steps you can take next. PDK-365
Modules generated with PDK no longer depend on stdlib module by default
This release removes an unnecessary dependency on the puppetlabs-stdlib module in a newly generated module’s
Installing PDK in a non-default location caused an error
Installing PDK in a non-default location caused an error condition because the template URL was saved into the answer file. With this release, the template URL is no longer saved into the answer file. PDK-430
PDK package installation created unnecessary directories
PDK package installation created an unnecessary directory:
/etc/puppetlabs on Linux,
/private/etc/puppetlabs on OSX,
C:\Documents and Settings\$user\Application Data\PuppetLabs on Windows. These directories are no longer created on installation. PDK-424
.gitattributes file caused Ruby validation failure
An error in the generated
gitattributes file caused Ruby style checking with Rubocop to fail. Now PDK configures
.gitattributes to correctly match end-of-line behavior with the recommended Git attribute configuration, always requiring LF line ends. PDK-443.
PDK module template contained a TravisCI configuration error
An error in the module template’s TravisCI configuration (
.travis.yml) caused TravisCI to not run any CI jobs. This was because the environment variable
CHECK, which specifies what each TravisCI build job should do, was undefined. TravisCI now properly runs the unit tests and validators. PDK-448
PDK conflicted with the Puppet 5 gem
If Puppet 5 and PDK were both specified in a Bundler Gemfile, Puppet code within PDK conflicted with the Puppet 5 gem, causing an unhandled exception. PDK-420
PDK did not work correctly with PowerShell 2
This release improves the PowerShell integration so that PDK works on PowerShell 2, the standard version on Windows 7. PDK-463
PDK not added to PATH in some shells
PDK was not automatically added to the PATH in some shells, including zsh on Mac OS X and Debian. This issue is now resolved on our supported OSes. PDK-446
Released 17 August 2017
PowerShell’s PATH environment variable became corrupted
This release fixes an issue where the PATH environment variable on Windows PowerShell became corrupted, breaking all other PDK commands.
Puppet Development Kit 188.8.131.52
Released 15 August 2017.
This is the first major release of Puppet Development Kit (PDK).
- Generates modules with a complete module skeleton, metadata, and README template.
- Generates classes.
- Generates unit test templates for classes.
- Validates Puppet code style and syntax.
- Validates Ruby style and syntax.
- Runs RSpec unit tests on modules and classes.