Azure / Azure/openapi-diff

False positives when readOnly property using referenced enum

Open
#286 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
290
Forks
50
Avg merge
5d 13h
Merged PRs (30d)
5

Description

**Describe the bug**

I'm working on https://github.com/Azure/azure-rest-api-specs-pr/pull/15631 and there are a lot of false positives with a message of `The read only property has changed from 'true' to 'false'.

![image](https://github.com/Azure/typespec-azure/assets/87583576/60ec9d9a-3bb8-453c-b3fc-6d5c8846e119)

**To Reproduce**
As an example from that PR:
``` typespec
@doc("Subscription trial availability")
model Trial {
@doc("Trial status")
@visibility("read")
status?: TrialStatus;
```

It does produce `readOnly`.
``` json
"status": {
"$ref": "#/definitions/TrialStatus",
"description": "Trial status",
"readOnly": true
},
```

But before it was not a `$ref`, it was inline:
```json
"status": {
"description": "Trial status",
"type": "string",
"enum": [
"TrialAvailable",
"TrialUsed",
"TrialDisabled"
],
"readOnly": true,
"x-ms-enum": {
"name": "TrialStatus",
"modelAsString": true
}
},
```

**Expected behavior**
It is not marked as a breaking change.

Contributor guide

Open the contributing guide

Research direction

Start by inspecting the comparison described in Azure/azure-rest-api-specs-pr#15631, using the Trial model and referenced TrialStatus enum as the reproduction case. Trace where the diff compares the previous inline enum schema with the new $ref schema and readOnly value. Done means this equivalent change is no longer reported as a breaking readOnly change.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, openapi
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.