flutter_rb
About
CLI tool for checking a Flutter plugin structure.
Checks
Levels
Each issue has a level
parameter that describes its significant importance.
Level | Description |
---|---|
NORMAL |
Issue not found |
WARNING |
Issue is not serious and can't break a build |
ERROR |
Issue is critical and can break a build |
Flutter
Check | Description | Level |
---|---|---|
PluginDirectoriesCheck |
Check plugin directories structure in pubspec file. Example: if a Flutter plugin has only Android specific code but not contains iOS folder with description, then iOS build fails | ERROR |
PluginPubspecNameCheck |
Check plugin name in pubspec file. Exists or not | ERROR |
PluginPubspecDescriptionCheck |
Check plugin description in pubspec file. Exists or not | WARNING |
PluginPubspecVersionCheck |
Check plugin version in pubspec. Exists or not | ERROR |
PluginPubspecAuthorCheck |
Check plugin author in pubspec. Exists or not. author section deprecated in pubspec.yaml
|
WARNING |
PluginPubspecHomepageCheck |
Check plugin homepage in pubspec. Exists or not | ERROR |
PluginPubspecLintsCheck |
Check Flutter plugin lints dependency in pubspec file. Exists or not |
ERROR |
PluginPubspecFlutterLintsCheck |
Check Flutter plugin flutter_lints dependency in pubspec file. Exists or not |
ERROR |
Android
Check | Description | Level |
---|---|---|
PluginGradleAndroidPackageCheck |
Validate that \android\ package not exists in Gradle project config (build.gradle file) | ERROR |
PluginGradleVersionCheck |
Check plugin version in Gradle project config (build.gradle file). Version must be the same as plugin version in pubspec file | WARNING |
iOS
Check | Description | Level |
---|---|---|
PluginPodspecNameCheck |
Check plugin name in podspec file. Exists or not | WARNING |
PluginPodspecVersionCheck |
Check plugin version in podspec file. Exists or not | WARNING |
PluginPodspecAuthorsCheck |
Check plugin's authors in podspec file. Exists or not | ERROR |
PluginPodspecSourceCheck |
Check plugin iOS source path in podspec file. If Flutter plugin cannot contains iOS specific code, source path must be '.'
|
ERROR |
How to use
Android
You should add flutter-rb-gradle-plugin to Android side of your plugin.
Download gem from RubyGems
$ gem i flutter_rb
Then run from a Flutter plugin's project folder:
$ frb
As local installed gem
Build and install gem from sources:
$ gem build flutter_rb.gemspec
$ gem i flutter_rb
Then run from a Flutter plugin's project folder:
$ frb inspect --path=./project_folder
As local executable
Add project_folder/bin
(where project_folder
is path to project on your machine) to PATH
variable in your
environment. Then updated environment and run from a Flutter plugin's project folder:
$ local_frb inspect --path=./project_folder
Commands
Inspect
Starts the flutter-rb.
$ frb inspect --path=./project_folder --report
Argument | Description |
---|---|
--path |
Path to Dart/Flutter project. flutter-rb will be use current directory if this parameter are empty |
--report |
Generate report in Checkstyle format |
Version
Puts using version of flutter-rb.
$ frb version
Author
Puts author and our contacts.
$ frb author
Configuration
CLI
Since version 1.2.2
you can generate config by following command in terminal:
$ frb config
Manually
Add .flutter_rb.yaml
to root of a project for select checks that you are want to exclude:
exclude:
flutter:
- PluginDirectoriesCheck
- PluginPubspecNameCheck
- PluginPubspecDescriptionCheck
android:
- PluginGradleAndroidPackageCheck
ios:
- PluginPodspecNameCheck
- PluginPodspecVersionCheck
- PluginPodspecAuthorsCheck
Output report
Tool can make report in Checkstyle format. To enable this feature, pass --checkstyle-report
as an CLI argument. The
report file name is frb-checkstyle-report.xml
.
How to contribute
Documentation
Just run:
$ rdoc
Contribution
Read Commit Convention. Make sure your build is green before you contribute your pull request. Then:
$ bundle exec rake
If you don't see any error messages, submit your pull request.
Contributors
- @fartem as Artem Fomchenkov