pana
PAckage aNAlyzer - produce a report summarizing the health and quality of a Dart package.
0.23.18
397K downloads/mo
#585 most downloaded on pub.dev
dart-lang/pana
What this package is like to depend on
Last release 12 days ago
12 Aug 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 206 of 209 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
210 releases · first in 2015
21 releases in the last 12 months
see the full history below
Release timeline
210 releases · Sep 2015 to Aug 2026Releases
latest 60 of 210-
0.23.1812 Aug 2026Release notes
Open source →- Allow more pass-through in
analysis_options.yaml. - Prevent following symlinks when listing and inspecting files in a package directory.
- Tagger now checks web plugin implementations for
is:wasm-ready. - Updated
dev_dependencyhandling: keep for analysis, remove for upgradability. --project-rootCLI option to specify the project's root directory.
When specified,panacopies the entire tree for analysis.
BREAKING CHANGE: the git-based detection is no longer used, users
must specify the directory explicitly.
Release notes
Open source →- Allow more pass-through in
analysis_options.yaml. - Prevent following symlinks when listing and inspecting files in a package directory.
- Tagger now checks web plugin implementations for
is:wasm-ready. - Updated
dev_dependencyhandling: keep for analysis, remove for upgradability. --project-rootCLI option to specify the project's root directory. When specified,panacopies the entire tree for analysis.
BREAKING CHANGE: the git-based detection is no longer used, users must specify the directory explicitly.
- Allow more pass-through in
-
0.23.1706 Aug 2026Release notes
Open source →What's Changed
- Prevent following symlinks when writing dartdoc_options.yaml and analysis_options.yaml by @sigurdm in #1606
- Use dart-lang/ecosystem firehose workflow for publishing by @sigurdm in #1604
- Bump analyzer from 13.3.0 to 14.1.0 by @dependabot[bot] in #1603
- Reject screenshot paths with colons and validate sandbox output folders by @sigurdm in #1609
- Widen analyzer constraint by @sigurdm in #1610
- Validate repository URL reachability before creating local git repository by @sigurdm in #1608
- Bound pubspec inspection loop with timeout and enforce maxOutputBytes by @sigurdm in #1607
- Parallelize end-to-end golden tests by @sigurdm in #1612
- Exclude test and example directories from analysis with options file. by @isoos in #1611
- Stream processing of 'dart analyze' stdout for better and more resilient parsing. by @isoos in #1596
- Re-enable 'include:' in analysis_options.yaml by @isoos in #1613
- Disable plugins in 'dart analyze' by @isoos in #1614
- Keep sdk dev_dependencies when updating pubspec.yaml by @isoos in #1615
- Passthrough 'analyzer: exclude:' in 'analysis_options.yaml' by @isoos in #1616
Full Changelog: 0.23.16...0.23.17
Release notes
Open source →- Parallelize end-to-end golden tests with a shared test environment and concurrency pool.
- Delete symlinks before writing
dartdoc_options.yamlandanalysis_options.yamlto prevent out-of-tree file writes. - Reject screenshot paths containing colons and validate sandbox output folders.
- Validate repository URL reachability before creating local git repository.
- Bound
pubspec.yamlscanning in repository verification with a timeout and enforcemaxOutputBytesinGitTool.showFile. - Stream processing of
dart analyzestdout for better and more resilient parsing. - Re-enabled
include:inanalysis_options.yaml. - Disabled plugins in
dart analyze - Passthrough for
analyzer: exclude:inanalysis_options.yaml - Keeping
sdk:dev_dependencieswhen updatingpubspec.yaml.
-
0.23.1605 Aug 2026Release notes
Open source →- Protect against YAML alias expansion bombs (Billion Laughs), cyclic references, and extreme nesting depth in
yamlToJson.
- Protect against YAML alias expansion bombs (Billion Laughs), cyclic references, and extreme nesting depth in
-
0.23.1528 Jul 2026Release notes
Open source →- Set
PANA_OPT_OUT_DARTDOC_SANITIZE_HTMLenvironment variable totrueto skip--sanitize-htmlCLI arg when runningdartdoc. This is an internal, temporary option, which will be changed (or reverted) in a future release.
- Set
-
0.23.1402 Jul 2026Release notes
Open source →What's Changed
- Bump actions/checkout from 6.0.2 to 7.0.0 in the github-actions group by @dependabot[bot] in #1597
- Fix conditional export configuration keys by @leehack in #1594
- Prepare release 0.23.14 by @isoos in #1598
New Contributors
Full Changelog: 0.23.13...0.23.14
Release notes
Open source →- Fix: use
lexemeinpackage:analyzerto properly detect conditional imports.
-
0.23.1325 Jun 2026Release notes
Open source →What's Changed
- Bump dart-lang/setup-dart from 1.7.1 to 1.7.2 in the github-actions group by @dependabot[bot] in #1582
- Upgrade dependencies including analyzer. by @isoos in #1586
- Refactor webp-related method to separate WebpTool class. by @isoos in #1570
- Upgrade CI versions by @isoos in #1587
- Move jsonDecode inside the try-catch block during dependency report checks by @isoos in #1591
- Rename web_tool->webp_tool.dart by @isoos in #1590
- Fix: git file list parsing bug. by @isoos in #1588
- Detect legacy Kotlin configuration in Android plugins by @sigurdm in #1592
Full Changelog: 0.23.12...0.23.13
Release notes
Open source →- Detect legacy Kotlin Gradle Plugin application and
kotlinOptionsin Android plugins. - Upgraded dependencies to the latest.
-
0.23.1226 Mar 2026Release notes
Open source →What's Changed
- Only deduct scores for missing swiftpm support for actual darwin plugins by @sigurdm in #1579
- Prepare 0.23.12 by @isoos in #1581
Full Changelog: 0.23.11...0.23.12
Release notes
Open source →- Only subtract points for missing swiftpm support for actual darwin plugins.
-
0.23.1117 Mar 2026Release notes
Open source →What's Changed
- Re-run pub commands with --verbose after a failure. by @isoos in #1561
- Upgrade dartdoc version in end2end test + upgraded goldens timestamp + data. by @isoos in #1565
- Refactor: GitTool for high-level git commands. by @isoos in #1568
- Use '-z' (zero-byte separator) for git listing. by @isoos in #1569
- Use default package when detecting swiftpm compatibility of federated plugin by @sigurdm in #1576
Full Changelog: 0.23.10...0.23.11
Release notes
Open source →- Re-run
pubcommands with--verboseafter a failure. - Updated end2end tests to latest dartdoc.
- Use
-z(zero-byte separator) for git listing. - Use default package when detecting swiftpm compatibility of federated plugin.
-
0.23.1017 Feb 2026Release notes
Open source →What's Changed
- Support more CLI arguments: sandbox-runner, dartdoc-command by @isoos in #1559
- Bump actions/checkout from 6.0.1 to 6.0.2 in the github-actions group by @dependabot[bot] in #1557
- Updated platform report: partial score for wasm and switft manager incompatibility. by @isoos in #1563
- Better parsing and ignoring known issues of 'dart format' error. by @isoos in #1560
- Prepare release + small fixes by @isoos in #1564
Full Changelog: 0.23.9...0.23.10
Release notes
Open source →- Support for
--sandbox-runnerand--dartdoc-commandCLI options. - Updated platform report: partial score for WASM and Swift package manager incompatibility.
- Better parsing of
dart formatoutput.
-
0.23.903 Feb 2026Release notes
Open source →What's Changed
- Add --license-data option to support AOT compilation by @jonasfj in #1552
- Run git and webp with the sandbox runner. by @isoos in #1555
- Fix compiled pana's package:analyzer issues + separate self-run test. by @isoos in #1556
- Prepare 0.23.9 by @isoos in #1558
Full Changelog: 0.23.8...0.23.9
Release notes
Open source →- Added
--license-dataargument to specify the location of SPDX license data (useful for AOT compilation). - Run
webp- andgit-commands inside the sandbox (if it was provided).
-
0.23.820 Jan 2026 -
0.23.720 Jan 2026Release notes
Open source →- Use only
dartcommands, Flutter SDK will be used whenFLUTTER_ROOTis set. - Option to use a precompiled
dartdocbinary.
- Use only
-
0.23.615 Jan 2026Release notes
Open source →- Always use
flutter pub pubwhen invokingpubwith Flutter SDK. - Omit
pubspec.yamlwarning about local path dependency in the report. - Fix type cast issue when customizing
analysis_options.yaml. - Do not export
FLUTTER_ROOTenvironment for Dart-only SDK. - Option to call a sandbox runner for tool environment commands.
- Always use
-
0.23.506 Jan 2026 -
0.23.405 Jan 2026 -
0.23.325 Nov 2025Release notes
Open source →- Support for multiple
include:entry inanalysis_options.yaml. - Fix issue with
PUB_HOSTED_URLwith custom path segments.
- Support for multiple
-
0.23.218 Nov 2025Release notes
Open source →- Allow
package:analyzerrange to accept^9.0.0too. - Fix issue where screenshots with same filenames but located in different subdirectories were overwriting each other during processing.
- Only complain about wasm support for web-enabled packages.
- Allow
-
0.23.131 Oct 2025Release notes
Open source →- Support passthrough of unrelated linter rules in analysis option customization.
- Support passthrough of unrelated analyzer errors in analysis option customization.
- Added new license files.
-
0.23.021 Oct 2025Release notes
Open source →Breaking changes:
- Removed deprecated API.
- Removed
RangeandPositionfrom the model, addedTextOpto list changes and matching parts in the license. - Removed
packageNamefromSdkConstraintStatus.fromSdkVersionconstructor. - Removed
ToolEnvironmentmethods:runUpgrade(userunPubinstead) andwithRestrictedAnalysisOptions(no replacement). - SDK constraint is no longer added to old
pubspec.yaml - Removed
--line-lengthCLI argument and alsolineLengthfrom analysis options. Use configurable page width instead.
-
0.22.2410 Oct 2025Release notes
Open source →- Fixed small ambiguity in the order of license match evaluation.
- Resolve
analysis_options.yamldev dependency to expose transitive formatter options. - Fixed license coverage calculation.
- Fixed license match post-filtering.
-
0.22.2308 Sep 2025Release notes
Open source →- Upgraded SDK constraint:
^3.8.0. - Updated
LicensewithRange? rangefield that identifies the recognized block.
- Upgraded SDK constraint:
-
0.22.2205 Aug 2025Release notes
Open source →- Do not list SDK packages in the outdated packages report.
- Deprecated
downloadPackage, use the newToolEnvironment.unpackinstead. - Fix issue with analyzing packages nested inside git repositories on windows. https://github.com/dart-lang/pana/issues/1207
- Check the reference of the current version in
CHANGELOG.md.
-
0.22.2115 Apr 2025Release notes
Open source →- Preserve all
formattersettings inanalysis_options.yamlwhen doingdart format.
- Preserve all
-
0.22.2018 Mar 2025Release notes
Open source →- Reduced minimum description length to 50 characters.
- Filter SDK package
flutterfrom the outdated report.
-
0.22.1910 Mar 2025Release notes
Open source →- Extended recognized image extensions in URL resolver.
- Preserve formatter:page-width when doing
dart format. - Lower score for packages with discontinued dependency.
-
0.22.1810 Jan 2025Release notes
Open source →- Make example's
README.mdpriority over any dart file in the examples directory. - Expose more precise repository verification status in
AnalysisResult. - Track URL issues with explicit acceptance state (404 status does not cause score deduction).
Also display such URLs in
AnalysisResult.
- Make example's
-
0.22.1710 Dec 2024Release notes
Open source →- Fixed lower dependency constraint for
cli_util. - Use
flutter pub global activate dartdocfor Flutter packages.
- Fixed lower dependency constraint for
-
0.22.1603 Dec 2024 -
0.22.1529 Oct 2024Release notes
Open source →- Detect support for Swift Package Manager for ios/macos plugins.
- Fixes issue with local analysis without git repository root.
- Accept
loggerinPackageAnalyzer.inspectDirmethod.
-
0.22.1311 Oct 2024Release notes
Open source →- Pass-through for
formatter/page_widthinanalysis_options.yaml. - Upgraded
lintsto^5.0.0
- Pass-through for
-
0.22.1227 Aug 2024Release notes
Open source →- Updated report text for
wasmreadiness. - Updated paragraph separation in report sections.
- Updated report text for
-
0.22.1120 Aug 2024 -
0.22.1008 Aug 2024Release notes
Open source →- Remove
workspaceandresolutionproperties from pubspec before analyzing.
- Remove
-
0.22.918 Jul 2024Release notes
Open source →- Updated suggestion for packages depending on SDK
_macros. - Deprecated the
renderSimpleSectionSummarymethod in public API.
- Updated suggestion for packages depending on SDK
-
0.22.805 Jul 2024Release notes
Open source →- Updated dependency:
tar: ^2.0.0. - New text logging format.
- Migrating
Summary.licenseFileandSummary.licensestoAnalysisResult.licenses. - Breaking change: Removed
ToolEnvironment.panaCachefield (not intended for public API).
- Updated dependency:
-
0.22.719 Jun 2024Release notes
Open source →- Enable
macrosexperiment pass-through inanalysis_options.yaml. - Verify
executablesinpubspec.yamland check if the related files exist. - Fixed
has:executablecheck.
- Enable
-
0.22.612 Jun 2024Release notes
Open source →- New recognized example files in the
example/bindirectory. - Add
has:executabletag for packages withbin/<executable>.dartfiles.
- New recognized example files in the
-
0.22.530 May 2024 -
0.22.424 May 2024 -
0.22.317 Apr 2024Release notes
Open source →- Do not emit package names in
allDependencieswith trivial syntax issues. - Log
dartdocoutput.
- Do not emit package names in
-
0.22.227 Feb 2024Release notes
Open source →dartdocprocessing is run as the last step of the generated report.- Fix: missing custom SDK environment (config directory use) when invoking Flutter.
-
0.22.112 Feb 2024Release notes
Open source →- Fix: unspecified
--dartdoc-versionwill use the latest version in an isolated environment. To use the SDK'sdartdoc, set the value tosdk.
- Fix: unspecified
-
0.22.009 Feb 2024Release notes
Open source →ToolEnvironment:.create()takesconfigHomeDirto specify config the home directory used for the analysis (helps switching different analyzer SDKs).create()takespubHostedUrlasPackageAnalyzer.create()was removed.
InspectOptions:totalTimeBudgetto allow the dynamic reduction ofdartdocTimeout.resourcesOutputDirto store the resources files (without the previous callback).
bin/pana.dartaccepts 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
- Renamed
runProc->runConstrained. - Removed:
- deprecated APIs
InspectOptions.checkRemoteRepository- repositories are verified by defaultPackageAnalyzer:create()inspectVersions()storeResourcecallback ininspectPackage(), useInspectOptions.resourcesOutputDirinstead
ProcessOutput.asBytesReport.joinSection()ToolEnvironment:create()method droppeduseGlobalDartdocflag, will use global dartdoc whendartdocVersionis specified, otherwise uses the Dart SDK'sdart doc.create()method droppeddartSdkDir,flutterSdkDir, andenvironment, usingSdkConfigfor each of the SDKs.- removed parameters from
dartdoc() detectFlutterUse()get dartSdkDirget flutterSdkDirget environmentgetFlutterVersion()
analysisOptionsFileschangelogFileNamescurrentAnalysisOptionsFileNamedartdocFailedSectiondocumentationCoverageSection()documentationSectionTitlefirstFileFromNameslicenseFileNamespubspecParseErrorreadmeFileNames
ToolExceptionhas reference to the entirePanaProcessResult, instead of just thestderr.
-
0.21.4518 Dec 2023 -
0.21.4408 Dec 2023Release notes
Open source →- Fix:
dart:ui_webis now part of the SDK-detection library list. - The use of
kindinpub-data.jsonis deprecated, as it may contain different value on differentdartdocversion. The field may be removed in a future version.
- Fix:
-
0.21.4321 Nov 2023Release notes
Open source →- Fix: limit number of documentation entries exported in
pub-data.json. - Fix: Add
dart:js_interop_unsafeas a web library. - Pre-compute missing documentation symbol before pruning the results.
- Fix: limit number of documentation entries exported in
-
0.21.4209 Nov 2023 -
0.21.4107 Nov 2023Release notes
Open source →- Pana binary now runs
dartdocand generates report based on the coverage (the same that pub-dev is using). The--no-dartdoccommand line argument skips this part of the analysis. - Breaking change: running the global dartdoc has become the default (instead
of the SDK's
dart doc), because the latest SDK is behind the latestdartdocversion, and we want to control what is being used by the analysis. - Breaking change:
ToolEnvironment.dartdocreturnsPanaProcessResult.
- Pana binary now runs
-
0.21.4002 Nov 2023 -
0.21.3918 Oct 2023Release notes
Open source →- Removed file size checks. (If upload limits allow it,
panashould not complain.)
- Removed file size checks. (If upload limits allow it,
-
0.21.3810 Oct 2023Release notes
Open source →- Added
dart:ui_webas Flutter Web platform. - Fix: static analysis is done only when the package resolution was successful.
- Added
-
0.21.3726 Sep 2023Release notes
Open source →--no-warningis no longer needed, and has no effect.- Fix: expose repository verification issues in report.
- Upgraded
package:tarto1.0.0. - Added
AnalysisResult.grantedPointsandAnalysisResult.maxPoints.
-
0.21.3617 Aug 2023 -
0.21.3507 Jul 2023Release notes
Open source →- Merge Dart 3 compatibility report into static analysis.
- Breaking change: Remove future SDK flags.
- Upgrading to
package:analyzer 6.0.0
-
0.21.3423 Jun 2023 -
0.21.3321 Jun 2023Release notes
Open source →- Do not block repository check when
pubspec.yamlis in path that is not accepted. - Upgraded to Dart 3.0.
- Resolve
package:lints/core.yamllocally before loading from GitHub. InspectOptions.analysisOptionsYamlis now deprecated.- Removed null-safety report (Dart 3 compatibility report is used by default).
Breaking changes:
PanaProcessResultno longer implementsdart:io'sProcessResult.DartdocResultusesPanaProcessResultinstead ofProcessResult.- Deprecating
InspectOptions.futureSdkTag, configuration no longer used.
- Do not block repository check when
-
0.21.3209 May 2023 -
0.21.3103 May 2023Release notes
Open source →- Dart 3 compatibility section label includes Flutter 3.10 when applicable.
- Code cleanup in
ToolEnvironment.
-
0.21.3021 Apr 2023 -
0.21.2920 Apr 2023