Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 23:20
· 78 commits to master since this release

Added

  • Do.IsLocalBuild and CI-sensitive typed tool defaults, including Release configuration for .NET and MSBuild commands.
  • tools array in dotnetdo.toml for declaring tool requirements by canonical name, installed on demand with the :install command.
  • Tools.Azure.Install for making the Azure CLI available, installing it through Scoop (and bootstrapping Scoop itself) when missing.
  • Tools.Scoop commands for installing, uninstalling, and updating apps, managing buckets and settings, plus Tools.Scoop.InstallSelf for bootstrapping Scoop with the official installer.
  • AbsolutePath.TryParse() for converting textual input that may not be a valid absolute path.
  • RelativePath.QuotedArgument() for interpolating relative paths into raw command strings, matching AbsolutePath.
  • Scripting convenience extensions for sequence joining and filtering, line splitting, nullable string checks, and receiver-style regular expressions.
  • Configured meta-tasks in dotnetdo.toml for composing ordered, fail-fast task sequences with argument forwarding.
  • Tools.DotNet.NuGetPush for publishing NuGet packages.
  • Tools.MSBuild for running the MSBuild toolset discovered by MSBuild Locator.
  • Tools.VSTest for running test containers with the VSTest runner discovered alongside the installed MSBuild toolset.

Changed

  • Do.Exec now resolves commands through PATH and invokes Windows batch shims through their native command host, so typed tools no longer need launcher-specific execution overrides.
  • ToolInstall.IsAvailable reports executable availability; installs may omit a Scoop package, failing clearly when no installer is configured.
  • Logging.Level now supplies best-effort native output-volume defaults to fresh typed tool commands, with explicit per-tool controls taking precedence.
  • Do.Secret now returns Secret, new Secret(value) automatically registers the value for redaction, and the required wrapper is now named RequiredSecret.
  • Typed tool commands now quote structured argument values automatically while preserving raw additional arguments.
  • Typed tool commands now own semantic property state and canonical argument order, independent of property assignment order. ToolCommand replaces its protected keyed argument setter/getter API with Arg and Args rendering helpers.