Repository navigation
Closed
flutter/packages
#12774Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listhas reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onp: material_uimaterial_ui package in flutter/packagesmaterial_ui package in flutter/packagespackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.platform-webWeb applications specificallyWeb applications specificallyteam-designOwned by Design Languages teamOwned by Design Languages teamtriaged-designTriaged by Design Languages teamTriaged by Design Languages team
Description
I'm not sure whether this is a material_ui issue or pana issue, but I firstly report it here.
Steps to reproduce
Run the following commands with the code sample below:
dart pub global activate pana 0.23.18
dart pub global run pana:pana --json --no-warning --no-dartdoc .
Expected results
The output contains:
"tags": [
"is:wasm-ready"
]It also reports:
Supports 6 of 6 possible platforms
WASM compatibility
This package is compatible with runtime `wasm`
Actual results
The output contains no tags:
"tags": []
It reports Web as unsupported with the following import chain:
Package not compatible with platform Web
Because:
* package:material_ui_pana_repro/main.dart that imports:
* package:material_ui/material_ui.dart that imports:
* package:material_ui/src/about.dart that imports:
* dart:io
Please note that pana 0.23.5 correctly outputs is:wasm-ready and it MAY BE a pana issue...
Code sample
pubspec.yaml:
name: material_ui_pana_repro
description: Minimal reproduction for material_ui causing pana to omit is:wasm-ready.
version: 0.1.0
environment:
sdk: ^3.12.0
flutter: '>=3.47.0'
dependencies:
flutter:
sdk: flutter
material_ui: ^1.0.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^6.0.0lib/main.dart:
import 'package:material_ui/material_ui.dart';
void main() {
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: Text('material_ui builds successfully with WebAssembly'),
),
),
);
}
}The application does not use AboutDialog or any API that directly requires dart:io.
Logs
Logs
dart pub global run pana:pana --json --no-warning --no-dartdoc .
{"logName":"pana","level":"INFO","message":"Running `dart --version`..."}
{"logName":"pana","level":"INFO","message":"Running `dart pub get --no-example`..."}
{"logName":"pana","level":"INFO","message":"Running `dart pub get --no-example`..."}
{"logName":"pana","level":"INFO","message":"Running `dart pub outdated --json --up-to-date --no-dev-dependencies --no-dependency-overrides`..."}
{"logName":"pana","level":"INFO","message":"Analyzing package..."}
{"logName":"pana","level":"INFO","message":"Running `dart analyze --format machine --no-plugins .`..."}
{"logName":"pana","level":"INFO","message":"Running `dart pub get --no-example`..."}
{"logName":"pana","level":"INFO","message":"Running `dart format --output=none --set-exit-if-changed /tmp/pana_FCZNFA/.`..."}
{"logName":"pana","level":"INFO","message":"Analyzing pub downgrade..."}
{"logName":"pana","level":"INFO","message":"Running `dart pub downgrade --no-example`..."}
{"logName":"pana","level":"INFO","message":"Running `dart analyze --format machine --no-plugins .`..."}
{"logName":"pana","level":"INFO","message":"[pub-downgrade-success]"}
{"logName":"pana","level":"INFO","message":"Running `dart pub upgrade --no-example`..."}
{
"createdAt": "2026-08-28T00:16:57.923409",
"runtimeInfo": {
"panaVersion": "0.23.18",
"sdkVersion": "3.13.1",
"flutterVersions": {
"frameworkVersion": "3.47.1",
"channel": "stable",
"repositoryUrl": "https://github.com/flutter/flutter",
"frameworkRevision": "6655482ec06e547f90abf8ae7590466f4415978d",
"frameworkCommitDate": "2026-08-19 10:07:23 -0700",
"engineRevision": "5d531788691ec3404cac0cee66ead4007b177363",
"engineCommitDate": "2026-08-18 23:36:01.000Z",
"engineContentHash": "11d79658c444477b06513d32b52c8c4ccb7276b0",
"engineBuildDate": "2026-08-19 12:19:20.672",
"dartSdkVersion": "3.13.1",
"devToolsVersion": "2.60.0",
"flutterVersion": "3.47.1"
}
},
"packageName": "material_ui_pana_repro",
"packageVersion": "0.1.0",
"pubspec": {
"name": "material_ui_pana_repro",
"description": "Minimal reproduction for material_ui causing pana to omit is:wasm-ready.",
"version": "0.1.0",
"environment": {
"sdk": "^3.12.0",
"flutter": ">=3.47.0"
},
"dependencies": {
"flutter": {
"sdk": "flutter"
},
"material_ui": "^1.0.0"
},
"dev_dependencies": {
"flutter_test": {
"sdk": "flutter"
},
"flutter_lints": "^6.0.0"
}
},
"allDependencies": [
"characters",
"clock",
"collection",
"cupertino_ui",
"flutter",
"flutter_lints",
"flutter_test",
"intl",
"material_color_utilities",
"material_ui",
"meta",
"path",
"vector_math"
],
"tags": [
"sdk:flutter",
"platform:android",
"platform:ios",
"platform:windows",
"platform:linux",
"platform:macos",
"is:null-safe",
"is:dart3-compatible",
"license:unknown"
],
"report": {
"sections": [
{
"id": "convention",
"title": "Follow Dart file conventions",
"grantedPoints": 5,
"maxPoints": 30,
"status": "failed",
"summary": "### [x] 0/10 points: Provide a valid `pubspec.yaml`\n\n* `pubspec.yaml` doesn't have a `homepage` entry.\n\n* `pubspec.yaml` doesn't have a `repository` entry.\n\n### [*] 5/5 points: Provide a valid `README.md`\n\n### [x] 0/5 points: Provide a valid `CHANGELOG.md`\n\n<details>\n<summary>\nNo `CHANGELOG.md` found.\n</summary>\n\nChangelog entries help developers follow the progress of your package. Check out the Dart conventions for [Maintaining a package changelog](https://dart.dev/tools/pub/package-layout#changelog).\n</details>\n\n### [x] 0/10 points: Use an OSI-approved license\n\n<details>\n<summary>\nNo license was recognized.\n</summary>\n\nConsider using an [OSI-approved license](https://opensource.org/licenses) in the `LICENSE` file to make it more accessible to the community.\n</details>\n"
},
{
"id": "documentation",
"title": "Provide documentation",
"grantedPoints": 0,
"maxPoints": 10,
"status": "failed",
"summary": "### [x] 0/10 points: Package has an example\n\n<details>\n<summary>\nNo example found.\n</summary>\n\nSee [package layout](https://dart.dev/tools/pub/package-layout#examples) guidelines on how to add an example.\n</details>\n"
},
{
"id": "platform",
"title": "Platform support",
"grantedPoints": 20,
"maxPoints": 20,
"status": "passed",
"summary": "### [*] 20/20 points: Supports 5 of 6 possible platforms (**iOS**, **Android**, Web, **Windows**, **macOS**, **Linux**)\n\n* ✓ Android\n\n* ✓ iOS\n\n* ✓ Windows\n\n* ✓ Linux\n\n* ✓ macOS\n\n\nThese platforms are not supported:\n\n<details>\n<summary>\nPackage not compatible with platform Web\n</summary>\n\nBecause:\n* `package:material_ui_pana_repro/main.dart` that imports:\n* `package:material_ui/material_ui.dart` that imports:\n* `package:material_ui/src/about.dart` that imports:\n* `dart:io`\n</details>\n"
},
{
"id": "analysis",
"title": "Pass static analysis",
"grantedPoints": 50,
"maxPoints": 50,
"status": "passed",
"summary": "### [*] 50/50 points: code has no errors, warnings, lints, or formatting issues\n"
},
{
"id": "dependency",
"title": "Support up-to-date dependencies",
"grantedPoints": 40,
"maxPoints": 40,
"status": "passed",
"summary": "### [*] 10/10 points: All of the package dependencies are supported in the latest version\n\n|Package|Constraint|Compatible|Latest|Notes|\n|:-|:-|:-|:-|:-|\n|[`material_ui`]|`^1.0.0`|1.1.0|1.1.0||\n\n<details><summary>Transitive dependencies</summary>\n\n|Package|Constraint|Compatible|Latest|Notes|\n|:-|:-|:-|:-|:-|\n|[`characters`]|-|1.4.1|1.4.1||\n|[`clock`]|-|1.1.2|1.1.2||\n|[`collection`]|-|1.19.1|1.19.1||\n|[`cupertino_ui`]|-|1.0.1|1.0.1||\n|[`intl`]|-|0.20.3|0.20.3||\n|[`material_color_utilities`]|-|0.13.0|0.13.1||\n|[`meta`]|-|1.19.0|1.19.0||\n|[`path`]|-|1.9.1|1.9.1||\n|[`vector_math`]|-|2.4.2|2.4.2||\n</details>\n\nTo reproduce run `dart pub outdated --no-dev-dependencies --up-to-date --no-dependency-overrides`.\n\n[`material_ui`]: https://pub.dev/packages/material_ui\n[`characters`]: https://pub.dev/packages/characters\n[`clock`]: https://pub.dev/packages/clock\n[`collection`]: https://pub.dev/packages/collection\n[`cupertino_ui`]: https://pub.dev/packages/cupertino_ui\n[`intl`]: https://pub.dev/packages/intl\n[`material_color_utilities`]: https://pub.dev/packages/material_color_utilities\n[`meta`]: https://pub.dev/packages/meta\n[`path`]: https://pub.dev/packages/path\n[`vector_math`]: https://pub.dev/packages/vector_math\n\n### [*] 10/10 points: Package supports latest stable Dart and Flutter SDKs\n\n### [*] 20/20 points: Compatible with dependency constraint lower bounds\n\n`pub downgrade` does not expose any static analysis error.\n"
}
]
},
"screenshots": [],
"result": {
"repositoryStatus": "unspecified",
"licenses": [],
"grantedPoints": 115,
"maxPoints": 150
},
"urlProblems": [],
"scores": {
"grantedPoints": 115,
"maxPoints": 150
}
}Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.47.1, on Ubuntu 26.04 LTS 6.18.35.2-microsoft-standard-WSL2, locale C.UTF-8)
[!] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Linux toolchain - develop for Linux desktopReacted by Roman Cinis
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listhas reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onp: material_uimaterial_ui package in flutter/packagesmaterial_ui package in flutter/packagespackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.platform-webWeb applications specificallyWeb applications specificallyteam-designOwned by Design Languages teamOwned by Design Languages teamtriaged-designTriaged by Design Languages teamTriaged by Design Languages team
Activity
mbcorona commentedon Aug 27, 2026
Hi @espresso3389, thanks for the report. This looks like it's on the material_ui side and not pana.
material_ui/lib/src/about.dart imports
dart:iounconditionally (import 'dart:io' show Platform;). Since about.dart is reachable from the material_ui barrel, pana's static platform analysis correctly marks the package as not web-compatible, which is why is:wasm-ready disappears. pana 0.23.5 missed this; 0.23.18 is the more correct behavior rather than a regression.Routing to the design team for further investigation.
[material_ui] Remove unconditional dart:io import from about.dart
ci: relax pana threshold for flutter packages
refactor(ui): improve flag badge artwork and deprecate shield dividers (
[material_ui] Remove unconditional dart:io import from about.dart
[material_ui] Remove unconditional dart:io import from about.dart (fl…
github-actions commentedon Oct 16, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.