Skip to content
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

Changelog script: More fine-grained Changelogs for patch releases #28424

Merged
merged 11 commits into from
Feb 17, 2021

Conversation

ockham
Copy link
Contributor

@ockham ockham commented Jan 22, 2021

Description

The Changelog generator script, bin/plugin/commands/changelog.js, currently doesn't support patch releases: It's only possible to generate a Changelog for a given milestone (which are per-minor-release, i.e. per-release-branch), but not on a more fine-grained basis. If the Changelog script is run for a patch release, the generated Changelog includes everything from the .0 stable release from that series up to the patch release.

This PR adds an --unreleased option to the Changelog script that makes it look up the latest release in the series, and only includes issues that were modified after that release was published. This will allow us to use the script to generate the Changelog for patch releases (or at least a baseline -- see 'Discussion' for a caveat).

This will come in handy as we automate more and more parts of the build process -- especially to auto-generate a Changelog for patch releases, and to pre-populate the corresponding release notes. (Cf. #28138.)

How has this been tested?

Apply this patch to simulate that you're creating the Changelog for v9.8.1, and that the latest release is v9.8.0:

diff --git a/bin/plugin/lib/milestone.js b/bin/plugin/lib/milestone.js
index ef246b2105..0421ab109f 100644
--- a/bin/plugin/lib/milestone.js
+++ b/bin/plugin/lib/milestone.js
@@ -73,7 +73,7 @@ async function getIssuesByMilestone( octokit, owner, repo, milestone, state ) {
 
        for await ( const releasesPage of releases ) {
                latestReleaseInSeries = releasesPage.data.find( ( release ) =>
-                       release.name.startsWith( series )
+                       release.name.startsWith( '9.8.0' )
                );
 
                if ( latestReleaseInSeries ) {

Then, run:

npm run changelog -- --milestone="Gutenberg 9.8"

Output

Before:

Basically like the 9.8.0 changelog, plus the PRs on the 9.8 milestone that have been merged since 9.8.

After:

Only issues that have been modified since 9.8.0 was published:

💃Preparing changelog for milestone: "Gutenberg 9.8"

### Enhancements

- Try: Transparent spacer. ([28103](https://github.com/WordPress/gutenberg/pull/28103))

### Bug Fixes

- Fix cover matrix alignment. ([28404](https://github.com/WordPress/gutenberg/pull/28404))
- Revert "Cover: Fix matrix alignment issue.". ([28364](https://github.com/WordPress/gutenberg/pull/28364))
- Cover: Fix matrix alignment issue. ([28361](https://github.com/WordPress/gutenberg/pull/28361))
- Fix nested cover block bug. ([28114](https://github.com/WordPress/gutenberg/pull/28114))

### Experiments

- FSE: Fix iframe error in Firefox. ([28212](https://github.com/WordPress/gutenberg/pull/28212))

### Various

- Add srcset for cover image. ([25171](https://github.com/WordPress/gutenberg/pull/25171))

Discussion

Note that this still includes a few erroneous entries (e.g. the srcset issue under the Various heading). The reason for these is that we use the since parameter to filter for issues that have been modified since the previous release in the series was published. However, that doesn't just include closed issues, but also issues to which a new comment was added, or that were otherwise modified.

I do think however that it's better to (manually) go through a few stray extra Changelog entries rather than getting the entire Changelog for the .0 version of the series again.

Possible future improvements

In a future iteration, I think we should maybe reconsider our source of truth for Changelog generation: Maybe we shouldn't query the list of issues/PRs for the milestone from the GitHub API. Instead, we have more reliable information right at our fingertips: git itself. We might just want to call git log with some arguments to get that exact kind of information (in a more reliable way than from GH's milestone, which just manually replicates that information). If we still want/need PR numbers etc, we can probably query those from the GH API, based on the Changelog obtained from git.

@ockham ockham added the [Type] Build Tooling Issues or PRs related to build tooling label Jan 22, 2021
@ockham ockham self-assigned this Jan 22, 2021
@github-actions
Copy link

github-actions bot commented Jan 22, 2021

Size Change: +219 B (0%)

Total Size: 1.38 MB

Filename Size Change
build/block-directory/index.js 9.1 kB +1 B (0%)
build/block-editor/index.js 124 kB +27 B (0%)
build/block-library/index.js 145 kB +62 B (0%)
build/blocks/index.js 48.3 kB +35 B (0%)
build/components/index.js 272 kB +64 B (0%)
build/compose/index.js 11 kB +1 B (0%)
build/core-data/index.js 16.7 kB -2 B (0%)
build/customize-widgets/index.js 4.08 kB +1 B (0%)
build/dom-ready/index.js 576 B +5 B (+1%)
build/edit-widgets/index.js 20 kB +1 B (0%)
build/editor/index.js 41.9 kB -1 B (0%)
build/keycodes/index.js 1.95 kB +21 B (+1%)
build/media-utils/index.js 5.36 kB +1 B (0%)
build/plugins/index.js 2.55 kB +1 B (0%)
build/reusable-blocks/index.js 2.92 kB +1 B (0%)
build/server-side-render/index.js 2.77 kB +1 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.78 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.84 kB 0 B
build/blob/index.js 665 B 0 B
build/block-directory/style-rtl.css 1.01 kB 0 B
build/block-directory/style.css 1.01 kB 0 B
build/block-editor/style-rtl.css 12.1 kB 0 B
build/block-editor/style.css 12.1 kB 0 B
build/block-library/blocks/archives/editor-rtl.css 61 B 0 B
build/block-library/blocks/archives/editor.css 60 B 0 B
build/block-library/blocks/audio/editor-rtl.css 58 B 0 B
build/block-library/blocks/audio/editor.css 58 B 0 B
build/block-library/blocks/audio/style-rtl.css 103 B 0 B
build/block-library/blocks/audio/style.css 103 B 0 B
build/block-library/blocks/block/editor-rtl.css 161 B 0 B
build/block-library/blocks/block/editor.css 161 B 0 B
build/block-library/blocks/button/editor-rtl.css 475 B 0 B
build/block-library/blocks/button/editor.css 474 B 0 B
build/block-library/blocks/button/style-rtl.css 465 B 0 B
build/block-library/blocks/button/style.css 464 B 0 B
build/block-library/blocks/buttons/editor-rtl.css 233 B 0 B
build/block-library/blocks/buttons/editor.css 233 B 0 B
build/block-library/blocks/buttons/style-rtl.css 303 B 0 B
build/block-library/blocks/buttons/style.css 303 B 0 B
build/block-library/blocks/calendar/style-rtl.css 208 B 0 B
build/block-library/blocks/calendar/style.css 208 B 0 B
build/block-library/blocks/categories/editor-rtl.css 84 B 0 B
build/block-library/blocks/categories/editor.css 83 B 0 B
build/block-library/blocks/categories/style-rtl.css 79 B 0 B
build/block-library/blocks/categories/style.css 79 B 0 B
build/block-library/blocks/code/style-rtl.css 90 B 0 B
build/block-library/blocks/code/style.css 90 B 0 B
build/block-library/blocks/columns/editor-rtl.css 190 B 0 B
build/block-library/blocks/columns/editor.css 190 B 0 B
build/block-library/blocks/columns/style-rtl.css 421 B 0 B
build/block-library/blocks/columns/style.css 421 B 0 B
build/block-library/blocks/cover/editor-rtl.css 390 B 0 B
build/block-library/blocks/cover/editor.css 389 B 0 B
build/block-library/blocks/cover/style-rtl.css 1.25 kB 0 B
build/block-library/blocks/cover/style.css 1.25 kB 0 B
build/block-library/blocks/embed/editor-rtl.css 486 B 0 B
build/block-library/blocks/embed/editor.css 486 B 0 B
build/block-library/blocks/embed/style-rtl.css 396 B 0 B
build/block-library/blocks/embed/style.css 395 B 0 B
build/block-library/blocks/file/editor-rtl.css 199 B 0 B
build/block-library/blocks/file/editor.css 198 B 0 B
build/block-library/blocks/file/style-rtl.css 248 B 0 B
build/block-library/blocks/file/style.css 248 B 0 B
build/block-library/blocks/freeform/editor-rtl.css 2.45 kB 0 B
build/block-library/blocks/freeform/editor.css 2.45 kB 0 B
build/block-library/blocks/gallery/editor-rtl.css 689 B 0 B
build/block-library/blocks/gallery/editor.css 690 B 0 B
build/block-library/blocks/gallery/style-rtl.css 1.07 kB 0 B
build/block-library/blocks/gallery/style.css 1.06 kB 0 B
build/block-library/blocks/group/editor-rtl.css 318 B 0 B
build/block-library/blocks/group/editor.css 317 B 0 B
build/block-library/blocks/group/style-rtl.css 57 B 0 B
build/block-library/blocks/group/style.css 57 B 0 B
build/block-library/blocks/heading/editor-rtl.css 129 B 0 B
build/block-library/blocks/heading/editor.css 129 B 0 B
build/block-library/blocks/heading/style-rtl.css 76 B 0 B
build/block-library/blocks/heading/style.css 76 B 0 B
build/block-library/blocks/html/editor-rtl.css 281 B 0 B
build/block-library/blocks/html/editor.css 281 B 0 B
build/block-library/blocks/image/editor-rtl.css 717 B 0 B
build/block-library/blocks/image/editor.css 716 B 0 B
build/block-library/blocks/image/style-rtl.css 477 B 0 B
build/block-library/blocks/image/style.css 478 B 0 B
build/block-library/blocks/latest-comments/editor-rtl.css 159 B 0 B
build/block-library/blocks/latest-comments/editor.css 158 B 0 B
build/block-library/blocks/latest-comments/style-rtl.css 269 B 0 B
build/block-library/blocks/latest-comments/style.css 269 B 0 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B 0 B
build/block-library/blocks/latest-posts/editor.css 137 B 0 B
build/block-library/blocks/latest-posts/style-rtl.css 523 B 0 B
build/block-library/blocks/latest-posts/style.css 522 B 0 B
build/block-library/blocks/list/editor-rtl.css 65 B 0 B
build/block-library/blocks/list/editor.css 65 B 0 B
build/block-library/blocks/list/style-rtl.css 63 B 0 B
build/block-library/blocks/list/style.css 63 B 0 B
build/block-library/blocks/media-text/editor-rtl.css 191 B 0 B
build/block-library/blocks/media-text/editor.css 191 B 0 B
build/block-library/blocks/media-text/style-rtl.css 535 B 0 B
build/block-library/blocks/media-text/style.css 532 B 0 B
build/block-library/blocks/more/editor-rtl.css 434 B 0 B
build/block-library/blocks/more/editor.css 434 B 0 B
build/block-library/blocks/navigation-link/editor-rtl.css 395 B 0 B
build/block-library/blocks/navigation-link/editor.css 397 B 0 B
build/block-library/blocks/navigation-link/style-rtl.css 704 B 0 B
build/block-library/blocks/navigation-link/style.css 702 B 0 B
build/block-library/blocks/navigation/editor-rtl.css 1.34 kB 0 B
build/block-library/blocks/navigation/editor.css 1.34 kB 0 B
build/block-library/blocks/navigation/style-rtl.css 195 B 0 B
build/block-library/blocks/navigation/style.css 195 B 0 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B 0 B
build/block-library/blocks/nextpage/editor.css 395 B 0 B
build/block-library/blocks/page-list/editor-rtl.css 214 B 0 B
build/block-library/blocks/page-list/editor.css 214 B 0 B
build/block-library/blocks/page-list/style-rtl.css 527 B 0 B
build/block-library/blocks/page-list/style.css 526 B 0 B
build/block-library/blocks/paragraph/editor-rtl.css 109 B 0 B
build/block-library/blocks/paragraph/editor.css 109 B 0 B
build/block-library/blocks/paragraph/style-rtl.css 273 B 0 B
build/block-library/blocks/paragraph/style.css 273 B 0 B
build/block-library/blocks/post-author/editor-rtl.css 209 B 0 B
build/block-library/blocks/post-author/editor.css 209 B 0 B
build/block-library/blocks/post-author/style-rtl.css 183 B 0 B
build/block-library/blocks/post-author/style.css 184 B 0 B
build/block-library/blocks/post-comments-form/style-rtl.css 250 B 0 B
build/block-library/blocks/post-comments-form/style.css 250 B 0 B
build/block-library/blocks/post-content/editor-rtl.css 139 B 0 B
build/block-library/blocks/post-content/editor.css 139 B 0 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B 0 B
build/block-library/blocks/post-excerpt/editor.css 73 B 0 B
build/block-library/blocks/post-featured-image/editor-rtl.css 338 B 0 B
build/block-library/blocks/post-featured-image/editor.css 338 B 0 B
build/block-library/blocks/post-featured-image/style-rtl.css 100 B 0 B
build/block-library/blocks/post-featured-image/style.css 100 B 0 B
build/block-library/blocks/preformatted/style-rtl.css 63 B 0 B
build/block-library/blocks/preformatted/style.css 63 B 0 B
build/block-library/blocks/pullquote/editor-rtl.css 183 B 0 B
build/block-library/blocks/pullquote/editor.css 183 B 0 B
build/block-library/blocks/pullquote/style-rtl.css 316 B 0 B
build/block-library/blocks/pullquote/style.css 316 B 0 B
build/block-library/blocks/query-loop/editor-rtl.css 90 B 0 B
build/block-library/blocks/query-loop/editor.css 89 B 0 B
build/block-library/blocks/query-loop/style-rtl.css 315 B 0 B
build/block-library/blocks/query-loop/style.css 317 B 0 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B 0 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B 0 B
build/block-library/blocks/query-pagination/editor-rtl.css 270 B 0 B
build/block-library/blocks/query-pagination/editor.css 262 B 0 B
build/block-library/blocks/query-pagination/style-rtl.css 168 B 0 B
build/block-library/blocks/query-pagination/style.css 168 B 0 B
build/block-library/blocks/query/editor-rtl.css 159 B 0 B
build/block-library/blocks/query/editor.css 160 B 0 B
build/block-library/blocks/quote/editor-rtl.css 61 B 0 B
build/block-library/blocks/quote/editor.css 61 B 0 B
build/block-library/blocks/quote/style-rtl.css 169 B 0 B
build/block-library/blocks/quote/style.css 169 B 0 B
build/block-library/blocks/rss/editor-rtl.css 201 B 0 B
build/block-library/blocks/rss/editor.css 202 B 0 B
build/block-library/blocks/rss/style-rtl.css 290 B 0 B
build/block-library/blocks/rss/style.css 290 B 0 B
build/block-library/blocks/search/editor-rtl.css 165 B 0 B
build/block-library/blocks/search/editor.css 165 B 0 B
build/block-library/blocks/search/style-rtl.css 342 B 0 B
build/block-library/blocks/search/style.css 344 B 0 B
build/block-library/blocks/separator/editor-rtl.css 99 B 0 B
build/block-library/blocks/separator/editor.css 99 B 0 B
build/block-library/blocks/separator/style-rtl.css 236 B 0 B
build/block-library/blocks/separator/style.css 236 B 0 B
build/block-library/blocks/shortcode/editor-rtl.css 504 B 0 B
build/block-library/blocks/shortcode/editor.css 504 B 0 B
build/block-library/blocks/site-logo/editor-rtl.css 201 B 0 B
build/block-library/blocks/site-logo/editor.css 201 B 0 B
build/block-library/blocks/site-logo/style-rtl.css 117 B 0 B
build/block-library/blocks/site-logo/style.css 117 B 0 B
build/block-library/blocks/social-link/editor-rtl.css 164 B 0 B
build/block-library/blocks/social-link/editor.css 165 B 0 B
build/block-library/blocks/social-links/editor-rtl.css 696 B 0 B
build/block-library/blocks/social-links/editor.css 696 B 0 B
build/block-library/blocks/social-links/style-rtl.css 1.37 kB 0 B
build/block-library/blocks/social-links/style.css 1.37 kB 0 B
build/block-library/blocks/spacer/editor-rtl.css 302 B 0 B
build/block-library/blocks/spacer/editor.css 302 B 0 B
build/block-library/blocks/spacer/style-rtl.css 48 B 0 B
build/block-library/blocks/spacer/style.css 48 B 0 B
build/block-library/blocks/subhead/editor-rtl.css 99 B 0 B
build/block-library/blocks/subhead/editor.css 99 B 0 B
build/block-library/blocks/subhead/style-rtl.css 80 B 0 B
build/block-library/blocks/subhead/style.css 80 B 0 B
build/block-library/blocks/table/editor-rtl.css 489 B 0 B
build/block-library/blocks/table/editor.css 489 B 0 B
build/block-library/blocks/table/style-rtl.css 386 B 0 B
build/block-library/blocks/table/style.css 386 B 0 B
build/block-library/blocks/tag-cloud/editor-rtl.css 118 B 0 B
build/block-library/blocks/tag-cloud/editor.css 118 B 0 B
build/block-library/blocks/tag-cloud/style-rtl.css 94 B 0 B
build/block-library/blocks/tag-cloud/style.css 94 B 0 B
build/block-library/blocks/template-part/editor-rtl.css 557 B 0 B
build/block-library/blocks/template-part/editor.css 556 B 0 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B 0 B
build/block-library/blocks/text-columns/editor.css 95 B 0 B
build/block-library/blocks/text-columns/style-rtl.css 166 B 0 B
build/block-library/blocks/text-columns/style.css 166 B 0 B
build/block-library/blocks/verse/editor-rtl.css 62 B 0 B
build/block-library/blocks/verse/editor.css 62 B 0 B
build/block-library/blocks/verse/style-rtl.css 87 B 0 B
build/block-library/blocks/verse/style.css 87 B 0 B
build/block-library/blocks/video/editor-rtl.css 504 B 0 B
build/block-library/blocks/video/editor.css 503 B 0 B
build/block-library/blocks/video/style-rtl.css 193 B 0 B
build/block-library/blocks/video/style.css 193 B 0 B
build/block-library/common-rtl.css 1.01 kB 0 B
build/block-library/common.css 1.01 kB 0 B
build/block-library/editor-rtl.css 9.05 kB 0 B
build/block-library/editor.css 9.04 kB 0 B
build/block-library/style-rtl.css 8.8 kB 0 B
build/block-library/style.css 8.8 kB 0 B
build/block-library/theme-rtl.css 748 B 0 B
build/block-library/theme.css 748 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.5 kB 0 B
build/customize-widgets/style-rtl.css 168 B 0 B
build/customize-widgets/style.css 168 B 0 B
build/data-controls/index.js 830 B 0 B
build/data/index.js 8.86 kB 0 B
build/date/index.js 31.8 kB 0 B
build/deprecated/index.js 768 B 0 B
build/dom/index.js 4.94 kB 0 B
build/edit-navigation/index.js 11 kB 0 B
build/edit-navigation/style-rtl.css 1.26 kB 0 B
build/edit-navigation/style.css 1.25 kB 0 B
build/edit-post/index.js 307 kB 0 B
build/edit-post/style-rtl.css 6.81 kB 0 B
build/edit-post/style.css 6.8 kB 0 B
build/edit-site/index.js 25.4 kB 0 B
build/edit-site/style-rtl.css 4.37 kB 0 B
build/edit-site/style.css 4.37 kB 0 B
build/edit-widgets/style-rtl.css 3.2 kB 0 B
build/edit-widgets/style.css 3.2 kB 0 B
build/editor/editor-styles-rtl.css 543 B 0 B
build/editor/editor-styles.css 545 B 0 B
build/editor/style-rtl.css 3.89 kB 0 B
build/editor/style.css 3.89 kB 0 B
build/element/index.js 4.61 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/index.js 6.77 kB 0 B
build/format-library/style-rtl.css 637 B 0 B
build/format-library/style.css 639 B 0 B
build/hooks/index.js 2.28 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 4.01 kB 0 B
build/is-shallow-equal/index.js 698 B 0 B
build/keyboard-shortcuts/index.js 2.54 kB 0 B
build/list-reusable-blocks/index.js 3.15 kB 0 B
build/list-reusable-blocks/style-rtl.css 629 B 0 B
build/list-reusable-blocks/style.css 628 B 0 B
build/notices/index.js 1.85 kB 0 B
build/nux/index.js 3.41 kB 0 B
build/nux/style-rtl.css 731 B 0 B
build/nux/style.css 727 B 0 B
build/primitives/index.js 1.42 kB 0 B
build/priority-queue/index.js 790 B 0 B
build/react-i18n/index.js 1.45 kB 0 B
build/redux-routine/index.js 2.83 kB 0 B
build/rich-text/index.js 13.4 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 3.02 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

@ockham ockham requested a review from a team January 22, 2021 19:09
@ockham ockham marked this pull request as ready for review January 22, 2021 19:09
@ockham ockham force-pushed the update/changelog-generator-granular-patch-releases branch from 98190a3 to edb52d9 Compare February 15, 2021 13:37
@youknowriad
Copy link
Contributor

Note that this still includes a few erroneous entries (e.g. the srcset issue under the Various heading). The reason for these is that we use the since parameter to filter for issues that have been modified since the previous release in the series was published. However, that doesn't just include closed issues, but also issues to which a new comment was added, or that were otherwise modified.

Can we instead check the "close date", is is something that is not available on the PR?

@ockham
Copy link
Contributor Author

ockham commented Feb 15, 2021

Note that this still includes a few erroneous entries (e.g. the srcset issue under the Various heading). The reason for these is that we use the since parameter to filter for issues that have been modified since the previous release in the series was published. However, that doesn't just include closed issues, but also issues to which a new comment was added, or that were otherwise modified.

Can we instead check the "close date", is is something that is not available on the PR?

It's not available on the issues list endpoint (which only has the more general since arg, which lists all modifications since that time), see https://github.com/WordPress/gutenberg/pull/28424/files#diff-49aea9ce53bbbb8efdaa4663a98ea194da65c0c93abbb8f07ba78610ee0e92c4R89-R91.

We might however iterate over that list, and get each individual issue from it, and then filter those issues by their closed_at field. We'd be filing quite a few network requests with this approach, though 😬

@ockham
Copy link
Contributor Author

ockham commented Feb 15, 2021

We might however iterate over that list, and get each individual issue from it, and then filter those issues by their closed_at field. We'd be filing quite a few network requests with this approach, though

Ah, we might even have the closed_at fields readily available in the pull request objects we're getting from the REST API already. I'll try using this.

@ockham
Copy link
Contributor Author

ockham commented Feb 15, 2021

Tests are failing because of octokit/plugin-rest-endpoint-methods.js#64 🙄

@ockham
Copy link
Contributor Author

ockham commented Feb 15, 2021

@ockham
Copy link
Contributor Author

ockham commented Feb 15, 2021

Should be ready for another look 🙂

@youknowriad
Copy link
Contributor

I tried this and it seems to work decently but it breaks a use-case for this script. Right now, sometimes we only generate the changelog after the tag/release happens (because of time) or something else. In other words, it's impossible with this PR to regenerate the changelog of old milestones.

We used to do that by just doing npm run changelog -- --milestone="Gutenberg 9.9" and you get the changelog.

Right now the meaning of that command is different, instead of getting the changelog for 9.9.0, we get the changelog for potential unreleased commits on that branch. It seems we might need both behaviors:

// get the changelog for the whole branch (including all patch releases) 
npm run changelog -- --milestone="Gutenberg 9.9" 

// get the changelog for the unreleased items
npm run changelog -- --milestone="Gutenberg 9.9" --unreleased

Alternatively, we could change the "milestone" argument and use a "version" argument instead but I supposed this would be harder to implement.

@ockham
Copy link
Contributor Author

ockham commented Feb 16, 2021

Right 🤔 Well I'm planning to use the changelog script to prefill release notes (and update the Changelog based on those), so ideally we won't need to invoke the script manually anymore.

However, I realize that it makes sense to retain this option for later; and furthermore, I just realized that the getIssuesByMilestone function from milestone.js that I'm modifying here is also used to check if the milestone is clear in the release script. While this is arguably also going away, we need a working solution until #28138 is merged.

I'll play with this. Looks like I'll need to change the API of a function or two 😬

@ockham
Copy link
Contributor Author

ockham commented Feb 16, 2021

I've added an --unreleased option. This also allowed me to encapsulate the REST API calls to get the latest release in a series into a function, which I then moved to changelog.js (and trimmed some code) since it seemed to make more sense there.

@youknowriad
Copy link
Contributor

When you run the command on a branch that is released fully (like 9.9), you get this error. it's a decent error but maybe we should clarify that it's about "unreleased commits". Other than that, it's working great.

Capture d’écran 2021-02-17 à 8 35 09 AM

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ockham
Copy link
Contributor Author

ockham commented Feb 17, 2021

When you run the command on a branch that is released fully (like 9.9), you get this error. it's a decent error but maybe we should clarify that it's about "unreleased commits". Other than that, it's working great.

Capture d’écran 2021-02-17 à 8 35 09 AM

Good point! Addressed in d9e7e97.

@ockham ockham merged commit b4e1663 into master Feb 17, 2021
@ockham ockham deleted the update/changelog-generator-granular-patch-releases branch February 17, 2021 12:18
@github-actions github-actions bot added this to the Gutenberg 10.1 milestone Feb 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Build Tooling Issues or PRs related to build tooling
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants