Skip to content

Conversation

@chunhtai
Copy link
Contributor

@chunhtai chunhtai commented Oct 24, 2025

fixes flutter/flutter#176425

To set up a batch release cron job for a package, one needs to make a copy of packages/.github/workflows/go_router_batch.yml, and change the name and cron schedule.

The cron job does the following:

  1. trigger batch_release_pr.yaml with the input package

batch_release_pr:

  1. check out repo
  2. Run script/tool/lib/src/branch_for_batch_release_command.dart to create branches with all the changes
  3. create pr request

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 3

@github-actions github-actions bot added p: go_router triage-framework Should be looked at in framework triage labels Oct 27, 2025
@chunhtai chunhtai added override: no versioning needed Override the check requiring version bumps for most changes override: no changelog needed Override the check requiring CHANGELOG updates for most changes labels Oct 27, 2025
@chunhtai
Copy link
Contributor Author

reason for override: ci only change

Copy link
Collaborator

Choose a reason for hiding this comment

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

If these files are going to be created as part of the PR process, then the tooling should be updated to understand that, and the override labels shouldn't be needed on this PR. If the PR isn't landable without overrides, then the normal commit path isn't working correctly.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, that part of the work will be in flutter/flutter#176433.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Usually if a change to repo structure requires updates to our checks we do those two things in the same PR rather than override our own tooling, so it's not clear to me why this is being done separately. That said, since it's isolated to this package and shouldn't affect any normal PRs for now I guess it's fine.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The reason I don't do the ci check before this pr is that I would like to finalize the yaml content first, and it can't be finalized until the approach of this PR is reviewed and approved.

and I think doing it as part of this pr may be too distracting for reviewer


print(' Pushing to remote...');
final io.ProcessResult pushResult =
await repository.runCommand(<String>['push', 'origin', branchName, '--force']);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Here too, --force seems needlessly dangerous. I don't see why we would need to enable this command to be destructive.

throw FormatException('Expected "changelog" to be a list, but found ${changelogYaml.runtimeType}.');
}
final List<String> changelog = changelogYaml.nodes
.map((YamlNode node) => node.value as String)
Copy link
Collaborator

Choose a reason for hiding this comment

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

What happened to allowing arbitrary markdown? How would someone make this changelog for instance?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we can use | for arbitrary markdown in yaml will need to check whether dart yaml support this properly. now I think of it maybe the changelog part of the yaml shouldn't be a list, it should just be a single element that accept arbitrary markdown.

version: major
changelogs: |
 my *markdown*
 - item **one**
 - item two

@chunhtai chunhtai force-pushed the issues/176425 branch 2 times, most recently from 7be1e87 to 5853905 Compare October 30, 2025 17:12
@chunhtai chunhtai marked this pull request as ready for review October 30, 2025 17:13
@chunhtai chunhtai changed the title [WIP] Adds github action for creating batch release [ci] Adds github action for creating batch release Oct 30, 2025
@chunhtai chunhtai force-pushed the issues/176425 branch 2 times, most recently from 48eb6ab to b201825 Compare November 10, 2025 17:41
dart ./script/tool/lib/src/main.dart branch-for-batch-release --packages=${{ github.event.client_payload.package }} --branch=${{ env.BRANCH_NAME }} --remote=origin
- name: Check if branch was created
id: check-branch-exists
uses: GuillaumeFalourd/[email protected]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am new to GA, not sure if we are allowed to use GA from marketplace, let me know if this is not allowed.

Also is there a way to test this locally?

Copy link
Collaborator

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

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

LGTM with minor comments.

@chunhtai chunhtai added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 19, 2025
@auto-submit auto-submit bot merged commit b314944 into flutter:main Nov 19, 2025
80 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 20, 2025
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Nov 20, 2025
flutter/packages@8f72e4b...b1e2fb0

2025-11-20 [email protected] [path_provider] Convert iOS/macOS to
FFI package (flutter/packages#9762)
2025-11-19 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.squareup.okhttp3:okhttp from 5.3.0 to 5.3.1 in
/packages/espresso/android (flutter/packages#10446)
2025-11-19 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.browser:browser from 1.8.0 to 1.9.0 in
/packages/url_launcher/url_launcher_android/android
(flutter/packages#10115)
2025-11-19 [email protected] [ci] Adds github
action for creating batch release (flutter/packages#10298)
2025-11-19 [email protected] [camera] Remove deprecated feature
from Windows example (flutter/packages#10380)
2025-11-19 [email protected] Roll Flutter from
cb7b7df to de4be4f (20 revisions) (flutter/packages#10468)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] 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
okorohelijah pushed a commit to okorohelijah/flutter that referenced this pull request Nov 21, 2025
flutter/packages@8f72e4b...b1e2fb0

2025-11-20 [email protected] [path_provider] Convert iOS/macOS to
FFI package (flutter/packages#9762)
2025-11-19 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.squareup.okhttp3:okhttp from 5.3.0 to 5.3.1 in
/packages/espresso/android (flutter/packages#10446)
2025-11-19 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.browser:browser from 1.8.0 to 1.9.0 in
/packages/url_launcher/url_launcher_android/android
(flutter/packages#10115)
2025-11-19 [email protected] [ci] Adds github
action for creating batch release (flutter/packages#10298)
2025-11-19 [email protected] [camera] Remove deprecated feature
from Windows example (flutter/packages#10380)
2025-11-19 [email protected] Roll Flutter from
cb7b7df to de4be4f (20 revisions) (flutter/packages#10468)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] 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 override: no changelog needed Override the check requiring CHANGELOG updates for most changes override: no versioning needed Override the check requiring version bumps for most changes p: go_router triage-framework Should be looked at in framework triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[batch-release] A github action for parsing unreleased commit and produce release PR

2 participants