flutter_plugin_tools 0.0.24

  • Readme
  • Changelog
  • Installing
  • 59

Flutter Plugin Tools #

Build Status pub package

Flutter Plugin Tools implements a CLI with various productivity tools for hosting multiple Flutter plugins in one github repository. It is mainly used by the flutter/plugins and flutter/flutterfire repositories. It was mainly written to facilitate testing on Travis for these repositories (see .travis.yml).

As an example, Flutter Plugin Tools allows you to:

  • Build all plugin example apps with one command
  • Run the tests of all plugins with one command
  • Format all Dart, Java, and Objective-C code in the repository
  • Define shards of the above tasks

Installation #

In order to use the tools you need to enable them once by running the following command:

$ pub global activate flutter_plugin_tools

Requirements #

To use all features of flutter_plugin_tools you'll need the following commands in your PATH:

  • flutter
  • git
  • pub (recommended: version from <path/to/flutter>/bin/cache/dart-sdk/bin)
  • clang-format version 5 (alternatively, you can provide the path via --clang-format=)

Usage #

$ pub global run flutter_plugin_tools <command>
$ pub global run flutter_plugin_tools <command> --shardIndex 0 --shardCount 3

Run commands from the flutter/plugins directory. Replace <command> with help to print a list of available commands. The sharded example above divides the plugins into three shards and executes the tool on the first shard (index 0).

v.0.0.24 #

  • Gracefully handle pubspec.yaml files for new plugins.
  • Additional unit testing.

v.0.0.23 #

  • Add a test case for transitive dependency solving in the create_all_plugins_app command.

v.0.0.22 #

  • Updated firebase-test-lab command with updated conventions for test locations.
  • Updated firebase-test-lab to add an optional "device" argument.
  • Updated version-check command to always compare refs instead of using the working copy.
  • Added unit tests for the firebase-test-lab and version-check commands.
  • Add ProcessRunner to mock running processes for testing.

v.0.0.21 #

  • Support the --plugins argument for federated plugins.

v.0.0.20 #

  • Support for finding federated plugins, where one directory contains multiple packages for different platform implementations.

v.0.0.19+3 #

  • Use package:file for file I/O.

v.0.0.19+2 #

  • Use java as language when calling flutter create.

v.0.0.19+1 #

  • Rename command for CreateAllPluginsAppCommand.

v.0.0.19 #

  • Use flutter create to build app testing plugin compilation.

v.0.0.18+2 #

  • Fix .travis.yml file name in README.md.

v0.0.18+1 #

  • Skip version check if it contains publish_to: none.

v0.0.18 #

  • Add option to exclude packages from generated pubspec command.

v0.0.17+4 #

  • Avoid trying to version-check pubspecs that are missing a version.

v0.0.17+3 #

v0.0.17+2 #

  • Fix exception handling for version checker

v0.0.17+1 #

  • Fix bug where we used a flag instead of an option

v0.0.17 #

  • Add a command for checking the version number

v0.0.16 #

  • Add a command for generating pubspec.yaml for All Plugins app.

v0.0.15 #

  • Add a command for running driver tests of plugin examples.

v0.0.14 #

  • Check for dependencies->flutter instead of top level flutter node.

v0.0.13 #

  • Differentiate between Flutter and non-Flutter (but potentially Flutter consumed) Dart packages.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  flutter_plugin_tools: ^0.0.24

2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter pub get

Alternatively, your editor might support pub get or flutter pub get. Check the docs for your editor to learn more.

Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Nov 7, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.6.0
  • pana: 0.12.21


Detected platforms: Flutter, web, other

No platform restriction found in libraries.

Health suggestions

Fix lib/src/common.dart. (-1.49 points)

Analysis of lib/src/common.dart reported 3 hints:

line 263 col 21: Use = to separate a named parameter from its default value.

line 267 col 5: Future results in async function bodies must be awaited or marked unawaited using package:pedantic.

line 268 col 5: Future results in async function bodies must be awaited or marked unawaited using package:pedantic.

Fix lib/src/drive_examples_command.dart. (-0.50 points)

Analysis of lib/src/drive_examples_command.dart reported 1 hint:

line 85 col 9: Future results in async function bodies must be awaited or marked unawaited using package:pedantic.

Maintenance issues and suggestions

Support latest dependencies. (-10 points)

The version constraint in pubspec.yaml does not support the latest published versions for 1 dependency (http).

Package is pre-v0.1 release. (-10 points)

While nothing is inherently wrong with versions of 0.0.*, it might mean that the author is still experimenting with the general direction of the API.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.8.0 <3.0.0
args ^1.4.3 1.5.2
async ^2.0.7 2.4.0
colorize ^2.0.0 2.0.0
file ^5.0.10 5.1.0
git ^1.0.0 1.0.1
http ^0.11.3+17 0.11.3+17 0.12.0+2
meta ^1.1.7 1.1.8
path ^1.6.1 1.6.4
pub_semver ^1.4.2 1.4.2
pubspec_parse ^0.1.4 0.1.5
quiver ^2.0.2 2.1.2+1
test ^1.6.4 1.9.4
yaml ^2.1.15 2.2.0
Transitive dependencies
_fe_analyzer_shared 1.0.0
analyzer 0.39.1
boolean_selector 1.0.5
charcode 1.1.2
checked_yaml 1.0.2
collection 1.14.12
convert 2.1.1
coverage 0.13.3+1
crypto 2.1.3
csslib 0.16.1
front_end 0.1.29
glob 1.2.0
html 0.14.0+3
http_multi_server 2.1.0
http_parser 3.1.3
intl 0.16.0
io 0.3.3
js 0.6.1+1
json_annotation 3.0.0
kernel 0.3.29
logging 0.11.3+2
matcher 0.12.6
mime 0.9.6+3
multi_server_socket 1.0.2
node_interop 1.0.3
node_io 1.0.1+2
node_preamble 1.4.8
package_config 1.1.0
package_resolver 1.0.10
pedantic 1.8.0+1
pool 1.4.0
shelf 0.7.5
shelf_packages_handler 1.0.4
shelf_static 0.2.8
shelf_web_socket 0.2.3
source_map_stack_trace 1.1.5
source_maps 0.10.8
source_span 1.5.5
stack_trace 1.9.3
stream_channel 2.0.0
string_scanner 1.0.5
term_glyph 1.1.0
test_api 0.2.11
test_core 0.2.15
typed_data 1.1.6
vm_service 2.1.1
watcher 0.9.7+12
web_socket_channel 1.1.0
Dev dependencies
mockito ^4.1.1