Skip to content

Releases: Azure/bicep

v0.34.44

24 Mar 19:53
1f661a2
Compare
Choose a tag to compare

Features and Bug Fixes

  • Use languageVersion 2.0 when an existing resource has an explicit dependency (#16670)
  • Validate regex patterns against non-backtracking engine (#16687)
  • Generate deterministic dependsOn (#16668)
  • Add more detailed information about local-deploy (#16677)
  • Add more info on implementing extensions for local-deploy (#16678)
  • Add name pattern validation for modules (#16680)
  • Add Desired State Configuration target scope and experimental feature flag (#16389) - thanks @andyleejordan !

v0.34.1

21 Mar 04:20
2e7bb7d
Compare
Choose a tag to compare

Highlights

  • Optional Module Names GA (#16518)
    module storage 'storageaccount.bicep' = {
    // no need to specify a name here!
      scope: rg
      params: {
        location: location
        sku: skuProd
      }
    }
  • Experimental support for typed variables (#16451) using the feature flag "typedVariables"
    // an optional type can be added to a variable declaration statement.
    
    // current syntax
    var foo = 'hello'
    
    // with optional type
    var foo string = 'hello'
  • Resource Derived Types GA (#16517)
    param storageSkuName resourceInput<'Microsoft.Storage/storageAccounts@2024-01-01'>.sku.name
    
    output storageEndpoints resourceOutput<'Microsoft.Storage/storageAccounts@2024-01-01'>.properties.primaryEndpoints = ...
  • ACR Private Module Completions (#16051)
  • Add Notepad++ Bicep Syntax Highlighting Information (#16506) - thanks @richardsondev !

Bug Fixes and Features

  • secure-secrets-in-params: Flag insecure references to secure params (#16251)
  • Add code action to suggest multi-line strings (#16296)
  • Handle decompilation of variable-defined API version correctly (#16384)
  • Support dark + light mode in the Bicep playground (#16388)
  • Support for validating inputs in deploy pane (#16442)
  • Add the --pattern CLI argument for faster batch operations on multiple files (#16456)
    # build all .bicep files under current path
    bicep build --pattern './**/*.bicep'
    # build all .bicepparam files under current path
    bicep build-params --pattern './**/*.bicepparam'
    # format all .bicep files under current path
    bicep format --pattern './**/*.bicep*'
    # lint all .bicep files under current path
    bicep lint --pattern './**/*.bicep'
    # restore modules for all .bicep files under current path
    bicep restore --pattern './**/*.bicep'
  • Fix for completions inside object (#16558)
  • Imported functions invoked in .bicepparam files can refer to variables from their source template (#16322)
  • Emit an info-level diagnostic on safe access of undeclared property (#16327)
  • Forward base-type errors when accessing type properties (#16394)
  • Allow duplicated resources (by name) if at most one is unconditional (#15909)
  • Index from end operator ([^]) (#16104)
    param foo string[]
    
    var lastElement = foo[^1]
    var secondLastElement = foo[^2]
  • Partially parse function calls with no closing paren (#16508)
  • Fix 13606, stuck in ext-src loop (#16381)

v0.33.93

30 Jan 18:29
7a77c7f
Compare
Choose a tag to compare

Highlights

  • Address v0.33.13 language server crash/stack overflow (#16235)
  • Address v0.33.13 deployment failures when depending on looped resources in non-symbolic name templates (#16236)
  • Release Deployment Pane as a non-experimental feature (#16173)

Other bugs and features

  • Offer code fix to fully qualify function call for shadowed decorator functions (#16116)

v0.33.13

23 Jan 17:29
48521b9
Compare
Choose a tag to compare

Highlights

  • Paste as BicepParams (#15897) - thanks @miqm !

  • Add resourceInput<> and resourceOutput<> utility types (#15825)
    We've added two new utility types (resourceInput<> and resourceOutput<>), which deprecates the existing resource<> utility types. These three utility types are all closely related but differ in which property flags they surface:

    • resource<> has the flags that were originally defined in the RP types artifact. This is generally not what people want.
    • resourceInput<> strips out all WriteOnly flags. This means that template authors can access properties on a resourceInput<>-typed parameter that would have previously raised a BCP077 diagnostic.
    • resourceOutput<> strips out all ReadOnly flags.
  • Expose fail function (#15958) This function takes a single string argument, whose value is the message of the error that will be raised.

param storageAccountData object

resource a 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: !empty(storageAccountData.?name) ? toLower(storageAccountData.name) : fail('No storage account name was provided')

Other bugs and features

  • extendable param files add a warning when referencing to a non-existent .bicepparam file (#15338)
  • adding support for variables, objects and arrays in extended param files (#15834)
  • Refactor and simplify handling of single quotes in module completions (#15913)
  • use-safe-access linter rule: Expand to check for nullable properties (#15838)
  • Fix for WhatIf results not showing up properly in the deploy pane (#16048)
  • Support object property name completions in lambda body syntax (#16055)
  • MS Graph type provider warns on property mismatch (#15824)
  • Fix unhandled exception in import closure calculation (#15833)
  • Validate type clauses in UDFs (#15842)
  • Allow exports of symbols that share a name with an output (#15899)
  • Catch recursion in parameterized type invocations (#15903)
  • Use fully qualified symbolic name as copy loop name (#15910)
  • Include imported variables in max variables check (#15956)
  • Rename Bicep.IO package to Azure.Bicep.IO (#16046)
  • Validate that type expressions that will be compiled to ARM schema nodes can be expressed in ARM's type system prior to compilation (#15901)
  • SecureOutput Feature Bug Fix (#16108)
  • Allow accessing generated module names (#16058)
  • Deprecate the term provider (#16107)
  • Fix linter discrepancies when optional module name is enabled (#16106)
  • Emit symbolic name template when an optional module name is enabled. (#16114)
  • Fix BCP159 to check existence of any nested resources (#15988)
  • Decompile-params: Resolve bicep file path relative to current directory (#15986)
  • Add AdditionalPropertiesDescription property to ObjectType (#15990)

v0.32.4

09 Dec 22:23
b326faa
Compare
Choose a tag to compare

Highlights

  • New deployer() function to retrieve ObjectId of the principal that is deploying the Bicep file (#15340)
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  // can be used to help make GUID unique
  name: guid(deployer().objectId, readerRoleDefinitionId, resourceGroup().id)
  properties: {
    principalId: deployer().objectId // easily retrieve objectId
    roleDefinitionId: readerRoleDefinitionId
  }
}
  • Support partial public registry completions (#15646). Previously, if typing the entire module reference, you would lose completions after typing a /
    image

Other bugs and features

Bicep team:

  • Support deploying to other clouds in Deploy Pane (#15635) - thank you @alaskascooter for filing
  • Only add an explicit dependency on an existing resource when the deployments engine will use the GET response (#15693) - thank you @AleksandrKomarov for filing
  • Move all indexing expressions when calculating dependsOn expressions (#15580) - thank you @slavizh for filing
  • Local Deploy: Support null for InnerError field (#15583)
  • InsertResource - correctly strip read-only properties (#15689)
  • MS Graph type loader accepts resource identifier property flag (#15518)
  • Fixed stack overflow when requesting completion in an object literal (#15579)
  • Use vscode authentication instead of Azure Account extension (#15403)
  • Move deploy-pane to vscode-bicep-ui (#15584)
  • Emit type and apiVersion separately for local and v2 ext resources (#15762)

@emmanuel-ferdman

  • Update jsonrpc.test.ts reference (#15657)

@GabinL21

  • Add case-insensitive equality operators to grammar (#15640)
Read more

v0.31.92

14 Nov 19:35
b065093
Compare
Choose a tag to compare

Features and bug fixes

  • Revert "Only add an explicit dependency on an existing resource when the deployments engine will use the GET response" (#15524)
  • Don't collapse scope references or namespaces into objects (#15570)
  • allow using none statements in bicepparam files at build-params command (#15107) -- thanks @polatengin!

v0.31.34

06 Nov 18:43
ec82b47
Compare
Choose a tag to compare

Highlights

  • Improve ternary type inference (#15399)
  • Allow dependsOn for existing resources (#15459)
  • Tree-shake existing resources where possible (#15447)
  • Sort public registry module version completion items (#15400)
  • Refactor: Extract variable, parameter, type (#14701)
  • Allow imported variable access from within User Defined Functions (#15142)
  • Nameof function (#14704) - Thanks @miqm !

Bugs and Features

  • Add deprecation warning for microsoftGraph builtin extension (#15149)
  • Add deployment script snippets (#15191)
  • Fix reduce() return type signature (#15386)
  • Clarify newlines before/after extractions (#15194)
  • 15266 Completion for "resource<...>" should include the necessary str… (#15267)
  • Allow extracting param as resource-derived type (#15282)
  • Fix linter rule: Max variables limit increased from 256 -> 512 (#15464)

v0.30.23

24 Sep 17:46
ec3612e
Compare
Choose a tag to compare

What's Changed

  • Support named pipe fallback for IPC in local mode on unsupported platforms (#15046)

New Contributors

v0.30.3

17 Sep 14:57
2f0e78d
Compare
Choose a tag to compare

Highlights

  • Bicep error codes for core diagnostics documentation (#14881)
  • Allow Variable Symbol Access from within user defined functions (#14531)

Bugs and Features

  • Use minutes in VS Code default bicep deployment name (#14764) - thanks @Strandfelt !
  • Support completions for import file paths (#14659)
  • Handle operator precedence correctly in use-safe-access linter rule codefix (#14710)
  • Local mode Bicep issue fixes for #14770 (#14830)
  • Support validation & completions for property access on array element (#14846)
  • Rename provider -> extension in many places (#14872)
  • adding code completion for extends keyword in bicepparam files (#14986)
  • adding none in the suggested completions list (#14988)
  • Avoid assigning invalid cyclic types to declarations (#14874)
  • Trim descriptions in compiled JSON (#14870)
  • Deploy pane: link to correct Portal blade for nested deployments (#14880)
  • Relax bicepconfig.json validation for extensions, to allow file paths (#14873)
  • Add spread & multiline objects + arrays to grammar (#14983)
  • Use imported symbol identifiers rather than identity in memory to deduplicate imports when building closure (#14615)
  • Enable type narrowing on assignment of non-variable symbols (#14989)
  • Fix go to def for template spec modules (#14871)
  • Fix obsoletion warnings (#14992)
  • What If Short Circuiting Linter Rule (Default Off) (#14910)
  • Added Documentation on Extendable Bicep Params (#14865)
  • Fix for issue 12800 function arguments with comment before end token (#14699)

v0.29.47

22 Jul 21:09
132ade5
Compare
Choose a tag to compare

Bugs and Features

  • Handle special characters in use-safe-access rule correctly (#14593)
  • Fix bug with local-deploy CLI command group when using OCI (#14592)