Skip to content

[ci] Checks unmerged batch release sync back before next release - #12868

Merged
auto-submit[bot] merged 3 commits into
flutter:mainfrom
chunhtai:in-flight-guard
Sep 15, 2026
Merged

auto-submit[bot] merged 3 commits into
flutter:mainfrom
chunhtai:in-flight-guard

Conversation

@chunhtai

Copy link
Copy Markdown
Contributor

To avoid the new batch release is created before sync back pr is merged. The workflow now checks for unmerged release branch before create a new one

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 14, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces the in-flight-release-check command to the Flutter plugin tools, which checks for unmerged remote release branches to prevent out-of-order releases. It also extracts a reusable writeGitHubActionsOutput helper method in PackageCommand and adds corresponding unit tests. The review feedback suggests using the named constant exitInvalidArguments instead of a magic number for the exit code, and correcting the type of the error handler parameter in tests from Error to Object since ToolExit is an Exception rather than an Error in Dart.

Comment thread script/tool/lib/src/in_flight_release_check_command.dart Outdated
Comment thread script/tool/test/in_flight_release_check_command_test.dart
Comment thread script/tool/test/in_flight_release_check_command_test.dart

@justinmc justinmc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM 👍 . Thanks for patching this loophole.

Comment on lines +91 to +94
'To unblock, land that release and its sync-back PR. If the sync-back PR cannot be landed '
'as-is, apply its version bump and changelog by hand instead; the release is already '
'published at that point, so those changes cannot be dropped. Only delete '
'"$blockingBranch" if its release was never published.',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there any reason you have in mind why the sync-back PR wouldn't be able to land? Just curious.

Thanks for including instructions on how to handle this situation though, looks good.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The scenarios I imagine are:

  1. the reviewer forgot to submit, or not in time when the next batch release pr is triggered (which is what happened last time)
  2. Something goes horribly wrong and for some reason main is conflict with release branch. (this is usually the aftermath of 1)

@stuartmorgan-g stuartmorgan-g left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM with nit

(I strongly dislike having CI-specific knowledge like writeGitHubActionsOutput in the tool, but I don't see a better alternative here unfortunately.)

types: [batch-release-pr]

# Declare default permissions as read only.
permissions: read-all

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Why do we need a new global permission setting?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

github action security scan warned that, if no permission set, using default permission can be too excessive.

Comment thread script/tool/lib/src/in_flight_release_check_command.dart Outdated

@Piinks Piinks left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@chunhtai chunhtai added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 15, 2026
@auto-submit
auto-submit Bot merged commit b1c05d9 into flutter:main Sep 15, 2026
13 checks passed
GhagSagar23 pushed a commit to Kryonex-Labs/flutter that referenced this pull request Sep 16, 2026
…r#192876)

flutter/packages@bebbb57...c2b58e1

2026-09-15 stuartmorgan@google.com [local_auth] Convert implementation
to Kotlin (flutter/packages#12635)
2026-09-15 mhmmd.bayraktar@gmail.com [pigeon] Treat NSNull as null for
non-null Flutter API returns (flutter/packages#12531)
2026-09-15 daniel.leon@cloudsufi.com [espresso] Adopt code-excerpts for
README (flutter/packages#12644)
2026-09-15 daniel.leon@cloudsufi.com [pointer_interceptor] Adopt
code-excerpts for README (flutter/packages#12641)
2026-09-15 47866232+chunhtai@users.noreply.github.com [ci] Checks
unmerged batch release sync back before next release
(flutter/packages#12868)
2026-09-15 puneetkukreja98@gmail.com [material_ui] Add sortIconBuilder
to DataTable, PaginatedDataTable, and DataTableThemeData
(flutter/packages#12645)
2026-09-15 10687576+bparrishMines@users.noreply.github.com
[cross_file_platform_interface] Platform interface implementation of
`cross_file` (flutter/packages#12825)
2026-09-15 10687576+bparrishMines@users.noreply.github.com [cross_file]
Move cross_file into a federated cross_file directory
(flutter/packages#12869)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App CICD Run CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants