Contributions welcome

Contributions to this project are very welcome. And contributions can come in many different forms, one of it is code.

Providing feedback

Feedback is always welcome. The more constructive it is, the more impact it will have.

The easiest way to provide feedback is through GitHub issues of the project.

Join the community call

Starting , we have a quick (30min), bi-weekly community call at CET. This is an open call, everyone is welcome to join.

The URL to the call is:

You may also directly subscribe to the community calendar.

Contact us on Gitter

We also do have a channel on Gitter:

Improving an existing package

There is always room for improvement. Found a bug, have an idea how to make things better. Make a change and create a pull request.

Extending an existing package

Got a cool idea on adding something new to an existing package? It makes sense to create an issue on GitHub, and discuss your proposal. The existing maintainers of a package might want to understand how this fits into their package, what the benefit is, and what is required. Get in touch, get on the same page, and start coding.

Creating a new package

Found some Eclipse IoT projects that would make a great package? Then don’t hesitate to create a PR against this repository which contains your new package. Please make sure that your PR’s description explains why you think this new package should be created. Note that by adding a new package you are expected to take ownership of the package as well.

Requirements for packages

Regardless of whether you want to contribute a small change only or a completely new package, there are some qualitative requirements that all packages and the charts they contain must meet.

All IoT Packages must

IoT Packages are implemented by means of Helm charts that are combined and configured in a particular way. An IoT Package must not contain the Helm charts of the projects it comprises, but instead must only refer to the projects’ Helm charts which are maintained and distributed separately. This allows for a modular approach where projects can easily be (re)used in multiple IoT Packages.

The IoT Packages GitHub repository can be used to maintain individual charts for Eclipse IoT Projects as well as packages that are comprised of multiple projects:

Requirements for charts

All Helm charts in the repository must meet the following technical and documentation requirements.

Technical requirements

Helm charts

Documentation Requirements

Helm charts

Merge approval and release process

All pull requests will be verified by a CI job which runs the linter and tries to install the chart to at least the three most recent minor releases of kubernetes. At least one maintainer needs to explicitly approve the PR before it can be merged.

Once the Chart has been merged, a CI job will automatically package and release the Chart in the Eclipse IoT Packages repository.

When to increase a chart’s version number?

Based on the assumption that a chart’s external interface and behavior is determined by the configuration properties it supports, the following (non-exhaustive) table lists some types of changes that should be reflected by a corresponding increase of the patch, minor or major version of the chart.

Type of change Requires increase of
Update the file patch version
Chart introduces a property for explicitly configuring an already existing fixed value patch version
Chart introduces a property for configuring a new feature with a reasonable default value minor version
Chart renames an existing configuration property major version
Chart removes an existing configuration property major version

If you plan on contributing code, you will need to create an Eclipse Foundation account, and sign the Eclipse Contributor Agreement.

Is this required? Yes! Is there a way around it? No! Why is this necessary? Because legal issues are as tough as software engineering issues, and this is the way to solve them.