Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jul 16, 2025

This PR implements automated release notes generation for React Native Windows using a new yarn release-notes command, based on the approach from PR #14720.

Changes Made

New Package: @rnw-scripts/generate-release-notes

  • Created a new workspace package that fetches commits from GitHub API
  • Automatically categorizes commits into: Breaking Changes, New Features, Reliability, Architecture changes
  • Filters out bot commits and package updates
  • Generates properly formatted markdown with GitHub links

Updated Configuration

  • Version: Updated from 0.79 to 0.80.0
  • Date Range: Set to June 1st, 2025 - July 16th, 2025 as requested
  • Root Script: Added yarn release-notes command to main package.json

Usage

# Set environment variables
export GITHUB_TOKEN=<your-personal-access-token>
export RELEASE_TAG=0.80.0
export START_DATE=2025-06-01
export END_DATE=2025-07-16

# Run the script
yarn release-notes

Output

The script generates release_notes.md in packages/@rnw-scripts/generate-release-notes/ with:

  • Professional release notes format
  • Commit categorization and filtering
  • Direct links to GitHub commits
  • Proper markdown formatting for documentation

Sample Output Format

0.80.0 Release Notes

We're excited to release React Native Windows 0.80.0 targeting React Native 0.80.0!
This release includes the commits to React Native Windows from 6/1/2025 - 7/16/2025.

## How to upgrade
[Standard upgrade instructions with links]

## Breaking Changes
- [Categorized commits with GitHub links]

## New Features
- [Feature commits with descriptions and links]

## Reliability
- [Bug fixes and stability improvements]

This automation will significantly reduce manual effort in creating release notes while ensuring consistent formatting and comprehensive commit coverage.

Fixes #14906.

Warning

Firewall rules blocked me from connecting to one or more addresses

I tried to connect to the following addresses, but was blocked by firewall rules:

  • googlechromelabs.github.io
    • Triggering command: /usr/local/bin/node install.mjs (dns block)
  • https://api.github.com/repos/microsoft/react-native-windows/commits
    • Triggering command: node generate-release-notes.js (http block)
    • Triggering command: /usr/local/bin/node generate-release-notes.js (http block)
  • https://storage.googleapis.com/chrome-for-testing-public/130.0.6723.116/linux64/chrome-headless-shell-linux64.zip
    • Triggering command: /usr/local/bin/node install.mjs (http block)
  • https://storage.googleapis.com/chrome-for-testing-public/130.0.6723.116/linux64/chrome-linux64.zip
    • Triggering command: /usr/local/bin/node install.mjs (http block)

If you need me to access, download, or install something from one of these locations, you can either:


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Automate Creation of Release Notes Automate Creation of Release Notes with yarn script for version 0.80 Jul 16, 2025
Copilot AI requested a review from anupriya13 July 16, 2025 06:00
Copilot finished work on behalf of anupriya13 July 16, 2025 06:00
@anupriya13
Copy link
Contributor

okay so the format is correct but I want to improve the first line summary, currently we are adding the title as it is but we need a 1 liner summary of the PR which is more readable.

