Azure / Azure/bicep

Support wildcards in defining versions used for bicep registry modules and template spec modules

Open
#4,186 12 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Bicep
Stars
3.6k
Forks
830
Avg merge
1d 21m
Merged PRs (30d)
79

Description

**Is your feature request related to a problem? Please describe.**
We use [semantic versioning](https://semver.org/). This means that when you release minor or patch version you are not introducing a breaking change and end users can use your solution without having to modify input parameters. With the current implementation of Bicep registry you have to define static version value if it is template spec or bicep registry module. This means that if you want to use new version of the referenced module you have two options:
* modify your solution to use another version. This means that you need to increase the version of that solution also. This also results in more development hours (code, test, review, release) and if you want to fix the reference of that module in multiple versions of your solution you will have to code and release multiple versions of your solutions as well
* overwrite the referenced bicep registry / template spec module. In this case the semantic versioning is lost when you use bicep registry / template spec. You are loosing following some best practices for coding and releasing.

**Describe the solution you'd like**
as you fetch the modules upon bicep build or when developing via VS code nothing stops you if you have version defined like 1.* to fetch all 1.x versions and take the latest. It is simple sorting. For example in our pipelines when we publish solutions as template spec our end users can define which version of the solution they want to publish by not only specifying version like 1.8.4 but also like 1.8.*, 1.* and *.*. That way when a solution is published as template spec they fetch the latest version available according to the value they have specified from our artifacts and publish that version as template spec.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how Bicep build and VS Code fetch versions for Bicep registry modules and template spec modules. Define the wildcard forms described in the issue, including 1.8.*, 1.* and *.*, and verify that each selects the latest matching available version.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure
Domain
build-system, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.