Added tinkerpop-dev skills based on Agent Skills standard#3380
Added tinkerpop-dev skills based on Agent Skills standard#3380spmallette wants to merge 1 commit intomasterfrom
Conversation
Included a agent-setup.sh script that will help build shims as needed to common agents, for those that won't look in .skills by default.
| echo "Core prerequisites:" | ||
| if command -v java &>/dev/null; then | ||
| java_version=$(java -version 2>&1 | head -1 | sed 's/.*"\(.*\)".*/\1/' | cut -d. -f1) | ||
| if [[ "$java_version" -ge 11 ]]; then |
There was a problem hiding this comment.
Nit: We might want to fail with java versions above 17 as well for the time being.
| # --- Python --- | ||
| if command -v python3 &>/dev/null; then | ||
| py_version=$(python3 --version 2>&1 | grep -oE '[0-9]+\.[0-9]+') | ||
| ok "Python $py_version (3.9+ recommended for gremlin-python local dev)" |
There was a problem hiding this comment.
Nit: We are now on python 3.10
| # --- Node.js --- | ||
| if command -v node &>/dev/null; then | ||
| node_version=$(node --version 2>/dev/null | sed 's/v//') | ||
| ok "Node.js $node_version (20+ recommended for gremlin-js local dev)" |
There was a problem hiding this comment.
Nit: We require node 22+
| # --- Go --- | ||
| if command -v go &>/dev/null; then | ||
| go_version=$(go version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+(\.[0-9]+)?') | ||
| ok "Go $go_version (1.22+ recommended for gremlin-go local dev)" |
There was a problem hiding this comment.
Nit: we're up to go 1.25 now
| - **Python 3.9+** — optional for local development; Docker handles test execution. | ||
| - **Node.js 20+ / npm 10+** — optional; Maven downloads a local copy via `frontend-maven-plugin`. | ||
| Consider [nvm](https://github.com/nvm-sh/nvm) for version management. | ||
| - **.NET SDK 8.0+** — optional; Docker handles test execution. | ||
| - **Go 1.22+** — optional; Docker handles test execution. |
There was a problem hiding this comment.
| - **Python 3.9+** — optional for local development; Docker handles test execution. | |
| - **Node.js 20+ / npm 10+** — optional; Maven downloads a local copy via `frontend-maven-plugin`. | |
| Consider [nvm](https://github.com/nvm-sh/nvm) for version management. | |
| - **.NET SDK 8.0+** — optional; Docker handles test execution. | |
| - **Go 1.22+** — optional; Docker handles test execution. | |
| - **Python 3.10+** — optional for local development; Docker handles test execution. | |
| - **Node.js 22+ / npm 10+** — optional; Maven downloads a local copy via `frontend-maven-plugin`. | |
| Consider [nvm](https://github.com/nvm-sh/nvm) for version management. | |
| - **.NET SDK 8.0+** — optional; Docker handles test execution. | |
| - **Go 1.25+** — optional; Docker handles test execution. |
| mvn clean install -pl tinkergraph-gremlin | ||
| mvn clean install -pl gremlin-core | ||
| mvn clean install -pl gremlin-server |
There was a problem hiding this comment.
| mvn clean install -pl tinkergraph-gremlin | |
| mvn clean install -pl gremlin-core | |
| mvn clean install -pl gremlin-server | |
| mvn clean install -pl :tinkergraph-gremlin | |
| mvn clean install -pl :gremlin-core | |
| mvn clean install -pl :gremlin-server |
|
|
||
| Build a module and its dependencies: | ||
| ```bash | ||
| mvn clean install -pl gremlin-server -am |
There was a problem hiding this comment.
| mvn clean install -pl gremlin-server -am | |
| mvn clean install -pl :gremlin-server -am |
|
|
||
| Run gremlin-server integration tests: | ||
| ```bash | ||
| mvn clean install -pl gremlin-server -DskipIntegrationTests=false |
There was a problem hiding this comment.
| mvn clean install -pl gremlin-server -DskipIntegrationTests=false | |
| mvn clean install -pl :gremlin-server -DskipIntegrationTests=false |
|
|
||
| Specify a test seed for reproducible `Random` behavior: | ||
| ```bash | ||
| mvn clean install -DtestSeed |
There was a problem hiding this comment.
| mvn clean install -DtestSeed | |
| mvn clean install -DtestSeed=<seed-value> |
|
|
||
| Build Docker images of Gremlin Server and Console: | ||
| ```bash | ||
| mvn clean install -pl gremlin-server,gremlin-console -DdockerImages |
There was a problem hiding this comment.
| mvn clean install -pl gremlin-server,gremlin-console -DdockerImages | |
| mvn clean install -pl :gremlin-server,:gremlin-console -DdockerImages |
| - Python: `mvn clean install -Pglv-python -pl gremlin-python` | ||
| - .NET: `mvn clean install -pl gremlin-dotnet,gremlin-dotnet-source,gremlin-dotnet-tests` | ||
| - Go: `mvn clean install -Pglv-go -pl gremlin-go` |
There was a problem hiding this comment.
| - Python: `mvn clean install -Pglv-python -pl gremlin-python` | |
| - .NET: `mvn clean install -pl gremlin-dotnet,gremlin-dotnet-source,gremlin-dotnet-tests` | |
| - Go: `mvn clean install -Pglv-go -pl gremlin-go` | |
| - Python: `mvn clean install -Pglv-python -pl :gremlin-python` | |
| - .NET: `mvn clean install -Pgremlin-dotnet -pl :gremlin-dotnet,:gremlin-dotnet-source,:gremlin-dotnet-tests` | |
| - Go: `mvn clean install -Pglv-go -pl :gremlin-go` |
|
|
||
| Documentation generation requires: | ||
| - Java 11 (specifically for doc generation) | ||
| - Hadoop 3.3.x in pseudo-distributed mode |
There was a problem hiding this comment.
This should probably be hadoop 3.4.x, although there are currently additional dependency conflicts with spark and hadoop as I understand it in master, so this will likely need further refinement soon.
|
|
||
| Use Java 11 for JavaDoc generation. | ||
|
|
||
| ## Publishing |
There was a problem hiding this comment.
I'm not sure it's advisable to instruct agents how to publish the docs and site. I think this at least warrants additional warnings instructing never to publish unless specifically requested.
Also, these publishing scripts likely won't work with agents regardless in their current form as they require the user to enter a password.
| configure and start all required dependencies, such as Hadoop. | ||
|
|
||
| By default, this script will run every module in the project. However, if you are planning on working on just a | ||
| By default, this script will run every module in the project. However, if you are planning on working on just |
There was a problem hiding this comment.
| By default, this script will run every module in the project. However, if you are planning on working on just | |
| By default, this script will run every module in the project. However, if you are planning on working on just a |
| echo " claude .claude/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR" | ||
| echo " copilot .github/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR" | ||
| echo " .agents/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR" | ||
| echo " cursor .cursor/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR" | ||
| echo " codex .codex/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR" | ||
| echo " junie .junie/skills/$SKILL_NAME/ -> symlink to $SKILL_DIR" | ||
| echo " kiro .kiro/skills/$SKILL_NAME/ -> copy of $SKILL_DIR (re-run to sync)" |
There was a problem hiding this comment.
Should we go ahead and proactively exclude these paths from the source-release?
|
Overall I think the migration from |
Skill written following https://agentskills.io/ - included
agent-setup.shscript that will help build shims as needed to common agents, for those that won't look in .skills by default (most won't it seems). I was able to test this with claude, kiro and junie and they all work nicely.VOTE +1