Description
Which area this feature is related to?
/area registry
Which functionality do you think we should add?
In order to provide better parent adoption, we need to start supporting multiple versions of devfile to be stored in a given registry so that the user can refer to a specific version of a parent devfile.
Why is this needed? Is your feature request related to a problem?
As a new version of devfile specification, e.g. devfile 2.2, gets introduced, stack providers may want to provide different versions of a stack to provide support based on different devfile specifications. This is important since different tools/stacks will move up to a new devfile specification support at a different pace. It will be helpful for transitioning to a newer version of the specification without causing breakage to existing tools.
Detailed description:
Describe the solution you'd like
More investigation is required to provide multiple versions of the same devfile in a registry. The area of consideration should include:
- Structure the source repository on how a stack can provide different versions of the same stack/devfile
- How the registry REST API, Go library allows clients to filter the specific version(s) of the devfile, e.g. only devfile 2.1 and 2.2, when querying the list of devfile the registry
- Any potential new metadata needed on the index.json
- How it affects the registry build
- What infrastructure/API does tools need to support multiple devfile versions
- How do we represent different versions in the devfile registry viewer
- Stretch: take into consideration supporting devfiles of the same stack that uses different base images when designing this feature (see Discussion on switching to use universal developer image in devfile samples #674 for details)
Describe alternatives you've considered
Use different registries to store devfiles using different devfile specification versions. This approach means we have to maintain multiple registries at the same time and the user will need to know different URLs for the registry access as well as the registry viewer.