Azure / Azure/typespec-azure

Migrate swagger to TypeSpec for brownfield service

Open
#1,850 0 comments 1 reaction 0 assignees View on GitHub
epic external:swagger-converter
Dominant language
TypeScript
Stars
27
Forks
90
Avg merge
1d 21h
Merged PRs (30d)
164

Description

### Exit Criterion

**Long term**
1. Functional equivalent TypeSpec
2. Functional equivalent SDK from TypeSpec without breaking change

**Short term**
1. Functional equivalent TypeSpec
2. Functional equivalent SDK from swagger generated from TypeSpec without breaking change

### TypeSpec feature gap for Compute
Compute is where our current effort is, which has high priority.
```[tasklist]
### Tasks
- [ ] https://github.com/Azure/typespec-azure/issues/1849
- [ ] https://github.com/Azure/typespec-azure/issues/234
- [ ] https://github.com/Azure/typespec-azure/issues/1844
- [ ] https://github.com/Azure/typespec-azure/issues/1845
- [ ] https://github.com/Azure/typespec-azure/issues/1846
- [ ] https://github.com/Azure/typespec-azure/issues/1474
- [ ] https://github.com/Azure/typespec-azure/issues/1848
- [ ] https://github.com/Azure/typespec-azure/issues/1757
- [ ] https://github.com/Azure/typespec-azure/issues/1901
- [ ] https://github.com/Azure/typespec-azure/issues/1906
- [ ] https://github.com/Azure/typespec-azure/issues/1911
- [ ] https://github.com/Azure/typespec-azure/issues/1785
- [ ] https://github.com/Azure/typespec-azure/issues/2064
- [ ] https://github.com/Azure/typespec-azure/issues/2081
- [ ] https://github.com/Azure/typespec-azure/issues/2058
- [ ] https://github.com/Azure/typespec-azure/issues/2124
- [ ] https://github.com/Azure/typespec-azure/issues/2189
```
#### SDK diff
```[tasklist]
### Tasks
- [ ] https://github.com/Azure/azure-sdk-for-java/issues/43116
- [ ] https://github.com/Azure/azure-sdk-for-python/issues/38620
- [ ] https://github.com/Azure/azure-sdk-for-js/issues/32007
```
### Diff tool gap
Though they are all tool issues, it is important to fix with high priority. Because without these, it is difficult for us to tell whether the conversion is correct.
```[tasklist]
### Tasks
- [ ] https://github.com/Azure/typespec-azure/issues/1855
- [ ] https://github.com/Azure/typespec-azure/issues/1856
```

### TypeSpec feature gap for others

#### Common
```[tasklist]
### Tasks
- [ ] https://github.com/Azure/typespec-azure/issues/1428
- [ ] https://github.com/Azure/typespec-azure/issues/1261
- [ ] https://github.com/Azure/typespec-azure/issues/1784
- [ ] https://github.com/Azure/typespec-azure/issues/1270
```

#### HybridConnectivity
```[tasklist]
### Tasks
- [ ] https://github.com/Azure/typespec-azure/issues/1931
- [ ] https://github.com/Azure/typespec-azure/issues/1962
- [ ] https://github.com/Azure/typespec-azure/issues/2054
```

#### Chaos
```[tasklist]
### Tasks
- [ ] https://github.com/Azure/typespec-azure/issues/1979
```

### SDK feature gap

**.net**
```[tasklist]
### Tasks
- [ ] https://github.com/Azure/autorest.csharp/issues/5164
- [ ] https://github.com/Azure/autorest.csharp/issues/5168
- [ ] https://github.com/Azure/autorest.csharp/issues/5195
- [ ] https://github.com/Azure/autorest.csharp/issues/5198
- [ ] https://github.com/Azure/autorest.csharp/issues/5226
- [ ] https://github.com/Azure/autorest.csharp/issues/5231
```

### Tool gap
For compute, we are now converting manually. But all these efforts should be integrated into converter so that following services could do automatically. What's more, the `tsp-client sort-swagger` and `tsp-client compare` should be improved as well.

```[tasklist]
### Tasks
- [ ] https://github.com/Azure/autorest/issues/5037
- [ ] https://github.com/Azure/autorest/issues/5038
- [ ] https://github.com/Azure/autorest/issues/5039
- [ ] https://github.com/Azure/autorest/issues/5040
- [ ] https://github.com/Azure/autorest/issues/5041
- [ ] https://github.com/Azure/autorest/issues/5059
- [ ] https://github.com/Azure/autorest/issues/5060
- [ ] https://github.com/Azure/autorest/issues/5061
- [ ] https://github.com/Azure/autorest/issues/5062
- [ ] https://github.com/Azure/autorest/issues/5063
```

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the linked TypeSpec feature-gap tasks, SDK diff issues, and tool-gap issues, with Compute listed as the current priority. Compare the resulting work against the short- and long-term exit criteria: functionally equivalent TypeSpec and SDKs without breaking changes, supported by the diff tools.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.