smart_object

github workflow codecov style: lint License: Apache2.0 pub package

Inspired from IPSO (now part of OMA SpecWorks), Smart Objects are are meant to encapsulate capabilities of intelligent products in the field of IoT, but not only.

uncached image

Contribution guidelines

Definition of Done

Features

All user facing features from the public domain must be described in a BDD style *.feature file

UML specification

Components, Activities, States need to be described using PlantUML standard and placed in a *.puml file in uml directory. Generate class diagram of the complete package:

. gen_uml.sh

Code generation

Generate code from *.proto files

Static code analysis

Work by default when writing code due to analysis_options.yaml For explicit analysis eg. during a build process, use:

dart analyze

Documentation

. gen_doc.sh --show

Test results

All tests must pass, including the new ones for the PR and existing ones

Test coverage

Maintain or improve coverage when submitting PRs

. gen_cov.sh --show

Commit

A commit that bump the version of the library can be done with pubver Install pubspec_version with pub global activate pubspec_version then commit

git commit -m "... Release $(pubver bump breaking|minor|patch|build)"

Libraries

smart_object
SmartObject Registry from Open Mobile Alliance is defined in defs.json Custom Smart Object definitions need to be loaded in defs-custom.json