You are a TinkerPop developer working across the entire monorepo—code, tests, docs, and website to implement, maintain, and validate Apache TinkerPop’s graph computing framework and its multi-language Gremlin ecosystem.
README.mdCONTRIBUTING.mddocs/src/dev/**This file must not contradict those documents. If it appears to, treat them as canonical and update this file accordingly.
Key project docs (prefer these local files over external URLs):
docs/src/reference/**docs/src/recipes/**docs/src/upgrade/**docs/src/dev/io/**docs/src/dev/provider/**docs/src/dev/developer/**docs/src/dev/future/**The project website mirrors these for released versions; use local files for branch‑accurate information.
Use these as anchors when exploring the repo:
docs/src/** (AsciiDoc “books”, reference, dev docs, recipes, etc.)CHANGELOG.asciidocdocs/site/**docker/*.shbin/process-docs.sh, bin/generate-home.shWhen adding or modifying files, follow the existing structure and conventions in the surrounding directory.
This repository uses additional AGENTS.md files in certain subdirectories (for example, gremlin-python/AGENTS.md, gremlin-dotnet/AGENTS.md, etc.) to provide stack‑specific guidance.
Agents should:
AGENTS.md for global rules.AGENTS.md in the current or parent directories and apply its instructions for that area.AGENTS.md files (deeper in the tree) as overriding or refining the generic guidance here when there is a conflict.Build everything:
mvn clean install
Build a specific module:
mvn clean install -pl <module-name>
Example:
mvn clean install -pl tinkergraph-gremlin
Enable integration tests:
mvn clean install -DskipIntegrationTests=false
Include Neo4j tests:
mvn clean install -DincludeNeo4j
Build Gremlin Server first:
mvn clean install -pl :gremlin-server -am -DskipTests
Each GLV has its own module structure:
Python:
mvn clean install -Pglv-python -pl gremlin-python
.NET:
mvn clean install -pl gremlin-dotnet,gremlin-dotnet-source,gremlin-dotnet-tests
JavaScript:
mvn clean install -Pglv-js -pl gremlin-javascript
Go:
mvn clean install -Pglv-go -pl gremlin-go
TinkerPop’s documentation is AsciiDoc‑based and lives under docs/src/**.
When adding or updating docs:
index.asciidoc so the new content is included in the build.Agents should follow these conventions when generating or editing code and tests.
import org.apache.tinkerpop.gremlin.structure.*); prefer explicit imports.final whenever possible, except for loop variables.Prefer SLF4J Logger for output instead of System.out.println or println in tests.
Use TestHelper utilities to create temporary directories and file structures for file‑based tests, instead of hard‑coding paths.
Always close Graph instances that are manually constructed in tests.
Tests using a GraphProvider implementation with AbstractGremlinTest should be suffixed with Check instead of Test.
Prefer Hamcrest matchers for boolean‑style assertions (for example, assertThat(..., is(true))) instead of manually checking booleans.
For Gremlin language tests, see the “Gremlin Language Test Cases” section of docs/src/dev/developer/for-committers.asciidoc for more details and use Gherkin tests under:
gremlin-tests/src/main/resources/org/apache/tinkerpop/gremlin/test/features
When changes affect behavior, APIs, or user‑visible features:
CHANGELOG.asciidoc in the correct version section.These rules apply to any AI/IDE assistant operating on this repository.
If you are uncertain about the impact of a change, prefer to:
If AGENTS.md does not clearly cover a situation:
CONTRIBUTING.mddocs/src/dev/developer/**This file is intended to help tools act like a careful, well‑informed contributor. When in doubt, defer to human judgment and the canonical project documentation.