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:


dependencies:
  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.

Popularity:
Describes how popular the package is relative to other packages. [more]
27
Health:
Code health derived from static analysis. [more]
98
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
80
Overall:
Weighted score of the above. [more]
59
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

Platforms

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.

Dependencies

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