Skip to content

Sync release-material_ui-0.0.3 to main - #12352

Merged
auto-submit[bot] merged 1 commit into
mainfrom
release-material_ui-0.0.3
Aug 4, 2026
Merged

Sync release-material_ui-0.0.3 to main#12352
auto-submit[bot] merged 1 commit into
mainfrom
release-material_ui-0.0.3

Conversation

@fluttergithubbot

Copy link
Copy Markdown
Contributor

This automated PR syncs the changes from the release branch release-material_ui-0.0.3 back to the main branch.

This PR was created automatically to batch release the `material_ui`.
@fluttergithubbot fluttergithubbot added the override: batch-material_ui material_ui batch release PR label Aug 3, 2026
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Aug 3, 2026
@github-actions github-actions Bot added triage-framework Should be looked at in framework triage p: material_ui labels Aug 3, 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 consolidates pending changelog entries into CHANGELOG.md under version 0.0.3, deletes the temporary changelog files, and updates the package version in pubspec.yaml to 0.0.3. Feedback recommends using the imperative mood ('Add' instead of 'Adds') for the compatibility bridge entry in the changelog to ensure consistency.


- Fix API doc by clearing unsupported directives introduced by macros.
- Fix API doc references.
- Adds MaterialUiCompatibilityBridge for legacy flutter/material.dart compatibility.

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.

medium

For consistency with the other entries in this release, use the imperative mood ('Add' instead of 'Adds').

Suggested change
- Adds MaterialUiCompatibilityBridge for legacy flutter/material.dart compatibility.
- Add MaterialUiCompatibilityBridge for legacy flutter/material.dart compatibility.

@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

@Piinks Piinks added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 4, 2026
@auto-submit
auto-submit Bot merged commit 961eb80 into main Aug 4, 2026
14 checks passed
pull Bot pushed a commit to AbhiShake1/flutter that referenced this pull request Aug 5, 2026
…r#190622)

flutter/packages@3498b9d...b1424e2

2026-08-05 saurabhmirajkar000@gmail.com [go_router] Document regex
constraints for path parameters (flutter/packages#12281)
2026-08-04 fluttergithubbot@gmail.com Sync release-cupertino_ui-0.0.3 to
main (flutter/packages#12367)
2026-08-04 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Fix video recording after backgrounding app
(flutter/packages#12145)
2026-08-04 jmccandless@google.com [material_ui and cupertino_ui] Remove
workspaces and fix CI (flutter/packages#12351)
2026-08-04 fluttergithubbot@gmail.com Sync release-material_ui-0.0.3 to
main (flutter/packages#12352)

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 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
@Piinks Piinks mentioned this pull request Aug 10, 2026
11 tasks
auto-submit Bot pushed a commit that referenced this pull request Aug 11, 2026
- Unblocks #12423

Fixes a Pub version solver failure during release PR testing (`make-deps-path-based`) for co-dependent packages (specifically `material_ui` and `cupertino_ui`).

When creating a release PR for `material_ui` (e.g., `release-material_ui-0.0.3+1`), the `make-deps-path-based` CI step failed during `flutter test` on `packages/cupertino_ui` with the following Pub version solver error:

```
Resolving dependencies in `./example`...
Because every version of material_ui from path depends on cupertino_ui from hosted and cupertino_ui_examples depends on cupertino_ui from path, material_ui from path is forbidden.
So, because cupertino_ui_examples depends on material_ui from path, version solving failed.
Failed to update packages.
```

`material_ui` and `cupertino_ui` share an asymmetric co-dependency in the repository:
- **`material_ui`** has a **direct dependency** on `cupertino_ui` (`dependencies: cupertino_ui: ^0.0.3`).
- **`cupertino_ui`** has a **dev dependency** on `material_ui` (`dev_dependencies: material_ui: ^0.0.2`).

When `make-deps-path-based --target-dependencies=material_ui` runs:
1. `make-deps-path-based` adds `dependency_overrides: material_ui: {path: ../material_ui}` to `cupertino_ui/pubspec.yaml` and `cupertino_ui/example/pubspec.yaml`.
2. `cupertino_ui/example` depends directly on `cupertino_ui` (`path: ..`).
3. `material_ui` (from `path`) depends on `cupertino_ui: ^0.0.3` (from hosted `pub.dev`).
4. Without `cupertino_ui` in `cupertino_ui/example`'s `dependency_overrides`, Pub detects `cupertino_ui` sourced from **`path`** (in `cupertino_ui_examples`) and **`hosted`** (in `material_ui`), causing Pub's version solver to reject the resolution graph.

Updated `make-deps-path-based` (`script/tool/lib/src/make_deps_path_based_command.dart`):

When `_addDependencyOverridesIfNecessary` recursively updates example apps of a package (`for (final RepositoryPackage example in package.getExamples())`), it now explicitly includes the parent `package` itself in the local package mapping and `additionalPackagesToOverride`.

This ensures `cupertino_ui/example/pubspec.yaml` receives a path override for its parent package (`dependency_overrides: cupertino_ui: {path: ...}`) alongside the target package override (`material_ui: {path: ...}`). Consequently, Pub solver resolves both local path dependencies cleanly without requiring recursive dependency expansion (thereby preserving the safety net of `--target-dependencies`).

---

#### Why `cupertino_ui` Has a `dev_dependency` on `material_ui`

`cupertino_ui` declares `material_ui` in its `dev_dependencies` because multiple files across `cupertino_ui/lib/src/` (e.g., `text_field.dart`, `dialog.dart`, `scrollbar.dart`, `theme.dart`) use Dart `@docImport` directives referencing Material design widgets in public API documentation:

```dart
/// @DocImport 'package:material_ui/material_ui.dart';
```

Per Dart doc guidelines, packages referenced in `@docImport` must be declared in `dev_dependencies` so static analysis and `dartdoc` can resolve the cross-referenced symbols.

---

#### Didn't we fix this last week?

- **Aug 4, 09:06 AM (`material_ui 0.0.3` release #12352)**: Both packages still used Dart Workspaces (`resolution: workspace`). Under Dart Workspaces, Pub dependency resolution was handled at the top-level workspace root, hiding the Pub solver conflict.
- **Aug 4, 12:44 PM (PR #12351)**: PR #12351 landed to unblock `cupertino_ui 0.0.3` by removing Dart workspaces from `cupertino_ui` and `material_ui`.
  - When releasing **`cupertino_ui`** (`targetDependencies=cupertino_ui`), `material_ui` got path overrides for `cupertino_ui`. Since `cupertino_ui` didn't depend on a third package pulling hosted `cupertino_ui`, `cupertino_ui`'s release succeeded.
  - However, when releasing **`material_ui`** (`targetDependencies=material_ui`), `material_ui`'s direct dependency on `cupertino_ui` caused `cupertino_ui/example` to fail.
- **Aug 10 (`material_ui 0.0.3+1` release #12423)**: This was the first release attempt of `material_ui` since Dart workspaces were removed, exposing the non-workspace Pub solver requirement.

## Pre-Review Checklist

**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). 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.

[^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.
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 override: batch-material_ui material_ui batch release PR p: material_ui triage-framework Should be looked at in framework triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants