VERSION 2.38.0 *in this release*
✨ *new features* - Users can now use the same default configuration used by the localhost target for other targets using the local transport by setting the bundled-ruby config option. Enabling this option will automatically set the puppet-agent feature and use Bolt's bundled Ruby instead of the system's Ruby. For more information about this option, see the transport configuration reference <https://puppet.com/docs/bolt/latest/bolt_transports_reference.html#bundled-ruby> . - We've improved Bolt's inventory validation so that it displays most errors for an inventory file in a single message, along with the location of the error. Bolt leverages its own inventory schema for this validation, which you can also use in VS Code <https://puppet.com/docs/bolt/latest/vscode_and_bolt.html#validating-configuration-and-inventory-files-with-json-schemas> to validate your files as you write them. - Bolt now displays a spinner on the command line while executing long-running commands so you can tell if Bolt is hanging or if the command is still running. If you want to disable the spinner, you can do so by setting the spinner config option <https://puppet.com/docs/bolt/latest/bolt_project_reference.html#spinner> . - We've added a new JSON schema for YAML plans that you can use in VS Code (or any other editor that supports a YAML language server) when writing YAML plans. For more information about using Bolt's schemas, see the documentation <https://puppet.com/docs/bolt/latest/vscode_and_bolt.html>. - Need to install modules through a proxy or from an alternate Forge? You can now configure the module-install option to configure proxies and an alternate Forge when installing modules with the bolt module add|install commands or Add|Install-BoltModule cmdlets. To learn more about this config option, see the project configuration reference <https://puppet.com/docs/bolt/latest/bolt_project_reference.html#module-install> . *This option is not currently supported when resolving module dependencies. For more information, see our known issues <https://puppet.com/docs/bolt/latest/bolt_known_issues.html#resolving-module-dependencies-does-not-support-proxies-or-alternate-forge>.* 🔧 *bug fixes* - Commands run on a Windows controller using the local transport now return the command's real exit code, instead of just 0 or 1. These commands now also support the use of pipes. - The puppetdb config option once again accepts plugin references after being erroneously disabled when we updated how Bolt validates config. - Bolt will now only warn that it will not load project-level content when a project is unnamed if the project directory has a files/, plans/, or tasks/ directory. - The puppetdb plugin now supports plugin caching. Previously, setting the _cache key for the plugin would raise an unknown key error. - The http_request task now correctly converts each header under the headers parameter to a string. VIEW FULL RELEASE NOTES <https://github.com/puppetlabs/bolt/blob/main/CHANGELOG.md#bolt-2380-2020-12-14> *in the works* - Work continues on improving Bolt's performance on Windows. We should have everything ready for this improvement when Bolt 3.0 releases. - Work continues on deprecating features that will be removed in Bolt 3.0. - Work continues on supporting module-install configuration when resolving module dependencies. *nuts and bolts* Each month, we'll highlight a different Bolt feature and cover the details of what it is, why you might want to use it, and how it can be used in your workflows. December's highlighted feature is: *plugins*! *What are plugins?* Plugins are special tasks that can be used to dynamically load information during a Bolt run and change how Bolt executes certain actions. You can use plugins in several locations, including configuration files, inventory files, and plans. *Why should I use plugins?* There are many different reasons you should use plugins. For example, you might want to use a plugin if you need to: - Decrypt sensitive values such as passwords - Load targets from an external service, especially if the targets are ephemeral - Reuse portions of a configuration or inventory file in another file - Prompt the user for input A good rule of thumb for when using a plugin might be helpful is when it is not desirable or impossible to write data directly to a configuration file, inventory file, or plan. *What sorts of plugins are available?* Bolt ships with several plugins that are available without the need to install additional modules or dependencies. You can find a full list of Bolt's supported plugins in our documentation <https://puppet.com/docs/bolt/latest/supported_plugins.html>. We've also had several Bolt users create their own plugins and share them with the community. Check out Bolt's third-party plugins <https://github.com/puppetlabs/bolt/blob/main/resources/plugins.md> for a full list of what's available. If you write your own plugin and want to share it with others, feel free to submit a pull request to add it to the list! *How do I write a plugin?* If you know how to write tasks <https://puppet.com/docs/bolt/latest/writing_tasks.html>, you're already 95% of the way towards knowing how to write a plugin! To learn more about writing plugins, see our writing plugins <https://puppet.com/docs/bolt/latest/writing_plugins.html> guide. VIEW THE DOCUMENTATION <https://puppet.com/docs/bolt/latest/using_plugins.html> [image: Tw] <https://twitter.com/puppetize> [image: Yt] <https://www.youtube.com/channel/UCPfMWIY-qNbLhIrbZm2BFMQ> [image: In] <https://www.linkedin.com/company/puppet/> *Bolt Documentation <https://puppet.com/docs/bolt/latest/bolt.html>* -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAGdD-pXONYefcyhJvYdd86DY5K6Z8aeDLNxOrLXFYAbSJpb1Qw%40mail.gmail.com.