Pulumi v2.25.0 Release Notes

Release Date: 2021-04-14 // about 3 years ago
  • ๐Ÿ’ฅ Breaking

    • ๐Ÿšš [automation/dotnet] Rename (Get,Set,Remove)Config(Value) #6731

    The following methods on Workspace and WorkspaceStack classes have been renamed. Please update your code (before -> after):

    • GetConfigValue -> GetConfig
    • SetConfigValue -> SetConfig
    • RemoveConfigValue -> RemoveConfig
    • GetConfig -> GetAllConfig
    • SetConfig -> SetAllConfig
    • RemoveConfig -> RemoveAllConfig

    This change was made to align with the other Pulumi language SDKs.

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ–จ [cli] Add option to print absolute rather than relative dates in stack history #6742

    Example:

      pulumi stack history --full-dates
    
    • [cli] Enable absolute and relative parent paths for pulumi main #6734

    • [sdk/dotnet] Thread-safe concurrency-friendly global state #6139

    • โšก๏ธ [tooling] Update pulumi python docker image to python 3.9 #6706

    • [sdk/nodejs] Add program side caching for dynamic provider serialization behind env var #6673

    • [sdk/nodejs] Allow prompt values in construct for multi-lang components. #6522

    • [automation/dotnet] Allow null environment variables #6687

    • [automation/dotnet] Expose WorkspaceStack.GetOutputsAsync #6699

    Example:

      var stack = await WorkspaceStack.CreateAsync(stackName, workspace);
      await stack.SetConfigAsync(config);
      var initialOutputs = await stack.GetOutputsAsync();
    
    • ๐Ÿš€ [automation/dotnet] Implement (Import,Export)StackAsync methods on LocalWorkspace and WorkspaceStack and expose StackDeployment helper class. #6728

    Example:

      var stack = await WorkspaceStack.CreateAsync(stackName, workspace);
      var upResult = await stack.UpAsync();
      deployment = await workspace.ExportStackAsync(stackName);
    
    • [automation/dotnet] Implement CancelAsync method on WorkspaceStack #6729

    Example:

      var stack = await WorkspaceStack.CreateAsync(stackName, workspace);
      var cancelTask = stack.CancelAsync();
    
    • ๐ŸŒฒ [automation/python] - Expose structured logging for Stack.up/preview/refresh/destroy. #6527

    You can now pass in an on_event callback function as a keyword arg to up, preview, refresh and destroy to process streaming json events defined in automation/events.py

    Example:

      stack.up(on_event=print)
    

    ๐Ÿ› Bug Fixes

    • [sdk/go] Fix wrongly named Go modules #6775

    • [cli] Handle non-existent creds file in pulumi logout --all #6741

    • [automation/nodejs] Do not run the promise leak checker if an inline program has errored. #6758

    • ๐ŸŒฒ [sdk/nodejs] Explicitly create event log file for NodeJS Automation API. #6730

    • ๐ŸŒฒ [sdk/nodejs] Fix error handling for failed logging statements #6714

    • [sdk/nodejs] Fix Construct to wait for child resources of a multi-lang components to be created. #6452

    • [sdk/python] Fix serialization bug if output contains 'items' property. #6701

    • ๐Ÿฑ [automation] Set default value for 'main' for inline programs to support relative paths, assets, and closure serialization. #6743

    • [automation/dotnet] Environment variable value type is now nullable. #6520

    • [automation/dotnet] Fix GetConfigValueAsync failing to deserialize #6698

    • [automation] Fix (de)serialization of StackSettings in .NET, Node, and Python. #6752 #6754 #6749