Skip to content

ci: commit the analyzer excludes the Flutter migrator rewrites on every pub get - #178

Merged
anilcancakir merged 1 commit into
masterfrom
fix/ci-analysis-options-migrator
Aug 21, 2026
Merged

ci: commit the analyzer excludes the Flutter migrator rewrites on every pub get#178
anilcancakir merged 1 commit into
masterfrom
fix/ci-analysis-options-migrator

Conversation

@anilcancakir

@anilcancakir anilcancakir commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

What

Both analysis_options.yaml files now carry the analyzer.exclude block that the Flutter tool's migrator writes, so the migrator is a no-op and a CI checkout stays clean.

Why

Lint & Test was red on all four open PRs (#174, #175, #176, #177), and not one of them had broken anything.

The Flutter tool ships an analysis_options.yaml migrator that appends an analyzer.exclude block for build/ and the six platform runner directories. It runs on every flutter pub get, which is CI's first step after checkout:

Upgrading analysis_options.yaml to exclude build and platform directories.

Seven steps later dart pub publish --dry-run inspected the tree it had been handed:

Package validation found the following potential issue:
* 1 checked-in file is modified in git.
  Modified files:
  analysis_options.yaml
Package has 1 warning.
##[error]Process completed with exit code 65.

Every gate before it was green. The failure was the toolchain editing the repo mid-run, which is the worst shape a red check can take: it failed identically on a workflow-only Dependabot bump and on a real regression, so the signal stopped carrying information.

The alternative, reverting the file inside the workflow before the dry-run, was rejected. It would leave every contributor's tree dirty after a pub get and hide the drift instead of settling it. The excludes are also correct on their own terms, since none of those directories hold hand-written Dart.

The hand-written comment above the block survives a pub get: the migrator reads the parsed YAML, finds the excludes already present, and skips the file.

Testing

  • flutter pub get twice on a clean tree: no Upgrading analysis_options.yaml line, git status clean, comments intact.
  • dart pub publish --dry-run: Package has 0 warnings and 1 hint, exit 0. The remaining hint is the gitignored local pubspec_overrides.yaml, which does not exist in CI.
  • python3 tool/check-docs.py: 0 issues.

Merge order

This one first. The other three PRs need a fresh CI run on top of it, which their own next push provides.

Summary by CodeRabbit

  • Chores

    • Improved Dart analysis configuration by excluding generated build files and platform-specific runner directories.
    • Reduced false failures during package validation caused by generated files modifying the checkout.
  • Documentation

    • Added an unreleased changelog entry describing CI and repository maintenance updates.

…ry pub get

CI's first step after checkout is `flutter pub get`, which runs the Flutter
tool's `analysis_options.yaml` migrator and appends an `analyzer.exclude`
block for `build/` plus the six platform runner directories. Seven steps
later `dart pub publish --dry-run` found the checkout dirty, reported
"1 checked-in file is modified in git", and exited 65 on the warning.

That turned `Lint & Test` red on every open PR, including a Dependabot bump
touching nothing but a workflow file, so the check failed identically whether
or not the PR had broken something.

Committing the block the migrator wants makes the migrator a no-op and the
checkout clean. Reverting the file inside the workflow instead would leave
every contributor's tree dirty after a `pub get` and hide the drift rather
than settle it.
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 78654137-6a1c-49ad-820c-34c4db1e6fd1

📥 Commits

Reviewing files that changed from the base of the PR and between d107740 and 86e20b9.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • analysis_options.yaml
  • example/analysis_options.yaml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The pull request adds analyzer exclusions for generated build output and platform runner directories in the root and example configurations. It also adds an Unreleased changelog entry describing the CI maintenance update.

Changes

Analyzer exclusion configuration

Layer / File(s) Summary
Configure analyzer exclusions
analysis_options.yaml, example/analysis_options.yaml, CHANGELOG.md
The analyzer configurations exclude build and platform runner directories. The changelog documents the configuration and its CI purpose.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 86e20

The PR commits the analyzer exclusions needed to keep both configuration files unchanged during dependency installation, preventing false CI failures. No actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes committing Flutter migrator analyzer exclusions to prevent changes during pub get, which matches the main pull request objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ci-analysis-options-migrator

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@anilcancakir
anilcancakir enabled auto-merge (squash) August 21, 2026 10:23
@anilcancakir
anilcancakir merged commit 3271edd into master Aug 21, 2026
11 checks passed
@anilcancakir
anilcancakir deleted the fix/ci-analysis-options-migrator branch August 21, 2026 10:34
@anilcancakir anilcancakir mentioned this pull request Aug 21, 2026
anilcancakir added a commit that referenced this pull request Aug 21, 2026
Minor release, not a patch. The Return-key default on a single-line `WInput`
moved from `TextInputAction.next` to `.done` (#177), which changes behaviour in
every consumer that never passed `textInputAction`. Consumers are pinned with
`^1.3.0`, so a patch would have landed that on everyone at the next
`pub upgrade` with the version number saying nothing had changed. A minor still
reaches them automatically, so the two layout fixes are not withheld, but the
number now says to read the notes.

Ships with those two fixes: a `justify-between` row no longer splits its width
between a child that asked to grow and siblings that did not (#175), and
`WKeyboardActions` hosts its toolbar in the root overlay so it lands on the
keyboard rather than hundreds of points below the viewport (#176). Plus the CI
fix that had every open PR red on a dirty checkout (#178) and the
codeql-action bump (#174).

Bump pubspec.yaml 1.3.0 -> 1.4.0 and promote ## [Unreleased] to
## [1.4.0] - 2026-08-21 in CHANGELOG.md, with the [1.4.0] link reference and
the [Unreleased] compare link redirected to 1.4.0...HEAD. Sync
example/pubspec.yaml, the dartdoc_options.yaml source-link tag, and the
llms.txt version string. Move the wind-ui skill to the 1.4 line: the nine
reference H1s plus the SKILL.md description and version marker.
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.

1 participant