Skip to content

Latest commit

 

History

History
56 lines (32 loc) · 3.71 KB

CONTRIBUTING.md

File metadata and controls

56 lines (32 loc) · 3.71 KB

Contributing to the Eclipse Che4z LSP for HLASM project

Thanks for your interest in this project.

Eclipse Che4z

This project is a part of Eclipse Che4z which provides components/extensions for Eclipse Che to facilitate mainframe application development.

Eclipse Contributor Agreement

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

Setting up the Development Environment

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.

Start contributing

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.

Contribution acceptance

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.19 build with GNU GCC 13 compiler
  • Ubuntu 24.04 build with the Clang 18 compiler using the libstdc++ standard library and address sanitizer
  • MacOS 12 build with CLang 18 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

Contact the project developers on slack.