VERSION 3.3.0 *in this release*
✨ *new features* - Do you need to connect to Linux containers? Bolt has a new lxd transport which can be used to connect to Linux containers and run actions on them. For more information on using this transport, see the experimental features <https://puppet.com/docs/bolt/latest/experimental_features.html#lxd-transport> documentation. *This feature is experimental and might change between minor versions.* - Have a command or task that takes a long time to execute and want to see what's happening on the target? Bolt now supports streaming output from targets as actions are running. To learn how to stream output, check out the documentation <https://puppet.com/docs/bolt/latest/experimental_features.html#streaming-output> . *This feature is experimental and might change between minor versions.* - YAML plan steps now support metaparameters as top-level step keys. For example, you can set a run-as user when running a command using the new run_as key. For a full list of YAML plan steps and supported keys, see writing YAML plans <https://puppet.com/docs/bolt/latest/writing_yaml_plans.html#steps>. - Ever look at what plans are available in your project and wished that you could see each plan's description? You're in luck! Bolt now shows plan descriptions in bolt plan show and Get-BoltPlan output. - Running scripts from the command-line is easier than ever. Bolt now supports specifying a Puppet path (<MODULE>/<SCRIPT NAME>) to the bolt script run and Invoke-BoltScript commands. - If your workflow includes running PowerShell scripts, you can take advantage of the new pwsh_params option for the run_script plan function. This option accepts a hash of PowerShell script parameters and passes them to the script as named arguments. For more information, see the run_script reference <https://puppet.com/docs/bolt/latest/plan_functions.html#run-script>. - Several of Bolt's bundled modules have been upgraded to their latest versions, which include new major versions that are not compatible with Puppet 5. For a full list of upgraded modules, check out the changelog <https://github.com/puppetlabs/bolt/blob/main/CHANGELOG.md#bolt-330-2021-03-15> . - Bolt now reports whether a file path is an absolute path or a Puppet path for the run_script, file::read, and upload_file plan functions when it collects analytics. Bolt does not report the path itself. For more information about the analytics Bolt collects, check out the documentation <https://puppet.com/docs/bolt/latest/analytics.html>. 🔧 *bug fixes* - Plans that include parameter tags without a description no longer cause Bolt to error. - The plan step for YAML plans now correctly passes the targets key as the targets parameter to the plan. - YAML plans can now be tested with the BoltSpec library. For more information about testing plans with BoltSpec, see testing plans <https://puppet.com/docs/bolt/latest/testing_plans.html>. - Converting YAML plans that include an eval step with a null value no longer causes Bolt to error. - The bundled http_request task now correctly reads SSL key contents from the path passed to the key parameter. - The run-as configuration for the SSH transport is now supported when downloading files. - Bolt no longer prints a task's parameters to standard out (stdout) when running with tty set. VIEW FULL RELEASE NOTES <https://github.com/puppetlabs/bolt/blob/main/CHANGELOG.md#bolt-330-2021-03-15> *in the works* - Performance improvements for Windows packages. - Support for connecting to remote LXD servers. - Showing merged output (stdout and stderr) when running commands and scripts. *nuts and bolts* Each month, we'll highlight a different Bolt feature and cover the details on what it is, why you might want to use it, and how it can be used in your workflows. March's highlighted feature is: *BoltSpec*! *What is BoltSpec?* BoltSpec is a library of helpers that ships with Bolt. It is intended to be used with RSpec, a testing tool, to write unit tests for your plans. Specifically, BoltSpec's helpers let you test the behavior of your plans without the need to connect to targets. *Why should I use BoltSpec?* Because plans can include complex logic that automates different jobs, it's important to test that the plan behaves as you expect. BoltSpec lets you easily write tests for your plans so you can test their behavior in development and catch any errors before your plans are used in production. Also, because BoltSpec stubs out Bolt functions that connect to targets, you don't need to worry about provisioning containers or VMs to run these tests. *How do I use BoltSpec?* Using BoltSpec is as easy as installing and configuring rspec-puppet for your module or project, and then adding a couple lines to your tests' configuration file. If you already develop Puppet modules using the Puppet Development Kit (PDK), then most of this is already done for you. Going over all the details of using BoltSpec to test your plans is a little much for an email. So if you're interested in testing your plans, why not check out our new Testing Plans <https://puppet.com/docs/bolt/latest/testing_plans.html> documentation? VIEW THE DOCUMENTATION <https://puppet.com/docs/bolt/latest/testing_plans.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 Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CAGdD-pU5UZ9hgLBatsoHvDZfOe%3D8q7zaw%3DK712s%2BNKsqc23D8Q%40mail.gmail.com.