[JS] Migrate General Changelog Detection Tool
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 130
Description
# Problem
Current changelog detection tool is based on hardcode approach, which result in unsupport or buggy detections for many cases: e.g. breaking changes in inheritence. And it's not supprised to find more and more when JS emitter keeps update. This is due to hardcode approach only supports a small subset of breaking change detection, when generated sdk become more complex, more bugs we get.
# Related Issues
- https://github.com/Azure/azure-sdk-tools/issues/10280
- https://github.com/Azure/azure-sdk-tools/issues/7883
# Solutions
## Migrate Breaking changes to use typescript API version
- Migrate to typescript API to detect breaking changes, much more precise and support more complex scenarios
- Migrate suppressions file (generated by changelog-breaking-change-items in generation tool) to co-support old breaking change tool and the new one by the same way we add `breaking-change-items patch ` of RLC breaking change detection to support old suppression files (suppressions item in suppression file is mapping one by one with changelog-breaking-change-items in generation tool)
Contributor guide
Research direction
Start by reading the current changelog detection implementation and the related issues #10280 and #7883. Trace how the TypeScript API detects breaking changes and how changelog-breaking-change-items suppression files are handled; done means the migrated detector supports the existing suppression workflow and complex breaking-change cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100