We are waiting for your contributions. First read the following few lines, then fork our repository on GitHub and get started.
You are more than welcomed to report bugs or suggest enhancements on our GitHub repository. Before creating a new issue, please check if the problem or feature was not reported already by someone else.
When reporting bugs, please follow the guidelines proposed by Eclipse:
If you want to suggest a new feature or enhancement, please provide as many details as possible:
Eclipse MOSAIC is an Eclipse Project and therefore requires all committers to follow the Eclipse Development process. Each contributor is obligated to execute the following steps in order to us to be able to accept her or his contributions:
My Account/Contributor License Aggreement
tab in your profile.)Please first discuss the change you wish to make via issue or email with us as the owners of this repository. To share contributions with us, create a GitHub pull request following the steps below. All your commits have to be authored using the email address used for your Eclipse account. More details can be found here.
git commit -m "This is a message"
Make your changes by following those steps:
mvn clean install
must succeed).-s
flag is used when committing (see above).FIXME
/TODO
in your code.We understand that each developer has different preferences in regard to code formatting, especially when it comes to indentation and braces. However, the look of our codebase needs to be consistent and therefore the following conventions must be followed.
Eclipse MOSAIC follows the Google Java Style Guide. Please stick to those conventions to get your contribution accepted.
for (int i=0; i<10; i++) {
Target target = ((Target) object);
a == 1 && b == 3
org.eclipse.mosaic
The Code style can be checked using a Checkstyle plugin in your IDE. A checkstyle.xml
file can be found in the root of the repository.
Element | Casing | Example |
---|---|---|
Class | UpperCamelCase | AppDomain |
Interface | UpperCamelCase | IBusinessService |
Enumeration type | UpperCamelCase | ErrorLevel |
Enumeration values | UPPER_CASE | FATAL |
Field | lowerCamelCase | mainPanel |
Final field | lowerCamelCase | maximumItems |
Read-only static field | UPPER_CASE | RED_VALUE |
Variable | lowerCamelCase | listOfValues |
Method | lowerCamelCase | toString |
Package | lowercase | org.eclipse |
Parameter | lowerCamelCase | typeName |
Type Parameter | UPPER_CASE | T |
Map
, Vehicle
). Interfaces should not start with an I
prefix (e.g. IVehicle
).V2xMessage
, DenmContent
getIpAddress
.is
or has
.//
in code for inline comments. Describe why, not what’s happening./** ... */
) and its annotations (@param
, @return
) for all public classes, constructors,
and methods. Simple self-explaining methods, like Getters and Setters do not require a method comment.Each Java file must include the following license header at the top of each file:
/*
* Copyright (c) 2024 Fraunhofer FOKUS and others. All rights reserved.
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Contact: mosaic@fokus.fraunhofer.de
*/
If this is your first contribution, please also add your Copyright information to NOTICE.md.