Support wildcards in defining versions used for bicep registry modules and template spec modules
- 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
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