GENIVI is an Open Source project and follows Open Source "best practices." This means that it is easy to contribute to GENIVI in a number of ways. This public wiki page goes into some detail on the various methods in which your contribution can be best formatted for easy acceptance. Not following specific requirements may lead to proposals being rejected. Please refer to GENIVI's contribution guidelines for more.

Code Contribution

One can contribute a new project (see New Project Contributionbelow) or to an existing GENIVI project. There are a number of active projects available in GitHub. Contributing code to one of these projects is as easy as cloning the repo and

sending a pull request through GitHub (preferred process)

if you cannot access GitHub, sending a patch to the mailing list which is a similar, if not identical, process found in other open projects.

Note that you'll have to abide by the license that the code is released under, but most of the time that is the Mozilla Public License 2.0 which is a Free Software license, so it is easy to work with. Take the time to understand the license and that will make your contribution process easier.

Its important that you ensure you have permission to submit code to the GENIVI project. If your company is a GENIVI member and has signed the CLA, check with your company for okay first. Non-members can submit code by following the Open Source process.

The goal with this checklist is make patches easier to contribute by providing a minimum of what is expected. Different project maintainers deal with patches differently so contact the project's mailing list for their patch acceptance policy.

Patches sent through GENIVI mailing lists

The preferred submission process is through GitHub PR but it is also possible to submit patches through the appropriate mailing list. GENIVI projects use the following best practices for submitting patches through mailing lists:

Start the subject line with the tag: [PATCH]. Multiple patches part of the same group are usually numbered, e.g. 2/10 (meaning second patch out of 10), and if needed patches are versioned. Here is an example from LKML

Please provide some form of explanation for what the patch does and why it is needed. The mailing list is often a good place to discuss patches

Use at least diff -u to create your patch, different lists may prefer different formats so it's good to check beforehand

Adding the patch in the email for inlined discussion is a prerogative of the maintainer

See also: Git Email Setup for tips on setting up email for working with patches in a corporate environment. You can also view the Linux kernel patch process which GENIVI has tried to follow when designing its policy.

New Project Contribution

You can contribute a project to be hosted under GENIVI's umbrella, if your project meets the criteria specified here. The process is straight-forward and is outlined here;

Individuals are assigned to maintain the given infrastructure used to support components, i.e. the git repo, the documents, the issues on a per project basis

SPDX license tags

GENIVI and many companies require the use of SPDX license tags to identify individual files which are part of a larger component. This is done to ensure compliance with all FOSS licenses as well as to provide help in determining provenance. Please use a tag exactly like this in your source code, please note whitespace;

Documentation

Good documentation is key to the success of any project and GENIVI is no exception. GENIVI strives to have good documentation and it can often be found in the GENIVI project pages. If you find issues or have improvements to the documentation, send a change to the relevant mailing list, I'm certain it will be welcomed. This wiki too holds a lot of documentation both in the form of tutorials and in the form of requirements. Looking into this wiki and using it as a resource in combination with the code repositories makes and effective set of tools to move a project forward and creates valuable artifacts which remain open.Anyone can edit this wiki, all you have to do is register.

Email mailing lists

GENIVI has a number of public mailing lists. The discussion there is about technical aspects of GENIVI's projects. Since the discussions can get long and hard to follow, its preferred that email be sent as plain text. In addition, threads are easier to follow on high-traffic lists when there is a subject tag. For example, if you're writing about the GENIVI Demo Platform its preferred that you use a [GDP] tag in the subject line. Certain threads also become very long and with signatures and previous replies they can get stopped in the mail server due to their size. For this reason its preferred you inline your comments, trim your posts, and refrain from signatures on the public mailing lists.