Azure / Azure/azure-sdk-tools

[JS] Migrate General Changelog Detection Tool

Open
#10,800 3 comments 0 reactions 0 assignees View on GitHub
Automation 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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.