Contribute to GraalVM

GraalVM is an open source Oracle project community where people from all over the world contribute their work, help each other, and make GraalVM innovative. We are thankful for past contributions both big and small and always welcome new collaborators! Only a large community can make this project a strong language virtualization technology.

There are two common ways to collaborate:

How to Become a GraalVM Contributor?

Further below are some tips for contributing to GraalVM Community Edition and its projects, hosted in the Oracle organization on GitHub. We expect a contributor to abide by the Contributor Covenant Code of Conduct. Overall, there are three stages:

I. Create a Pull Request

If you believe your contribution is valuable for others, create a pull request (PR). The common process is forking a repository, submitting a change and creating a PR. When creating a PR, please make sure to include a clear description of the intention of the change, unless the change is self-explanatory e.g., a version update. Describe why (1) the change or feature is needed, (2) how it is implemented, and optionally (3) what further implications it may have. You can either use the PR request description field or the commit message. It is recommended to address one feature or change per PR request.

Once you have created a pull request, the Travis CI service will run some sanity checks on your change. Be sure to address any obvious issues caught by these checks (e.g., formatting violation) but keep in mind that test failures may not be directly related to your changes (no gate is perfect due to infrastructure issues and transient test failures).

II. Sign the Oracle Contributor Agreement

To allow your pull request to be accepted, you will need to sign the Oracle Contributor Agreement (OCA). Once your name or organization shows up in the OCA signatory list, we can add you to the database used to check that pull request authors are covered under the OCA. If there appears to be a delay in your entry showing up in the signatories list, please send an email to oracle-ca_us@oracle.com. If your entry is in the signatories list but the bot leaves a message on your pull request that you have not signed the OCA, leave a comment on the pull request stating that you are now covered by the OCA. The bot operates from a database separate from the OCA signatories list (since the latter does not necessarily include email details) and must be manually updated.

III. Review and Merge

An Oracle employee reviews the proposed change and once the pull request is in a mergeable state, takes responsibility for merging it to the master branch. To ensure extra diligence in terms of verifying externally contributed code meets these requirements, we have an inbound-check-bot.

What to Expect When Submitting a Pull Request?

There are many directions to explore from smaller changes like bug fixes or improvements to the API documentation to larger changes that can either speed up the execution, or give better control over the system.

We look forward to extend the GraalVM ecosystem by implementing new languages support with the Truffle framework, providing better tooling for polyglot programming, or proposing new embedding scenarios. The continuous efforts are directed to the machine learning for optimizing compiler configurations. Contributors are welcomed to join the development of a fully meta-circular Java runtime written in Java. We keep on investigating techniques for more efficient memory usage and pursue improving performance for different workloads.

To reach GraalVM developers for questions related to working with GraalVM sources, subscribe and post to graalvm-dev@oss.oracle.com.