-
Notifications
You must be signed in to change notification settings - Fork 49.9k
[script] Add yarn generate-changelog #34962
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Comparing: 09056ab...afc94ff Critical size changesIncludes critical production bundles, as well as any change greater than 2%:
Significant size changesIncludes any change greater than 0.2%: Expand to show
|
(disclaimer: I used codex to write this script) Adds a new `yarn generate-changelog` script to simplify the process of writing changelogs. You can use it as follows: ``` $ yarn generate-changelog --help Usage: yarn generate-changelog [--codex|--claude] [--debug] [<pkg@version> ...] Options: --codex Use Codex for commit summarization. [boolean] --claude Use Claude for commit summarization. [boolean] --debug Enable verbose debug logging. [boolean] [default: false] -h, --help Show help [boolean] Examples: generate-changelog --codex Generate changelog for a single [email protected] package using Codex. generate-changelog --claude [email protected] Generate changelog entries for [email protected] multiple packages using Claude. generate-changelog --codex Generate changelog for all stable packages using recorded versions. ``` For example, if no args are passed, the script will print find all the relevant commits affecting packages (defaults to `stablePackages` in `ReactVersions.js`) and format them as a simple markdown list. ``` $ yarn generate-changelog ## [email protected] * [compiler] improve zod v3 backwards compat (#34877) ([#34877](#34877) by [@henryqdineen](https://github.com/henryqdineen)) * [ESLint] Disallow passing effect event down when inlined as a prop (#34820) ([#34820](#34820) by [@jf-eirinha](https://github.com/jf-eirinha)) * Switch to `export =` to fix eslint-plugin-react-hooks types (#34949) ([#34949](#34949) by [@karlhorky](https://github.com/karlhorky)) * [eprh] Type `configs.flat` more strictly (#34950) ([#34950](#34950) by [@poteto](https://github.com/poteto)) * Add hint for Node.js cjs-module-lexer for eslint-plugin-react-hook types (#34951) ([#34951](#34951) by [@karlhorky](https://github.com/karlhorky)) * Add hint for Node.js cjs-module-lexer for eslint-plugin-react-hook types (#34953) ([#34953](#34953) by [@karlhorky](https://github.com/karlhorky)) // etc etc... ``` If `--codex` or `--claude` is passed, the script will attempt to use them to summarize the commit(s) in the same style as our existing CHANGELOG.md. And finally, for debugging the script you can add `--debug` to see what's going on.
| log(`Summarizer prompt length: ${prompt.length} characters.`); | ||
|
|
||
| try { | ||
| const raw = await runSummarizer(summarizer, prompt); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm curious what the perf is like here and wonder about batching multiple together into one request. Probably fine for smaller changelogs like eprh, but I wonder if a React release would make it crawl.
One other consideration for follow up is if we can determine its an internal only change, we can avoid generating summaries.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It took about ~30s for me when I ran it on all packages. I originally started with a single request but it turned out to be very large context-wise as it passes along all the commit message bodies in the prompt. So I opted with batching it per package
(disclaimer: I used codex to write this script)
Adds a new
yarn generate-changelogscript to simplify the process of writing changelogs. You can use it as follows:For example, if no args are passed, the script will print find all the relevant commits affecting packages (defaults to
stablePackagesinReactVersions.js) and format them as a simple markdown list.If
--codexor--claudeis passed, the script will attempt to use them to summarize the commit(s) in the same style as our existing CHANGELOG.md.And finally, for debugging the script you can add
--debugto see what's going on.