Limit use of .Net Binaries to LTS versions
- 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
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