Identify API versions from language-specific SDK metadata files
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 144
Description
## Background
SDK generators emit metadata files alongside generated SDK source code. These files can provide the `api-version` used to generate a package, avoiding source-code heuristics when identifying API versions.
File names and locations differ by language:
| Language | Metadata file location | MPG/DPG coverage |
| --- | --- | --- |
| Java | `src/main/resources/META-INF/*_metadata.json` | Confirmed for both MPG and DPG |
| JavaScript | `metadata.json` in the SDK package root | Confirmed |
| Python | `_metadata.json` in the root of each SDK folder | Confirmed |
| Go | `_metadata.json` under each package's `testdata` folder | Confirmed |
| .NET | `metadata.json` alongside `CHANGELOG` and `README` in the project root | Confirmed to use the same file for MPG and DPG |
Implement API-version discovery from these generated metadata files in the SDK analysis flow. The implementation should account for language-specific paths and schemas rather than assuming that every language uses the same file name, location, or JSON field shape.
## Scope
- Discover the applicable metadata file for Java, JavaScript, Python, Go, and .NET SDK packages.
- Parse and normalize the generated `api-version` value or values from each supported metadata schema.
- Define deterministic behavior when a metadata file is missing, malformed, contains no API version, or contains multiple API versions.
## Reference
- [Weekly sync-up for LLC discussion](https://teams.microsoft.com/l/message/19:meeting_MWQ2ODAwOTgtMmI4Mi00MWY2LTkxZjgtNzE0N2FjOGJhNDVi@thread.v2/1788226452862?context=%7B%22contextType%22:%22chat%22%7D)
Contributor guide
Research direction
Start by locating the SDK analysis flow that currently identifies API versions, then inspect generated metadata in the language-specific paths listed for Java, JavaScript, Python, Go, and .NET. Done means each supported schema is normalized correctly and missing, malformed, empty, or multi-version metadata follows documented deterministic behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, go, java, javascript, python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100