CLI tool for checking a Flutter plugin structure.
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 |
| 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 |
| 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 |
| 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 |
You should add flutter-rb-gradle-plugin to Android side of your plugin.
$ gem i flutter_rbThen run from a Flutter plugin's project folder:
$ frbBuild and install gem from sources:
$ gem build flutter_rb.gemspec
$ gem i flutter_rbThen run from a Flutter plugin's project folder:
$ frb inspect --path=./project_folderAdd 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_folderStarts 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 |
Puts using version of flutter-rb.
$ frb versionPuts author and our contacts.
$ frb authorSince version 1.2.2 you can generate config by following command in terminal:
$ frb configAdd .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
- PluginPodspecAuthorsCheckTool 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.
Just run:
$ rdocRead Commit Convention. Make sure your build is green before you contribute your pull request. Then:
$ bundle exec rakeIf you don't see any error messages, submit your pull request.
- @fartem as Artem Fomchenkov
