flutter_plugin_tools 0.0.37+1

  • Readme
  • Changelog
  • Installing
  • 56

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=)
  • pod (macOS only)

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.37+1 #

  • All_plugin test puts the plugin dependencies into dependency_overrides.

v.0.0.37 #

  • Only builds mobile example apps when necessary.

v.0.0.36+3 #

  • Add support for Linux plugins.

v.0.0.36+2 #

  • Default to showing podspec lint warnings

v.0.0.36+1 #

  • Serialize linting podspecs.

v.0.0.36 #

  • Remove retry on Firebase Test Lab's call to gcloud set.
  • Remove quiet flag from Firebase Test Lab's gcloud set command.
  • Allow Firebase Test Lab command to continue past gcloud set network failures. This is a mitigation for the network service sometimes not responding, but it isn't actually necessary to have a network connection for this command.

v.0.0.35+1 #

  • Minor cleanup to the analyze test.

v.0.0.35 #

  • Firebase Test Lab command generates a configurable unique path suffix for results.

v.0.0.34 #

  • Firebase Test Lab command now only tries to configure the project once
  • Firebase Test Lab command now retries project configuration up to five times.

v.0.0.33+1 #

v.0.0.33 #

  • Version check command now fails on breaking changes to platform interfaces.
  • Updated version check test to be more flexible.

v.0.0.32+7 #

  • Ensure that Firebase Test Lab tests have a unique storage bucket for each test run.

v.0.0.32+6 #

  • Ensure that Firebase Test Lab tests have a unique storage bucket for each package.

v.0.0.32+5 #

  • Remove --fail-fast and --silent from lint podspec command.

v.0.0.32+4 #

  • Update publish-plugin to use flutter pub publish instead of just pub publish. Enforces a pub publish command that matches the Dart SDK in the user's Flutter install.

v.0.0.32+3 #

  • Update Firebase Testlab deprecated test device. (Pixel 3 API 28 -> Pixel 4 API 29).

v.0.0.32+2 #

  • Runs pub get before building macos to avoid failures.

v.0.0.32+1 #

  • Default macOS example builds to false. Previously they were running whenever CI was itself running on macOS.

v.0.0.32 #

  • analyze now asserts that the global analysis_options.yaml is the only one by default. Individual directories can be excluded from this check with the new --custom-analysis flag.

v.0.0.31+1 #

  • Add --skip and --no-analyze flags to podspec command.

v.0.0.31 #

  • Add support for macos on DriveExamplesCommand and BuildExamplesCommand.

v.0.0.30 #

  • Adopt pedantic analysis options, fix firebase_test_lab_test.

v.0.0.29 #

  • Add a command to run pod lib lint on podspec files.

v.0.0.28 #

  • Increase Firebase test lab timeouts to 5 minutes.

v.0.0.27 #

  • Run tests with --platform=chrome for web plugins.

v.0.0.26 #

  • Add a command for publishing plugins to pub.

v.0.0.25 #

  • Update DriveExamplesCommand to use ProcessRunner.
  • Make DriveExamplesCommand rely on ProcessRunner to determine if the test fails or not.
  • Add simple tests for DriveExamplesCommand.

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.37+1

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support 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 Jul 8, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.13

Analysis suggestions

Binary only

Cannot assign flutter SDK tag because it is binary only

Binary only

Cannot assign flutter platform tags, it is a binary only package

Maintenance issues and suggestions

Make sure dartdoc successfully runs on your package's source files. (-10 points)

exitCode: 255 stdout: Documenting flutter_plugin_tools... Initialized dartdoc with 37 libraries in 30.5 seconds Validating docs... no issues found Documented 0 public libraries in 6.5 seconds stderr: Unhandled exception: dartdoc could not find any libraries to document #0 Dartdoc.generateDocs (package:dartdoc/dartdoc.dart:218:9)

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 >=2.3.0 <3.0.0
args ^1.4.3 1.6.0
async ^2.0.7 2.4.2
colorize ^2.0.0 2.0.0
file ^5.0.10 5.2.1
git ^1.0.0 1.0.1
http 0.12.1 0.12.1
http_multi_server 2.2.0 2.2.0
meta ^1.1.7 1.2.1
path ^1.6.1 1.7.0
platform ^2.2.0 2.2.1
pub_semver ^1.4.2 1.4.4
pubspec_parse ^0.1.4 0.1.5
quiver ^2.0.2 2.1.3
test ^1.6.4 1.15.2
uuid ^2.0.4 2.2.0
yaml ^2.1.15 2.2.1
Transitive dependencies
_fe_analyzer_shared 5.0.0
analyzer 0.39.12
boolean_selector 2.0.0
charcode 1.1.3
checked_yaml 1.0.2
collection 1.14.13
convert 2.1.1
coverage 0.14.0
crypto 2.1.5
csslib 0.16.1
glob 1.2.0
html 0.14.0+3
http_parser 3.1.4
intl 0.16.1
io 0.3.4
js 0.6.2
json_annotation 3.0.1
logging 0.11.4
mime 0.9.6+3
node_interop 1.1.1
node_io 1.1.1
node_preamble 1.4.12
package_config 1.9.3
pool 1.4.0
shelf 0.7.7
shelf_packages_handler 2.0.0
shelf_static 0.2.8
shelf_web_socket 0.2.3
source_map_stack_trace 2.0.0
source_maps 0.10.9
source_span 1.7.0
stack_trace 1.9.5
stream_channel 2.0.0
string_scanner 1.0.5
term_glyph 1.1.0
test_api 0.2.17
test_core 0.3.10
typed_data 1.2.0
vm_service 4.1.0
watcher 0.9.7+15
web_socket_channel 1.1.0
webkit_inspection_protocol 0.7.3
Dev dependencies
matcher ^0.12.6 0.12.8
mockito ^4.1.1
pedantic 1.8.0 1.9.1