Skip to content

Latest commit

 

History

History
90 lines (64 loc) · 4.17 KB

CONTRIBUTING.md

File metadata and controls

90 lines (64 loc) · 4.17 KB

How to contribute

We welcome contributions! Please follow the instructions below for your Pull Requests (PRs).

How to submit your changes

  1. Fork the repository in GitHub
  2. Clone the project
  3. Create a new branch from the develop branch
  4. Commit your changes
  5. Push your work to your repository
  6. Create a Pull Request to the develop branch.

Please, ensure that your changes are merged with the latest changes in the develop branch, and the code follows the code conventions (see below).

Be aware we are a very small team. Thus, depending on the PR, it might take some time for us to review it since we check on many OCL/SPIR-V/PTX platforms and different drivers.

For the PR process as well as any issues and discussions we follow this CODE_OF_CONDUCT.

What happens after you open the PR?

We have a few GitHub actions, such as code formatter, documentation rendering and checks for the CLA (Contributor License Agreement). If you haven't signed the CLA yet, you will be redirected to the TornadoVM CLA webpage, where you can read and review it. If you agree with the terms, then you will sign it. After that, the TornadoVM team can process your PR to be able to merge it into the TornadoVM's codebase.

At least two researchers/engineers from the TornadoVM team will review your PR. Expect a few comments, questions and possible changes. This is a totally normal process, and it tries not to introduce untested code for specific devices, better documentation, etc. Thus, we work together to improve TornadoVM.

Coding Conventions

We use the auto-formatter for Eclipse and IntelliJ. Please, ensure that your code follows the formatter rules before the pull request. The auto-formatter is set automatically by running the following script:

Using Eclipse:

## For Eclipse, use the following script
$ python3 scripts/eclipseSetup.py

Using IntelliJ:

For IntelliJ, import the XML auto-formatter. Steps here. Additionally, be sure that IntelliJ uses a single class import:

  • Settings -> General -> Code Editing -> Formatting -> Imports optimization
  • Settings -> Code Style -> Java -> "Use single class import"
  • Settings -> Other Settings -> Save Actions -> Formatting Actions -> Optimize Imports
  • Settings -> Other Settings -> Save Actions -> Formatting Actions -> Reformat File

Note that the formatter config file is stored in the following path: <tornadovm>/scripts/templates/eclipse-settings/Tornado.xml.

Looking for tasks to contribute?

Help us to develop TornadoVM or TornadoVM use cases:

  • Look at Github issues tagged with good first issue .

  • Documentation: you can help to improve install documentation, testing platforms, and scripts to easy deploy TornadoVM.

  • TornadoVM use-cases: Develop use cases that use TornadoVM for acceleration: block-chain, graphical version of NBody, filters for photography, etc.

  • TornadoVM Development / Improvements: If you would like to contribute to the TornadoVM internals, here is a list of pending tasks/improvements:

    • Help us to solve bugs. Check out the list of public issues and feel free to work on any of those.
    • Implement a performance plot suite when running the benchmark runner. This should plot speedups against serial Java as well as stacked bars with breakdown analysis (e.g. time spent on compilation, execution, and data transfers).

For any other contribution(s), feel free to open a proposal by either sharing a Google Docs, or opening a proposal in our discussions page. Alternatively, you can send us your proposal via email to the following contacts:

Main contacts:

  • Christos Kotselidis <christos (dot) kotselidis (at) manchester (dot) ac (dot) uk >
  • Athanasios Stratikopoulos <athanasios (dot) stratikopoulos (at) manchester (dot) ac (dot) uk >
  • Juan Fumero <juan (dot) fumero (at) manchester (dot) ac (dot) uk >