Azure / Azure/bicep

Limit use of .Net Binaries to LTS versions

Open
#12,029 3 comments 0 reactions 0 assignees View on GitHub
enhancement Needs: Upvote
Dominant language
Bicep
Stars
3.6k
Forks
830
Avg merge
1d 2h
Merged PRs (30d)
79

Description

It appears that to interface correctly with Bicep, external/helper systems such as PSBicep must also be using the same version of .Net. Currently, Bicep appears to be using the stable .Net branch rather than LTS. This will likely cause regular conflicts when using these tools in First Party products such as Azure DevOps and Azure Automation as these products have a policy of only using LTS versions of PowerShell which inherently have to operate on LTS versions on .Net.

As an example, my DevOps pipeline automatically downloads and uses the latest version of PSBicep to make easy use of Bicep files in a subscription deployment pipeline. As of PSBicep version 2.4.0 (which upgraded to bicep 0.18) PowerShell 7.3 is required as it needs to interface with the Bicep .Net 7 binaries (https://learn.microsoft.com/en-us/powershell/scripting/install/powershell-support-lifecycle?view=powershell-7.3 https://twitter.com/SimonWahlin/status/1708892280655163637) As PowerShell 7.3 is not a LTS version, the DevOps team are unwilling to deploy it to the Microsoft Managed agents (https://github.com/actions/runner-images/issues/8436). While there is a workaround for DevOps as we can upgrade the agent dynamically, this is not possible with Azure Automation (https://twitter.com/ehmiiz/status/1708911038760935443).

Ideally limiting Bicep to using LTS versions of .Net would enable systems like PSBicep to also match the use of LTS. This would then significantly reduce the time when systems are unable to use the latest versions of Bicep due to .Net compatibility issues.

Contributor guide

Open the contributing guide

Research direction

The issue names no repository files, tests, or entry points. Start by locating the configuration that selects Bicep's .NET target and checking how PSBicep consumes the resulting binaries. Done means Bicep uses an LTS .NET version and remains compatible with LTS PowerShell environments such as Azure Automation.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.