Crash if duplicate model names (across files) used in allOf
@mikeharder 已经在做这个了。
开始于 2026年5月5日。
评估
这个 Issue 还没有评估数据。
描述
A TSP conversion PR resulted in this error:
"details":"incompatible properties : tags
definitions/ContainerGroup/properties/tags
at file:///home/runner/work/azure-rest-api-specs/azure-rest-api-specs/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/ContainerInstance/stable/2025-09-01/containerInstance.json#L2245:8
definitions/Resource/properties/tags
at file:///home/runner/work/azure-rest-api-specs/azure-rest-api-specs/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/ContainerInstance/stable/2025-09-01/containerInstance.json#L4642:8"
- https://github.com/Azure/azure-rest-api-specs/actions/runs/23628050434
- https://github.com/Azure/azure-rest-api-specs/pull/41602
Root cause, oad cannot handle two definitions in different files with the same name, if one definition is used in an allOf:
duplicate-names.json
{
"swagger": "2.0",
"info": {
"title": "duplicate-names",
"version": "1.0"
},
"paths": {},
"definitions": {
"Bar": {
"type": "object",
"properties": {
"p1": {
"type": "string"
}
},
"allOf": [
{
"$ref": "./common-types.json#/definitions/Foo"
}
]
},
"Foo": {
"type": "object",
"properties": {
"p1": {
"type": "object"
}
}
}
}
}
common-types.json
{
"swagger": "2.0",
"info": {
"title": "common-types",
"version": "1.0"
},
"paths": {},
"definitions": {
"Foo": {
"type": "object",
"properties": {
"p1": {
"type": "string"
}
}
}
}
}
test result
incompatible properties : p1
definitions/Bar/properties/p1
at file:///home/mharder/openapi-diff-mh/incompat-prop/src/test/specs/incompatible-properties/duplicate-names.json#L12:8
definitions/Foo/properties/p1
at file:///home/mharder/openapi-diff-mh/incompat-prop/src/test/specs/incompatible-properties/duplicate-names.json#L25:8
Reason, it assumes model names are unique across all files:
Related: #347
- 主要语言
- C#
- 星标
- 290
- 派生
- 50
- 平均合并
- 2 天 21 小时
- 30 天内合并 PR
- 10
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Azure/openapi-diff 的其他 Issue
-
Azure/openapi-diff#482 · 已指派 1 人 ·
-
Azure/openapi-diff#456 · 已指派 1 人 ·
-
难度 4/5 3-5 天 新手友好度 35/100
Azure/openapi-diff#445 ·
-
Azure/openapi-diff#371 · 7 条评论 · 已指派 1 人 ·
-
难度 4/5 3-5 天 新手友好度 25/100
Azure/openapi-diff#364 · 4 条评论 ·
查看 Azure/openapi-diff 的全部 Issue
相似的 Issue
-
bug
难度 1/5 1 小时以内 新手友好度 90/100
-
Type: enhancement
难度 2/5 1-3 小时 新手友好度 65/100
apache/arrow-adbc#4809 ·
-
type/automation type/tech-debt
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 65/100
microsoft/vscode-azurefunctions#5197 · 1 条评论 ·
-
难度 1/5 1 小时以内 新手友好度 85/100
microsoft/microsoft-ui-reactor#1274 ·