NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #557 most downloaded on pub.dev
PAckage aNAlyzer - produce a report summarizing the health and quality of a Dart package.
Last release 1 months ago
01 Sep 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
211 releases · first in 2015
Include hosted and SDK dev_dependencies during static analysis and documentation generation.
dev_dependencies during static analysis and documentation generation.--project-root CLI option to specify the project's root directory. When specified, pana copies the entire tree for analysis. BREAKING CHANGE : the git…
analysis_options.yaml.is:wasm-ready.dev_dependency handling: keep for analysis, remove for upgradability.--project-root CLI option to specify the project's root directory.pana copies the entire tree for analysis.One column per quarter.
Prevent following symlinks when writing dartdoc_options.yaml and analysis_options.yaml by @sigurdm in #1606
Full Changelog: 0.23.16...0.23.17
dartdoc_options.yaml and analysis_options.yaml to prevent out-of-tree file writes.pubspec.yaml scanning in repository verification with a timeout and enforce maxOutputBytes in GitTool.showFile.dart analyze stdout for better and more resilient parsing.include: in analysis_options.yaml.dart analyzeanalyzer: exclude: in analysis_options.yamlsdk: dev_dependencies when updating pubspec.yaml.Protect against YAML alias expansion bombs in yamlToJson by @sigurdm in #1605
Full Changelog: 0.23.15...0.23.16
yamlToJson.Temporary opt-out from --sanitize-html CLI arg when calling dartdoc. by @isoos in #1601
Full Changelog: 0.23.14...0.23.15
PANA_OPT_OUT_DARTDOC_SANITIZE_HTML environment variable to true
to skip --sanitize-html CLI arg when running dartdoc. This is an internal,
temporary option, which will be changed (or reverted) in a future release.Bump actions/checkout from 6.0.2 to 7.0.0 in the github-actions group by @dependabot [bot] in #1597
Full Changelog: 0.23.13...0.23.14
lexeme in package:analyzer to properly detect conditional imports.Bump dart-lang/setup-dart from 1.7.1 to 1.7.2 in the github-actions group by @dependabot [bot] in #1582
Full Changelog: 0.23.12...0.23.13
kotlinOptions in Android plugins.Only deduct scores for missing swiftpm support for actual darwin plugins by @sigurdm in #1579
Full Changelog: 0.23.11...0.23.12
Re-run pub commands with --verbose after a failure. by @isoos in #1561
Full Changelog: 0.23.10...0.23.11
pub commands with --verbose after a failure.-z (zero-byte separator) for git listing.Support more CLI arguments: sandbox-runner, dartdoc-command by @isoos in #1559
Full Changelog: 0.23.9...0.23.10
--sandbox-runner and --dartdoc-command CLI options.dart format output.Add --license-data option to support AOT compilation by @jonasfj in #1552
Full Changelog: 0.23.8...0.23.9
--license-data argument to specify the location of SPDX license data (useful for AOT compilation).webp- and git-commands inside the sandbox (if it was provided).Updated option to list of arguments to run precompiled dartdoc binary.
dartdoc binary.Use only dart commands, Flutter SDK will be used when FLUTTER_ROOT is set.
dart commands, Flutter SDK will be used when FLUTTER_ROOT is set.dartdoc binary.Always use flutter pub pub when invoking pub with Flutter SDK.
flutter pub pub when invoking pub with Flutter SDK.pubspec.yaml warning about local path dependency in the report.analysis_options.yaml.FLUTTER_ROOT environment for Dart-only SDK.Include more top-level analysis target in static checks.
ToolEnvironment flag to use include: entries in analysis_options.yaml.
ToolEnvironment flag to use include: entries in analysis_options.yaml.Support for multiple include: entry in analysis_options.yaml.
include: entry in analysis_options.yaml.PUB_HOSTED_URL with custom path segments.Allow package:analyzer range to accept ^9.0.0 too.
package:analyzer range to accept ^9.0.0 too.Support passthrough of unrelated linter rules in analysis option customization.
Removed Range and Position from the model, added TextOp to list changes and matching parts in the license.
Breaking changes:
Range and Position from the model, added TextOp to list changes and matching parts in the license.packageName from SdkConstraintStatus.fromSdkVersion constructor.ToolEnvironment methods: runUpgrade (use runPub instead) and withRestrictedAnalysisOptions (no replacement).pubspec.yaml--line-length CLI argument and also lineLength from analysis options. Use configurable page width instead.Fixed small ambiguity in the order of license match evaluation.
analysis_options.yaml dev dependency to expose transitive formatter options.Upgraded SDK constraint: ^3.8.0.
^3.8.0.License with Range? range field that identifies the recognized block.Deprecated downloadPackage, use the new ToolEnvironment.unpack instead.
downloadPackage, use the new ToolEnvironment.unpack instead.CHANGELOG.md.Preserve all formatter settings in analysis_options.yaml when doing dart format.
formatter settings in analysis_options.yaml when doing dart format.Reduced minimum description length to 50 characters.
flutter from the outdated report.Extended recognized image extensions in URL resolver.
dart format.Make example's README.md priority over any dart file in the examples directory.
README.md priority over any dart file in the examples directory.AnalysisResult.AnalysisResult.Fixed lower dependency constraint for cli_util.
cli_util.flutter pub global activate dartdoc for Flutter packages.Preparing to use with dartdoc 8.3.0.
dartdoc 8.3.0.Detect support for Swift Package Manager for ios/macos plugins.
logger in PackageAnalyzer.inspectDir method.Pass-through for formatter/page_width in analysis_options.yaml.
formatter/page_width in analysis_options.yaml.lints to ^5.0.0Updated report text for wasm readiness.
wasm readiness.Expose wasm readiness analysis in the report (without any score).
wasm readiness analysis in the report (without any score).Remove workspace and resolution properties from pubspec before analyzing.
workspace and resolution properties from pubspec before analyzing.Deprecated the renderSimpleSectionSummary method in public API.
_macros.renderSimpleSectionSummary method in public API.*Breaking change:* Removed ToolEnvironment.panaCache field (not intended for public API).
tar: ^2.0.0.Summary.licenseFile and Summary.licenses to AnalysisResult.licenses.ToolEnvironment.panaCache field (not intended for public API).Enable macros experiment pass-through in analysis_options.yaml.
macros experiment pass-through in analysis_options.yaml.executables in pubspec.yaml and check if the related files exist.has:executable check.New recognized example files in the example/bin directory.
example/bin directory.has:executable tag for packages with bin/<executable>.dart files.Updated text and link on downgrade analysis.
Report and score pub downgrade + dart analyze.
pub downgrade + dart analyze.Do not emit package names in allDependencies with trivial syntax issues.
allDependencies with trivial syntax issues.dartdoc output.dartdoc processing is run as the last step of the generated report.
dartdoc processing is run as the last step of the generated report.Fix: unspecified --dartdoc-version will use the latest version in an isolated environment. To use the SDK's dartdoc, set the value to sdk.
--dartdoc-version will use the latest version in an isolated
environment. To use the SDK's dartdoc, set the value to sdk..create() takes configHomeDir to specify config the home directory used for the analysis (helps switching different analyzer SDKs).
ToolEnvironment:
.create() takes configHomeDir to specify config the home
directory used for the analysis (helps switching different analyzer SDKs).create() takes pubHostedUrl as PackageAnalyzer.create() was removed.InspectOptions:
totalTimeBudget to allow the dynamic reduction of dartdocTimeout.resourcesOutputDir to store the resources files (without the previous callback).bin/pana.dart accepts new CLI arguments:
--dart-config-home (hidden)--flutter-config-home (hidden)--dartdoc-output (hidden)--dartdoc-version--dartdoc-timeout (hidden)--resources-output (hidden)--total-timeout (hidden)BREAKING CHANGES
runProc -> runConstrained.InspectOptions.checkRemoteRepository - repositories are verified by defaultPackageAnalyzer:
create()inspectVersions()storeResource callback in inspectPackage(), use InspectOptions.resourcesOutputDir insteadProcessOutput.asBytesReport.joinSection()ToolEnvironment:
create() method dropped useGlobalDartdoc flag, will use global dartdoc
when dartdocVersion is specified, otherwise uses the Dart SDK's dart doc.create() method dropped dartSdkDir, flutterSdkDir, and environment,
using SdkConfig for each of the SDKs.dartdoc()detectFlutterUse()get dartSdkDirget flutterSdkDirget environmentgetFlutterVersion()analysisOptionsFileschangelogFileNamescurrentAnalysisOptionsFileNamedartdocFailedSectiondocumentationCoverageSection()documentationSectionTitlefirstFileFromNameslicenseFileNamespubspecParseErrorreadmeFileNamesToolException has reference to the entire PanaProcessResult, instead of just the stderr.Fix: don't report hidden constructors as undocumented API symbols.
The use of kind in pub-data.json is deprecated, as it may contain different value on different dartdoc version. The field may be removed in a future v…
dart:ui_web is now part of the SDK-detection library list.kind in pub-data.json is deprecated, as it may contain
different value on different dartdoc version. The field may be
removed in a future version.Fix: limit number of documentation entries exported in pub-data.json.
pub-data.json.dart:js_interop_unsafe as a web library.Fix: global dartdoc activation is forced to happen from pub.dev.
dartdoc activation is forced to happen from pub.dev.Breaking change: running the global dartdoc has become the default (instead of the SDK's dart doc), because the latest SDK is behind the latest dartdo…
dartdoc and generates report based on the coverage
(the same that pub-dev is using). The --no-dartdoc command line argument
skips this part of the analysis.dart doc), because the latest SDK is behind the latest dartdoc
version, and we want to control what is being used by the analysis.ToolEnvironment.dartdoc returns PanaProcessResult.Upgraded package:lints to 3.0.0.
yaml parsing.package:lints to 3.0.0.Removed file size checks. (If upload limits allow it, pana should not complain.)
pana should not complain.)Added dart:ui_web as Flutter Web platform.
dart:ui_web as Flutter Web platform.--no-warning is no longer needed, and has no effect.
--no-warning is no longer needed, and has no effect.package:tar to 1.0.0.AnalysisResult.grantedPoints and AnalysisResult.maxPoints.Always use dart format instead of flutter format.
dart format instead of flutter format.*Breaking change*: Remove future SDK flags.
package:analyzer 6.0.0Export missing PanaProcessResult.
PanaProcessResult.package:lints as main dependency.InspectOptions.analysisOptionsYaml is now deprecated.
pubspec.yaml is in path that is not accepted.package:lints/core.yaml locally before loading from GitHub.InspectOptions.analysisOptionsYaml is now deprecated.Breaking changes:
PanaProcessResult no longer implements dart:io's ProcessResult.DartdocResult uses PanaProcessResult instead of ProcessResult.InspectOptions.futureSdkTag, configuration no longer used.Check the latest 2.x release compatibility only for Dart 2.x packages.
Dart 3 compatibility section label includes Flutter 3.10 when applicable.
ToolEnvironment.Fix pub upgrade to exclude example directory.
pub upgrade to exclude example directory.Your coding agent can read these notes before it upgrades. Set up the MCP server →