PDK known issues
PDK 2.7.0
uninitialized constant
error
When selecting Puppet versions PDK, you may encounter an uninitialized constant
error if the target version is below 6.29 for Puppet 6 or 7.22 for Puppet 7.
This is caused by an incompatible version of concurrent-ruby that is downloaded when PDK processes the selected Puppet version.
To mitigate this issue, we recommend selecting only the latest puppet versions when using --puppet-version
.
For example:
Puppet 6
pdk validate --puppet-version 6.29
Puppet 7
pdk validate --puppet-version 7.22
The above issue should no longer be present when using --pe-version
Install of pdk-2.7.0.0-1.el9.x86_64 conflicts with file from package
When installing an el9 based package the user may see the following errors:
file /usr/lib/.build-id/95/26c65fed0e95fbb6b988476cc811ca19d5c9c9 from install of pdk-2.7.0.0-1.el9.x86_64 conflicts with file from package libgcc-11.3.1-2.1.el9.x86_64
file /usr/lib/.build-id/ab/d5d7149726b0410af7af2e9a59491942605ddd from install of pdk-2.7.0.0-1.el9.x86_64 conflicts with file from package libstdc++-11.3.1-2.1.el9.x86_64
This is caused by conflicting build-ids in the package.
To avoid this issue, please target PDK 2.7.1.
PDK 2.6.1
Running autocorrect on puppet-lint top_scope_facts
Currently there is an issue with a third party plugin that the pdk currently pulls in called puppet-lint-top_scope_facts-check. When using the autocorrect functionality, it introduces issues in the codebase.
In order to avoid running into this particular issue we recommend adding the following to your .sync.yaml
file and then run a pdk update
:
Rakefile:
extra_disabled_lint_checks:
- top_scope_facts
uninitialized constant
error
When selecting Puppet versions PDK, you may encounter an uninitialized constant
error if the target version is below 6.29 for Puppet 6 or 7.22 for Puppet 7.
This is caused by an incompatible version of concurrent-ruby that is downloaded when PDK processes the selected Puppet version.
To mitigate this issue, we recommend selecting only the latest puppet versions when using --puppet-version
.
For example:
Puppet 6
pdk validate --puppet-version 6.29
Puppet 7
pdk validate --puppet-version 7.22
In scenarios where --pe-version
is used, it is recommended that --puppet-version
is used instead, with the correct target as described above.
PDK 1.15.0 is incompatible with Bundler 2.1.0 and later
PDK 1.15.0 is incompatible with Bundler 2.1.0 and later. Use Bundler 2.0.2 instead.
PDK analytics opt-out dialog causing issues with CI systems
In PDK 1.11.0, when running in a Continuous Integration (CI) environment (such as Travis CI), PDK may get stuck waiting for a response as to whether or not you want to opt-out of anonymous analytics data collection.
PDK is intended to bypass this prompt in "non-interactive" environments such as
a CI environment. However, certain common CI environments are not being
correctly detected as "non-interactive". As an immediate workaround, avoid the
issue by configuring your CI jobs to run PDK with the PDK_FRONTEND
environment
variable set to the value "noninteractive". For example, if running a
validation:
$ PDK_FRONTEND=noninteractive pdk validate
You might also be able to configure the environment variable for the entire job. See https://docs.travis-ci.com/user/environment-variables/ for information about configuring this in Travis CI, or check your CI system's documentation for similar options. PDK-1414, PDK-1415
Using PDK with PowerShell ISE locks the console
If you run the pdk new module
command inside a PowerShell ISE window, it
returns an error and locks the console. Do not use PDK with PowerShell ISE.
PDK-1168
PDK not in ZShell PATH on Mac OS X
With ZShell on Mac OS X, PDK is not automatically added to the PATH. To fix
this, add the PATH by adding the line eval $(/usr/libexec/path_helper -s)
to
the ZShell resource file (~/.zshrc
).
Output of pdk test unit --list
lacks information
Output from pdk test unit --list
lacks detailed information and tests appear
duplicated. To get the full text descriptions, execute the tests in JUnit format
by running pdk test unit --format=junit
PDK-374
Module validation and testing might fail if dependencies include gems with native extensions
You might not be able to use PDK with a module if that module's Gemfile requires Ruby gems with native extensions, particularly when running on Windows.
When you run pdk validate
or pdk test unit
on a module, PDK tries to install
any missing module dependencies before it runs validations or tests. On some
platforms, PDK can install gems with native extensions, if you already have the
required compilation tools and libraries installed. On Windows, however, the
Ruby installations managed by PDK are not configured to support native extension
compilation, even if the necessary tools are present.
If you encounter this issue on a platform other than Windows, you might be able to resolve it by researching and installing the required dependencies for the gem that is failing to install.
If you encounter this issue on a Windows platform, you must remove or comment out the Gemfile dependencies that include native extensions or that have dependencies that include native extensions.