Example:
Fix : adjustsFontSizeToFit just redrawing won't recalculate the layout (#14813) Fix : adjustsFontSizeToFit just redrawing won't recalculate the layout (#14813) · microsoft/react-native-windows@3e6cccc (github.com)

this one should be

Fixed an issue where changes to the adjustsFontSizeToFit property on Text components did not properly recalculate text layout Fix : adjustsFontSizeToFit just redrawing won't recalculate the layout (#14813) · microsoft/react-native-windows@3e6cccc (github.com)

Can you update the script.

One way can be reading the description of the PR of the commit and search for this sentence "Add a brief summary of the change to use in the release notes for the next release." add what's after this line

Copy link
Contributor Author

Copilot AI commented Jul 16, 2025

okay so the format is correct but I want to improve the first line summary, currently we are adding the title as it is but we need a 1 liner summary of the PR which is more readable.

Example:
...

Updated the script to extract release notes summaries from PR descriptions. The script now looks for text after "Add a brief summary of the change to use in the release notes for the next release." and uses that as the commit summary instead of the raw commit title. This provides more readable release notes as requested. 5e335dc

Copilot finished work on behalf of anupriya13 July 16, 2025 06:26
@anupriya13
Copy link
Contributor

anupriya13 commented Jul 16, 2025

okay now add one more logic if in the pr description after this line "Should this change be included in the release notes:" if there is "yes" or "yes" then only include in release notes else don't.

Also the last line starting from "###### Microsoft Reviewers: [Open in CodeFlow" should not be added in summary or description of PR in release notes.

Copy link
Contributor Author

Copilot AI commented Jul 16, 2025

okay now add one more logic if in the pr description after this line "Should this change be included in the release notes:" if there is "yes" or "yes" then only include in release notes else don't.
...

Added the requested logic to filter commits based on "Should this change be included in the release notes: yes/yes" and to remove Microsoft Reviewers lines from summaries. The script now only includes PRs marked for release notes inclusion and provides cleaner formatting. c6e5c93

Copilot finished work on behalf of anupriya13 July 16, 2025 06:37
@anupriya13
Copy link
Contributor

okay now one thing we need to improve is categorisation logic the PR description will have one of these :

Type of Change

Erase all that don't apply.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

If the PR description has "Bug fix" then map it to "Reliability" section in release notes.
If the PR description has "New feature" then map it to "New Features" section in release notes.
If the PR description has "Breaking change" then map it to "Breaking Changes" section in release notes.
If the PR description or title has "Fabric" or "Implement" or "prop" then add it in "New Architecture-specific changes" section in release notes.
Rest if any other will go under "Other" section in release notes.

Copy link
Contributor Author

Copilot AI commented Jul 16, 2025

okay now one thing we need to improve is categorisation logic the PR description will have one of these :

Type of Change

Erase all that don't apply.
...

Updated the categorization logic to use the PR "Type of Change" section as requested. The script now maps:

  • "Bug fix" → Reliability section
  • "New feature" → New Features section
  • "Breaking change" → Breaking Changes section
  • PRs with "Fabric", "Implement", or "prop" in title/description → New Architecture-specific changes section
  • Everything else → Other section

56f0317

Copilot finished work on behalf of anupriya13 July 16, 2025 07:14
@anupriya13
Copy link
Contributor

LGTM! :)

@anupriya13 anupriya13 marked this pull request as ready for review July 16, 2025 08:22
@anupriya13 anupriya13 requested a review from a team as a code owner July 16, 2025 08:22
@anupriya13 anupriya13 changed the base branch from main to AUTOMATE_0.80_RN July 16, 2025 08:22
@anupriya13 anupriya13 merged commit a651c27 into AUTOMATE_0.80_RN Jul 16, 2025
1 check passed
anupriya13 added a commit that referenced this pull request Jul 21, 2025
* Automate Creation of Release Notes with yarn script for version 0.80 (#14931)

* Initial plan

* Add @rnw-scripts/generate-release-notes package with updated version and dates

Co-authored-by: anupriya13 <[email protected]>

* Update package.json with proper repository info and improve .gitignore

Co-authored-by: anupriya13 <[email protected]>

* Improve commit summaries by extracting release notes from PR descriptions

Co-authored-by: anupriya13 <[email protected]>

* Add PR inclusion filtering and Microsoft Reviewers cleanup logic

Co-authored-by: anupriya13 <[email protected]>

* update logic

* Improve categorization logic based on PR Type of Change section

Co-authored-by: anupriya13 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: anupriya13 <[email protected]>

* Update yarn.lock

* Use params instead of global and add --help

---------

Co-authored-by: Copilot <[email protected]>
@anupriya13 anupriya13 deleted the copilot/fix-14906-2 branch August 8, 2025 05:06
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.

Automate Creation of Release Notes

2 participants