This note outlines the process by which a contributed device service may be adopted into EdgeX. Consideration will generally be given to services which provide access to classes of devices previously unavailable in EdgeX, or which have substantial advantages over an existing implementation.

In the first instance, the contributor should contact the working group chair to arrange a date on which consideration of the new service may be added to the WG agenda. At the arranged meeting, the contributor should give a short presentation on the new service and take questions. The working group will likely be interested in:

A brief demonstration of the device service in operation may be helpful.

If the WG approves, a repository in the edgexfoundry-holding project will be created, for the new service to be imported into. The WG will also seek volunteers to form a review group, who will consider the service for suitability once it is imported. The creation of a review group and its membership should be recorded in the WG meeting notes.

Other than general code quality, the review should consider:

In some cases a review may take place in a number of cycles, eg if the reviewers feel that one or more fundamental issues need to be addressed before detailed consideration is worthwhile. Where the reviewers feel that changes are necessary, issues should be created within GitHub for discussion and resolution. During the review process, other contributors may raise issues of their own; it is not compulsory that these are resolved but the review team should consider them before giving overall approval.

Upon successful completion of the review, the WG will be invited to approve the service. On approval, a notice is to be sent to the TSC and one week later the TSC will consider the new service and hold a vote via email as to whether it should be adopted into EdgeX.

If the TSC agrees, the following actions need be taken: