What's new
This release lands two features teams have asked for: Python as a first-class scripting language, and variable values scoped to a single deployment step.
Python deployment scripts
Python now sits alongside PowerShell 7 and Windows PowerShell 5.1 as a fully supported script runtime. Add a Run Python script step — or switch any script step's language to Python — and write your deployment logic in Python 3. There is nothing to install on your targets: the Jaws agent provisions a managed Python runtime automatically the first time a Python step runs, and caches it per workspace so later deployments start instantly.
Inside a script, import jaws gives you the same deployment context PowerShell steps reach through $Jaws. Read resolved variables from jaws.parameters, look up packages in jaws.packages, fetch a single value with jaws.get_parameter(name), and hand results to later steps with jaws.set_output_value(name, value, type, scope) — the direct counterpart of Set-JawsOutputValue. Output values support the same types (Text, Number, Secret, Boolean, Date, Json) and the same Machine and Global scopes, and secrets are redacted in the deployment log immediately.
Runtime provisioning follows a per-workspace policy. The agent can reuse a suitable system Python where you allow it, or download and cache a self-contained build keyed to your workspace. Air-gapped targets provision from a local archive instead of reaching the internet, and you can warm the runtime at agent startup so the first deployment never pays the download cost.
Step-scoped variables
Variable values can now be pinned to one or more project steps. A step scope is the most specific scope there is: when that step runs, its value overrides the environment-, tag-, target-, and machine-scoped values for the same variable — what is running beats where it runs. Use it when a single step needs a different connection string, path, or feature flag than the rest of the process, without inventing a new variable name. The variable editor shows the step badges a value is bound to, and flags a value whose step has since been deleted so the scope never silently goes stale.
Also in this release
Step template management got tighter: built-in templates sync automatically, and exporting a template now carries its source key so it round-trips cleanly.
See Step Templates & Script Modules, the Output Variables guide — now with Python examples — or The Power of Variables to dig in.
Highlights
- Python deployment scripts — a new Run Python script step, and Python as a selectable language for any script step, alongside PowerShell 7 and PowerShell 5.1
- Built-in
jawsmodule —jaws.parameters,jaws.packages,jaws.get_parameter(), andjaws.set_output_value(name, value, type, scope)mirror the PowerShell$Jawscontext andSet-JawsOutputValue - Automatic Python runtime provisioning per workspace — system-Python discovery, cached managed runtimes, startup pre-provisioning, and offline provisioning from a local archive for air-gapped targets
- Step-scoped variable values — pin a value to one or more project steps; the step scope is the most specific and overrides environment, tag, target, and machine scopes
- Smarter step template management — built-in templates sync automatically and export carries the template source key