VERSION 3.9.0 *in this release*
✨ *new features* - Plans now support fire-and-forget parallelism with the background() and wait() plan functions. For more information about using these new functions, see the documentation <https://pup.pt/bolt-parallelism>. - The docker, lxd, and podman transports now support the run-as configuration option, as well as all other privilege escalation options. For a detailed list of configuration options available to these transports, see the reference page <https://puppet.com/docs/bolt/latest/bolt_transports_reference.html>. 🔧 *bug fixes* - Project plugin files are now uploaded to the correct directory when running the apply_prep and apply functions. Previously, these files were uploaded to the wrong directory, causing plans to fail if they referenced project files using Puppet file syntax ( puppet:///modules/<project>/<file>). - Setting the docker.service-url configuration option now correctly sets the DOCKER_HOST environment variable. Previously, this environment variable was not set, preventing connections to remote Docker hosts. VIEW FULL RELEASE NOTES <https://github.com/puppetlabs/bolt/blob/main/CHANGELOG.md#bolt-390-2021-05-25> *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. May's highlighted feature is: *scripts*! *What is a script?* A script is a list of commands that are executed by a certain program or scripting engine. Scripts may be used to automate processes. Script files are usually just text documents that contain instructions written in a certain scripting language. When opened by the appropriate scripting engine, the commands within the script are executed. Bolt can execute scripts either on the command line or from a Bolt plan using the run_script() function. *How is a script different from a task?* Bolt tasks are similar to scripts, but they are kept in modules and optionally have a defined API for input into the task and output from the task. This allows you to reuse and share them, and interact with them programmatically more easily. Using the API capabilities of tasks requires adding a JSON metadata file next to the task, which oftentimes is unnecessary work for users who simply want to run a script. VIEW THE DOCUMENTATION <https://puppet.com/docs/bolt/latest/running_bolt_commands.html#run-a-script> [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-pVjKZaVMgDverTnuUwcHftUuOOD0-opcr0MJyPVSYy7fg%40mail.gmail.com.