For Contributors

GraalVM is an open source Oracle project 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:

  • By submitting GitHub issues for reproducible bugs and concrete feature requests.
  • By creating GitHub pull requests for code, tests, documentation, and other improvements.

Contributing to GraalVM Source

If you would like to contribute to the GraalVM source or one of its sub-projects hosted in the Oracle organization on GitHub, the typical process has three stages:

  1. Create a pull request. Fork the repository, prepare your change, and open a pull request with a clear explanation of what changed, why it changed, and how it was validated.
  2. Sign the Oracle Contributor Agreement (OCA). Contributions accepted into the project must be covered by the OCA.
  3. Go through review and merge. Maintainers review the proposed change, may request follow-up changes or clarification, and merge it once it is ready.

If there is a delay in showing you have signed OCA, or 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. Alternatively, send an email to oracle-ca_us@oracle.com.

Pull requests should clearly explain what changed, why it changed, and how it was validated. For a detailed description of contributor expectations, including testing, documentation, licensing, and review responsibilities, see CONTRIBUTING.md.

AI-Assisted Contributions

GraalVM accepts AI-assisted contributions. Use of AI assistance does not change the standard contribution process. The human contributor remains responsible for the entire submission, including any AI-assisted portion. Contributors are expected to review and understand what they submit, verify that it is correct and necessary, address reviewer questions themselves, and stand behind the change during review and maintenance.

The Oracle Contributor Agreement (OCA) and all normal contribution requirements apply to AI-assisted and non-AI-assisted contributions alike.

For the full policy on AI-assisted contributions, see CODING_ASSISTANTS.md. For the main contribution process, see CONTRIBUTING.md.

Development Environment

If you consider contributing to the GraalVM core, start by learning how to build a GraalVM distribution from source: Building GraalVM from Source.

If you consider contributing solely to the documentation, check this guide.

Learn how to set up a proper development environment, load the GraalVM project into the IDE, and see the main classes one could look at to have the basic understanding what the compiler is doing. This video demonstrates the above.

Reporting Bugs, Feature Requests, and Questions

  • Open a GitHub issue for reproducible bugs and concrete feature requests.
  • Use GitHub Discussions for questions related to working with the sources or extending the GraalVM ecosystem by creating new languages, tools, or embeddings.
  • Join the GraalVM Slack community for community support and discussion.
  • Do not report security vulnerabilities in public issue trackers. Follow the instructions in SECURITY.md.

Code of Conduct

GraalVM and its related projects are hosted in the Oracle organization on GitHub, and contributors are expected to abide by the Contributor Covenant Code of Conduct.

For additional guidance and the current contribution policy, see CONTRIBUTING.md and CODING_ASSISTANTS.md.

Connect with us