Code contribution

From AGILE IoT Wiki
Revision as of 14:48, 26 November 2018 by Cskiraly (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

AGILE code is licensed under the Eclipse Public License 2.0. In order to keep the code clean, code contribution should also follow Eclipse procedures. We differentiate several types of contributions and procedures slightly differ between them, so please make sure to follow the appropriate one. We are also happy to discuss feature request or other proposals on

Fixes for existing repositories

For your code to be considered, you should use the GitHub pull request (PR) mechanism of the specific repository. Please create a GitHub user, fork our repository, develop your change on a dedicated (topic) branch, and prepare an upstream PR against our repository (preferably the master branch).

For you code to be accepted, you should also be either an Eclipse Committer or Contributor. This latter is a simple procedure, which we need in order to guarantee that your code is compliant with the terms of the License.

New device implementation

Please create a GitHub PR against the agile-core repository. Your PR should not contain anything else than the implementation of the device class. For your device can be included, we need to code under EPL2.0, and therefore you should either be an Eclipse Committer or Contributor.

New protocol implementations

Protocol implementations are added to the system at docker compose level. We can include your protocol implementation in the codebase if it is correctly licensed under the Eclipse Public License 2.0. For closed source and non EPL licensed protocol implementations, we are happy to host pointers in our Wiki, but we cannot directly link them to the code.

In both cases, please provide a "feature request issue in the agile-issues repository, containing:

  1. Link to a repository with your code,
  2. The docker-compose fragment required to add your code the the system,
  3. A walk-through like example of how your protocol can be used in the system.