Releases: Azure/bicep
Releases · Azure/bicep
v0.34.44
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
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
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
Highlights
-
Add
resourceInput<>
andresourceOutput<>
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
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
/
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)
- Update
jsonrpc.test.ts
reference (#15657)
- Add case-insensitive equality operators to grammar (#15640)
v0.31.92
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 atbuild-params
command (#15107) -- thanks @polatengin!
v0.31.34
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
What's Changed
- Support named pipe fallback for IPC in local mode on unsupported platforms (#15046)
New Contributors
- @gerbermarco made their first contribution in #15047
v0.30.3
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)