Skip to content

WIP#3

Merged
coado merged 25 commits intomainfrom
@dmalecki/add-breaking-change-det-bot
Jun 16, 2025
Merged

WIP#3
coado merged 25 commits intomainfrom
@dmalecki/add-breaking-change-det-bot

Conversation

@coado
Copy link
Copy Markdown
Owner

@coado coado commented Jun 13, 2025

Summary:

Changelog:

Test Plan:

coado and others added 24 commits June 12, 2025 23:46
…ook#51972)

Summary:
This diff adds snapshot `diff-api-snapshot` script for public JS API breaking change detection.

### Motivation
Detecting if there are any breaking changes introduced in the commit. It is achieved by comparing `ReactNativeApi.d.ts` rollup from the current and previous revision.

This is a naive implementation with a three possible outcomes:
- BREAKING
- POTENTIALLY_NOT_BREAKING,
- NOT_BREAKING

The algorithm analyses exported top-level statements (after inlining) in both rollups and tries to create a mapping between them by name.

The **BREAKING** outcome happens whenever the statement is:
- removed
- renamed
- changed
- not exported anymore (private)

The **POTENTIALLY_NOT_BREAKING** outcome  happens if it's not BREAKING and the new statement is added.

The **NOT_BREAKING** outcome happens if public API snapshot doesn't change.

Changelog:
[General][Added] - Add public JS API breaking change detection under `yarn diff-api-snapshot` script.

Pull Request resolved: facebook#51972

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

Rollback Plan:

Differential Revision: D76430965

Pulled By: coado
@coado
Copy link
Copy Markdown
Owner Author

coado commented Jun 13, 2025

**API Breaking Change Detection Result**:
**Snapshot Comparison**:
```json
{
"result": "POTENTIALLY_NON_BREAKING",
"changedApis": ["AlertButton"]
}
```

@coado
Copy link
Copy Markdown
Owner Author

coado commented Jun 13, 2025

**API Breaking Change Detection Result**:
**Snapshot Comparison**:
```json
{
"result": "POTENTIALLY_NON_BREAKING",
"changedApis": ["AlertButton"]
}
```

@coado coado merged commit f6f0bc5 into main Jun 16, 2025
66 of 72 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant