Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • A new empty branch called "review" is created in the service's git repository in edgexfoundry-holding
    • This should be branched from the repo's initial commit
  • A PR is created with "main" as the source branch, and "review" as the target branch
    • The PR should not be created by anyone who will be reviewing the service, as PR creators may not be assigned as reviewer on GitHub
  • Ideally we create a PR template for reviews, but for now the PR should follow the general guidelines as described by the device services holding review process

...

  • The service should implement the functionality described in the Device Services Requirements document. Services written in Go or C should achieve this by using the official SDK.
  • The service should target either the current or development versions of EdgeX.
  • The service should not rely on new or variant APIs.
  • The service's name should should follow the usual form, ie edgex-{device-class}-{language} and not conflict with any other adopted service.
  • Values must not be hardcoded where they might reasonably be configurable.
  • If the devices may connect via a secure mode, credentials must be obtained via the Secrets API rather than the service configuration
  • A top-level README should be present and contain information on
    • The types of device supported
    • Host device requirements, especially if advanced features or operating modes are needed.
    • Run-time dependencies
    • Protocol feature support and roadmap
    • Known limitations
    • Information on asynchronous readings, if these are generated
    • Whether dynamic discovery is supported, and if so what limitations or special requirements apply
    • Build instructions, including build-time dependencies
    • Usage information (command-line options)
  • The following items must also be documented:
    • Supported configuration options (including whether or not the service must be restarted for changes to take effect)
    • Supported ProtocolProperties schemes.
    • Supported Device Attributes.
  • As part of the above, example Device Profiles and illustrative TOML for Device provisioning definition files should be included.
  • It must be possible to run the device service against simulated hardware. Documentation illustrating how to do so is also required. The review group should attempt to replicate the scenario described.
  • Real hardware against which the service has been tested should also be documented.
  • Container packaging must use full confinement (i.e. no use of docker --privileged or snap --devmode). Where access to hardware is required, care must be taken to make exceptions for the specific required hardware and/or system resources, and the means to allow these exceptions should be documented.
  • A default listening port will be assigned to the new service. Sample configurations supplied with the service should specify this port.
  • The service should comply with the general EdgeX requirements as given in the Contributor's Guide.

...

  • EdgeX documentation is updated to include the new service.
  • Any references to the -holding repository (eg in Makefiles, go.mod etc) need to be updated.
  • Required devops infrastructure is put into place.
  • Release artifacts for the first version should be generated and published.
  • Device WG wiki pages to be updated.

...