Thanks for your interest in this project.
This project is a part of Eclipse Che4z which provides components/extensions for Eclipse Che to facilitate mainframe application development.
Before your contribution can be accepted by the project team, you must electronically sign the Eclipse Contributor Agreement (ECA).
Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file.
Make sure that the user email you specified on your local git is the same as on the GitHub account.
For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit
The signoff is easily achieved using the --signoff
option of the git commit
command (provided that the git credentials are properly configured):
git commit --signoff
The project uses CMake targeting all major platforms (Windows, Linux, MacOS). The full build instructions including project prerequisites can be found in the project wiki.
Before contributing to the project, fork the repository and clone it, or add it as a new remote if you have already cloned the original repository. All the commits should be pushed to the fork in order to open pull requests from it.
We encourage every potential contributor to read the project documentation available on the project wiki. It describes the architecture of the project, decomposes it into software components and explains their relationships.
All the activity on the project should begin with defining a new issue that describes the required changes.
We follow the Conventional commits specification. Each pull request has to be named according to the specification so it can be squash merged. Allowed commit types are: feat
, fix
, docs
, style
, refactor
, perf
, test
, ci
, chore
.
Each pull request is automatically verified in the following environments (in a GitHub Actions pipeline):
- Windows build with the MSVC compiler
- Alpine Linux 3.16 build with GNU GCC 11 compiler
- Ubuntu 22.04 build with the Clang 14 compiler using the libstdc++ standard library and address sanitizer
- MacOS 12 build with CLang 14 using the libc++ standard library
Further, all C++ sources must be formatted with clang-format. The required configuration is available in the .clang-format file in the root of the repository.
The project is also scanned on SonarCloud. However, because of the current architecture of GitHub Actions and Sonarcloud (see e.g. this issue), the scan cannot be run from forked repositories automatically. Until a fix is found, it will be scanned manually by a member of the project team.
Contact the project developers on slack.