Contributing to Apache TinkerPop

Thank you for your interest in contributing to Apache TinkerPop™! Contributions of code, tests, documentation, examples, and ideas are all welcome.

Contributions via GitHub pull requests are gladly accepted from their original author. By submitting any copyrighted material via pull request, email, or other means, you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.

Please see the “Developer Documentation” for more information on contributing to TinkerPop.

Ways to contribute

You can help TinkerPop in many ways, including: tinkerpop.apache

  • Reporting bugs and proposing improvements.
  • Contributing code changes and tests.
  • Writing and improving documentation and examples.
  • Helping users on mailing lists, issue trackers, and forums.
  • Sharing recipes, tutorials, and best practices.

If you are new to the project, unresolved issues marked as “trivial” in JIRA are a good place to start.

Getting started

. Fork the Apache TinkerPop repository on GitHub and clone your fork locally. . Set up a development environment following the Developer Documentation . For non‑trivial work, tie your changes to an existing JIRA issue or create a new one if needed.

Contribution process

The general workflow for code or documentation changes is: tinkerpop.apache

  1. Discuss (recommended)

    • For larger or potentially breaking changes, start a discussion on the TinkerPop dev mailing list and/or in JIRA.
  2. Implement

    • Make your changes in a feature branch in your fork.
    • Include tests for code changes whenever possible.
    • Update documentation, recipes, and upgrade notes when behavior or APIs change.
  3. Build and test

    • Run the relevant Maven builds and tests as described in the Developer Documentation (for example, mvn clean install).
    • For significant contributions, consider running the broader test and documentation build described in the development‑environment guide.
  4. Prepare your pull request

    • Reference the associated JIRA issue in your commit message/pull request description.
    • Keep pull requests focused and reasonably small where possible.
    • Update CHANGELOG.asciidoc and the upgrade documentation if your change affects user‑visible behavior or public API.
  5. Submit and respond to review

    • Open a GitHub pull request against the appropriate branch.
    • Automated builds and tests will run via GitHub Actions; please address any failures.
    • Committers and other contributors may request changes; you can add more commits to the same branch to update the pull request.
    • Please be patient; we will do our best to move your contribution forward.

Documentation contributions

TinkerPop documentation is maintained primarily as AsciiDoc under docs/src/** and published per release.

When changing documentation:

  • Edit the appropriate AsciiDoc files in docs/src/.
  • Use the existing structure (books and index files) and update index.asciidoc entries so new content is included.
  • For project documentation, submit changes via pull request, just like code.

The Developer Documentation includes detailed information on how to build and preview the documentation locally.

The TinkerPop website is also maintained in the repository under docs/site as HTML files. Contributions to that are also welcome via pull request.

Using AI and IDE assistants

If you use AI coding agents or IDE assistants when working on TinkerPop, please also consult AGENTS.md. That file summarizes:

  • Recommended build and test commands.
  • Coding and testing conventions.
  • “Do and don’t” guidance specific to automated tools.

Please consider ASF Generative Tooling Guidance when making contributions with these tools.

Community and communication

TinkerPop is an Apache Software Foundation project and follows ASF community guidelines.

For more detail on:

  • Mailing lists and project communication.
  • Roles and responsibilities (contributors, committers, PMC).
  • Release and voting processes.

please see the Developer Documentation’s contributing and governance sections:
https://tinkerpop.apache.org/docs/current/dev/developer/