pana 0.15.0+1
pana: ^0.15.0+1 copied to clipboard
Evaluate the health and quality of a Dart package
0.15.0+1 #
- Does not depend on package:tar.
0.15.0 #
- BREAKING Removed:
createPkgResolutionSummary.pkgResolutionPkgResolutionPkgDependencyConstraintTypesDependencyTypesVersionResolutionTypeToolEnvironment.listPackageDirsSync
- BREAKING
ToolEnvironment.runProcandToolEnvironment.runProcSyncnow take the executable as the first element of the argument list instead of as a separate argument. - If unsupported versions of dependencies are newer than 30 days or depend on a unreleased sdk the package will still be awarded points in the report.
- Better timeout message for dartdoc section
- Adjust
runProctimeout/kill handler.
0.14.10 #
Summary.allDependenciesto store the name of direct-, dev- or transient dependencies.Summary.pkgResolutionwill be removed in a future release.- Upgraded
package:analyzerto0.41.0. - Deprecated methods in
ToolEnvironment
0.14.9 #
- Use library import graph to determine null-safety.
0.14.8 #
- Tag packages with
is:null-saferegardless whether the current SDK support.
0.14.7 #
- Improvements to null safety section.
0.14.6+1 #
- Fixed NPE on missing
ReportStatusand do not backfill automatically.
0.14.6 #
- Added a report section about null safety.
0.14.5 #
- Upgraded
package:analyzerandpackage:markdown. - Removed overrides in
pubspec.yaml. - Fixed first version for null safety (#791).
0.14.4 #
- Fix: RangeError in certain reported issues.
- New field:
ReportSection.id.
0.14.3 #
- Classify asset-only packages as multi-platform.
0.14.2 #
- Fix: NPE when LICENSE file is not recognized.
- Runs
dartanalyzeronly once.
0.14.1 #
- Fix: NPE in license URL checks.
0.14.0 #
- Fix: SDK constraint check should use the tool-environment's SDK version.
- Re-added non-ASCII character checks.
- Fix: Malformed UTF-8 files caused markdown checks to fail.
- Fix: Apply InspectOptions.analysisOptionsUri on new scoring.
BREAKING CHANGES:
bin/pana.dartCLI changes:- removed
--reportflag (it is always the default), added--verboseflag to display full JSON data - removed
--scoresflag (it is always-on by default) - removed
--verbosityoption (the output data is always the same)
- removed
- Removed:
bin/bulk.dartComponentNamesDartFileSummaryDartPlatformHealthMaintenancePlatformNamesPlatformUseStatsSuggestionSummary.dartFilesSummary.healthSummary.licenses(using only a singleSummary.licenseFile)Summary.maintenanceSummary.platformSummary.statsSummary.suggestionsVerbosity
0.13.16 #
- Clarified and fixed report summaries.
- Fix:
mailtolinks are no longer classified as unsecure. - Download URLs recognize
.gitwhen linking to a file.
0.13.15 #
- Fix: handle new
--versionoutput from latest Dart SDK. - Various nit fixes to the generated report.
0.13.14 #
- Fixed required URL checks in pubspec validation.
- Fixed
pub outdatedexecution - using specified package dir. - Various nit fixes to the generated report.
- Fix for deciding the latest version when no version is given for a hosted package.
0.13.13 #
- Deferred source span loading (fixes out of memory issue).
0.13.12 #
- Updated the rendering templates of
Section.summary. - Fixed percent calculation in documentation report.
0.13.11+1 #
- Fixed string processing in untar error path.
0.13.11 #
- Implemented new scoring report.
- Improved unpacking of package archives.
- Better path handling on Windows.
0.13.10 #
- Trust plugins platform declaration when assigning tags.
0.13.9+1 #
- Fixed NPE in old Flutter plugin format detection.
0.13.9 #
- Adds a tag for null safety.
- Adds suggestions for why tags don't apply.
- Command line uses
--source=pathby default. - Support platform tagging of old-style flutter plugin declarations.
- Give penality for old-style flutter plugin declarations.
0.13.8 #
- Fix: NPE after
dartanalyzerexits with a failure.
0.13.7 #
- Fix: handle new
--versionoutput from latest Dart SDK.
0.13.6 #
- Fix: detect Dart files on Windows
- Fix: unescape double-backslash from files reported by
dartanalyzeron Windows. - Fix: avoid crashing on "file://" imports.
0.13.5 #
- Fix: when there are no libraries matching
lib/*.dart, other libraries outside oflib/src/will be recognized as top-level libraries. - Use
repositoryfrompubspec.yamlto resolve license URLs. - Example detection:
README.mdis de-prioritized, Dart files take precedence.
0.13.4 #
InspectOptions.analysisOptionsUrito optionally control whichpedanticversion (or other package's) ruleset is used for analysis lints.
0.13.3 #
- Updated tag detection for packages without a primary library.
- Upgraded analyzer to
^0.39.0. - More
dart:*libraries in tag detection:cli,nativewrappers,html_common. - Limit overall style lint penalties on health score: 25%.
0.13.2 #
- Don't penalize packages on legacy platform detection results.
0.13.1+4 #
- Fix the version number of pana
0.13.1+3 #
- Allow import of platform:flutter on platform web when calculating tags.
- Fix the finding of primary library.
0.13.1+2 #
- More handling of degenerate cases when computing sdk, platform and runtime tags.
0.13.1+1 #
- Handle degenerate cases when computing sdk, platform and runtime tags.
0.13.1 #
- Compute sdk, platform and runtime tags.
0.13.0 #
-
UrlCheckerfollows redirects (max. 10 redirects). -
Fix: pre-release versions are not considered when detecting outdated dependencies.
-
Detect and report sdk tags ('sdk:flutter', 'sdk:dart').
0.12.21 #
- Upgraded dependencies:
analyzer0.38.2.
0.12.20 #
-
Updated suggestion for not supporting future stable SDKs.
-
Upgrade dependencies:
analyzerto0.37 -
Support the latest
json_annotation. -
Don't penalize outdated dependency when the package's constraint allows it, but a dependent package or SDK restricts it.
0.12.19 #
- Fix: penalize outdated package constraints only for direct dependencies.
0.12.18 #
- Penalize package constraints that does not support the latest published versions of their dependencies.
0.12.17 #
- Recognize
.markdownand.mdownfiles. - Recognize
COPYINGandUNLICENSEas license file names (or prefix). - Accept any extension for license files.
0.12.16 #
- Fixed the use of
pedanticrules following the new versioned pattern.
0.12.15 #
-
Fix: delete local temporary
pedantic_analyis_options_[timestamp].g.yaml. -
Upgrade dependencies:
analyzerto0.36
0.12.14 #
-
Penalty for too large readme, changelog or example.
-
Penalty for too large
pubspec.yaml. -
Display calculated health and maintenance scores when
panais called with--scores. -
Ask for example only for packages with public libraries.
-
Deduplicate
dartanalyzeroutput lines.
0.12.13+1 #
- Support the latest
package:analyzer.
0.12.13 #
-
Don't block platform classification on hints.
-
Apply
pedanticrules without referencingpackage:pedanticin the inspected package'spubspec.yaml. -
Warn about insecure (non-
https) image URLs in markdown content (readme, changelog and example).
0.12.12 #
-
Link to package layout conventions in example-related suggestions.
-
Use
package:pedanticas default package analysis ruleset. -
Linear penalties for description.
-
Updated suggestion messages.
0.12.11 #
- Maintenance score penalty for:
- non-https URLs
gitdependencies- strict parsing errors of
pubspec.yaml
0.12.10 #
-
Support
--line-lengthin command-line and inInspectOptions(pass-through todartfmt). -
Fix
pub upgradeparsing. -
Strict SDK constraint status:
sdk: anyorsdk:is considered missing constraint- handling cases without upper bound (
sdk: >1.0.0is rejected by Dart2 latest)
0.12.9 #
-
Analysis options used in code health scoring updated:
- removed stale options,
- included latest Flutter-enabled lints,
- included latest stagehand-enabled lints.
-
Upgraded to
package:analyzer 0.34.1, which fixed a NPE. -
Validating
repositoryandissue_trackerURLs.
0.12.8 #
-
Code cleanup.
-
Reduce the amount of warning+ level log messages when tools fail.
-
Handle package with bad
pubspec.yaml.
0.12.7 #
-
Reduce the amount of logging when
dartfmtfails due to an issue in the package. -
Display Dart SDK warning if package doesn't allow the latest Dart 2.X version.
0.12.6 #
-
Bulk processing and comparison.
-
Penalty for description using too many non-ASCII characters.
-
Use
--dry-runon executing flutter format. -
Retry the external process on downloading and listing packages.
-
Use Flutter's internal Dart SDK to run
dartanalyzeron Flutter packages.
0.12.5 #
-
Increase the severity of missing SDK constraint.
-
Make
example/readme.mdthe first-level example-file candidate. -
Scores values should be consistently in the
[0.0-1.0]range.
0.12.4 #
-
Documented how scoring works.
-
Estimate health score penalties.
0.12.3 #
-
Increased
dartfmttimeout to 5 minutes. -
Store basic stats in the analysis summary.
-
Detect
example/readme.md(or similar pattern) as an alternative to single.dartexample.
0.12.2 #
- Bugfix: pre-v1 release should be pre-v0.1 instead.
0.12.1 #
- Bugfix: packages without Dart files failed the health checks.
0.12.0 #
Breaking changes:
-
Named parameters in the following constructors:
Summary,DartFileSummary,PkgDependency,CodeProblem. -
Removed per-file and overall
Fitness, using a top-levelHealthreport instead. Follows the proposed changes that allow us to clearly communicate the scoring mechanism. -
Removed
Penaltyand using the simpler to understandscorein place of it.
Updates:
-
Use
flutter formatfor Flutter packages. -
Support relative local path with
--source path. -
Track tool failures and set health score to 0 if there is any.
0.11.8 #
-
Support Dart 2 gold release.
-
Remove
strong-mode: truecheck and suggestion. -
Do not check existence of non-external URLs.
-
API for external caching of URL existence checks.
0.11.7 #
- Suggestions for SDK constraint and Dart 2 compatibility.
0.11.6 #
- Updated report on
dartanalyzersuggestions.
0.11.5 #
-
Less verbose logging.
-
Updated platform classification:
- Library conflict rule is moved to the end of the evaluation.
- Top file-related suggestions are directly exposed.
- The bulk summary suggestion is more compact.
-
Updated suggestion messages.
0.11.4 #
-
Export libraries used by pub site.
-
Update minimum SDK to
2.0.0-dev.42.0- The SDK was effectively restricted to at least this version due to other dependencies.
-
Better expose platform conflict reasons.
0.11.3 #
-
Support changing part of the analysis result.
-
Fix
dartdoctimeout when usingpub global run.
0.11.2 #
-
dartdocprocessing: do not exclude packages by default, asdartdoc0.19handles SDK links. -
expose
getAgeSuggestionmethod for pub site -
Update
analyzerdependency to^0.32.0.
0.11.1 #
-
Upgrade CI to dev.54 and fix new deprecation warnings.
-
Bugfix: do not initialize
dartdocSuccessfulwith a value. -
Support
--flutter-sdkin thepanabinary.
0.11.0 #
Breaking changes:
-
DartSdk,FlutterSdkandPubEnvironmentis replaced withToolEnvironment. -
ToolEnvironment.runAnalyzerreturns the text output of the process. -
Consolidating options in
InspectOptions, changingPackageAnalyzerAPIs. -
Move all output-related data structure to
src/model.dart:CodeProblem.parse->parseCodeProblemMaintenance.getMaintenanceScore->getMaintenanceScorePkgResolution.create->createPkgResolution
-
Move all runtime/version info into
PanaRuntimeInfo(and use it inSummary). -
Removed
Fitness.suggestions(moved it toDartFileSummary)
Updates:
-
Run
dartdoc(optional) and report if it was not able to complete successfully. -
Added a top-level
models.dartlibrary exposing several of the data classes. -
Check
homepageanddocumentationproperties to point to an existing and external web page. -
--verbosecommand-line andVerbosityoption to control the details in the analysis output.
0.10.6 #
-
Enable Dart 2 Preview in analyzer options (including non-Flutter packages).
-
Change platform classification of
dart:isolate: no longer available onweb. -
Treat
environment:keys as dependent SDKs (e.g.flutter). -
Use
LibraryElement.hasExtUrito detectdart-ext:imports. -
Detailed suggestion messages when package has conflicting platforms.
0.10.5 #
- Enable Dart 2 Preview in Flutter analyzer options.
0.10.4 #
-
Fix CI test
-
Flutter-specific suggestion messages for
dartfmtanddartanalyzer.
0.10.3 #
-
Fix end-to-end test (package dependency changed).
-
Move pubspec stripping inside
PubEnvironment.runUpgrade(dartdocservice will get it for free). -
Handle more repository URLs (e.g.
www.github.com). -
Expose Flutter detection to clients, with better naming (
isFlutter->usesFlutter).
0.10.2 #
-
Fix issue of not using the
PUB_CACHEdirectory when it was set. -
Update
analyzerto 0.31 and extendsquiverversion range. -
Fix issue where we were not passing the proper package directory variable.
-
Expose all
dartanalyzeranddartfmtproblems as suggestions.
0.10.1 #
-
Include component list in platform classification reasons.
-
Do not report on unconstrained SDK dependencies.
-
New platform component:
build. -
Remove
dependency_overridesfrompubspec.yaml.
0.10.0 #
BREAKING CHANGES:
-
Removed
DartPlatform.descriptionandDartPlatform.descriptionAndReasonbecause we don't use them elsewhere and complicates thePlatformNameswitheverywhereandundefined. -
Removed
PlatformNames.everywhereandPlatformNames.undefined, because we don't print these anywhere except in tests. -
Removed
PlatformNames.dartExtension, because we use it only internally. -
Removed
DartPlatform.restrictedTo, using the fieldscomponentsandusesinstead. -
Removed
PlatformNames.server(and its platform detection), using a widerotherplatform instead.
0.9.1 #
-
Use raw links for images in repository URLs.
-
Move unconstrained version penalty from health score to maintenance.
-
Move platform conflict penalty from health score to maintenance.
-
Sort maintenance suggestions in decreasing importance.
0.9.0+1 #
- Fix NPE when dependency has no constraint (e.g. git repo).
0.9.0 #
-
Only direct unconstrained dependencies decrease the health score.
-
Removed superfluous
pubspec.lockvalidation. -
Recommend descriptions between 60 and 180 characters.
-
Detect another license format
-
Pass-through values of
analyzer_options.yamlerrors likeuri_has_not_been_generated.
0.8.2 #
-
Unblock platform classification on a new class of errors.
-
Better messages in platform classification.
0.8.1 #
-
Use Flutter-recommended analysis options when analyzer Flutter packages.
-
BREAKING BEHAVIOR: Don't use
PUB_HOSTED_URLfor package downloads, as it has not worked out in practice. Instead, we've added a--hosted-urlcommand line argument.
0.8.0 #
-
PackageAnalyzer.inspectPackageadded a named argumentdeleteTemporaryDirectory. Setting this tofalseretains the directory and prints its location to the log. Useful for debugging. -
Maintenance-
BREAKING
getMaintenanceScorenow takes an optionalageparameter replacing the previously requiredpublishDateparameter. -
Changed the meaning of version fields:
isExperimentalVersionnow means pre-V1.isPreReleaseVersionnow means there is a pre-release flag like-beta,-alpha, etc.
-
BREAKING maintenance-related
Suggestionentries as moved toMaintenance.suggestions
-
-
BREAKING
Suggestion.fileis nowStringinstead ofdynamic. -
Detect the new format of native extensions.
-
Unblock platform classification on a new class of errors.
-
Use
PUB_HOSTED_URLfor package downloads.
0.7.3+1 #
- Allow more versions of
package:args.
0.7.3 #
-
Added
panaas an executable. Enablespub global activate pana. -
Improved license detection: commented license files are now recognized.
0.7.2 #
-
Handle more critical exceptions and report them with more details.
-
The
Suggestion.bugconstructor had a breaking change – a required argument was added, but this is not intended for invocation by end-users.
0.7.1 #
- Add
SuggestionLevel.bugand use it to record fatal errors with the tool.
0.7.0+1 #
- Fixed issue where analyzer and/or formatter were run on directories with no Dart files.
0.7.0 #
-
Breaking changes
-
Summary.sdkVersionis now aVersioninstead ofString. -
new PackageAnalyzer(...)now takes aDartSdkinstance instead of aString.
-
-
static Future<PackageAnalyzer> create(...)was added toPackageAnalyzer. -
Added
loggeroptional argument toPackageAnalyzer.inspectPackage.
0.6.2 #
- Allow platform classification for a small class of analysis errors.
0.6.1 #
- Don't count the absence of an
analysis_options.yamlfile against a package.
0.6.0 #
-
Breaking changes
- Removed
ToolProblemclass. - Removed
Summary.toolProblems, in favor ofSummary.suggestions.
- Removed
-
Detect and store maintenance-related data in summary.
- Scoring of tool problems moved from
FitnesstoMaintenance.
- Scoring of tool problems moved from
-
Provide human-readable feedback and instructions on some of the issues we find during the analysis.
0.5.1 #
-
Use a consistent 2 minute timeout for all processes.
-
Classify platform as
nowherewhen part of analysis fails.
0.5.0 #
-
Breaking changes
Licenserenamed toLicenseFileSummary.license->licenses: we'll return multiple licenses- Removed
LicenseNames.missing: empty List will indicate no license file
-
Greatly expanded and improved license detection.
0.4.0 #
-
Breaking changes
-
Renamed
AnalyzerIssue->ToolProblem- Renamed
Summary.issues->toolProblems - Renamed
AnalyzerIssue.scope->tool - Renamed
AnalyzerScopes->ToolNames
- Renamed
-
Renamed
AnalyzerOutput->CodeProblem- Renamed
Summary.analyzerItemsandDartFileSummary.analyzerItems->codeProblems
- Renamed
-
Refactored
CodeProblem(previouslyAnalyzerOutput):- Split up
type, new fields:severity,errorType,errorCode - Renamed
errortodescription
- Split up
-
Refactored
Fitness:- Renamed
total->magnitude - Removed
value, usingshortcominginstead (value=magnitude - shortcoming;)
- Renamed
-
Refactored
PubSummary, renamed toPkgResolution- Moved
pubspec->Summary - Moved
pkgVersion->Pubspec.version - Moved
authors->Pubspec.authors - Merged
packageVersionsandavailableVersionsintodependencies - Renamed
Summary.pubSummary->pkgResolution
- Moved
-
Refactored
platform:- Renamed
PlatformFlags->PlatformNames - Removed most of the platform-related classes, using
DartPlatforminstead
- Renamed
-
0.3.0 #
-
Removed
PlatformSummary.packagein favor ofPlatformSummary.pubspecof (new) typePubspecPlatform. -
Renamed
KnownPlatformstoPlatformFlags. Also:- Removed
mirrors,browserandstandalone. - Renamed
nativetodartExtension.
- Removed
-
PlatformInfo- Now store
dart:*references directly inuses. worksInStandalonerenamed toworksOnServer.- Other
.worksIn*renamed toworksOn*. - Added
String get descriptionwhich returns a simpleStringdescription of the supported platforms. Examples:everywhere,flutter,server, web,conflict. - Removed
angularas a value inuses.
- Now store
0.2.4 #
-
Detect native extensions.
-
Detect licenses.
0.2.3 #
-
Lot's of stability improvements.
-
Improvements to error handling.
0.2.2 #
-
Lot's of cleanup to JSON output.
-
Improved stability.
-
Platform detection basics.
0.2.1 #
-
Added support for
flutterpackages. -
Expanded analysis to include transitive dependencies.
-
Added scoring library.
-
Moved the repo to
dart-lang.
0.2.0 #
- A lot of tweaks. Still under heavy development.
0.0.1 #
- Initial version.