kirill-stepanishin opened a new pull request, #3218: URL: https://github.com/apache/tinkerpop/pull/3218
## Summary This PR improves GLV examples reliability and adds user-friendly root-level examples that work out-of-the-box with published drivers. This is a follow-up to PR #3213 which fixed GLV examples reliability issues but required switching examples to local code so that fixes could be applied immediately. However, that approach meant new users had to build TinkerPop from source to run examples. This PR addresses that limitation by adding a separate set of root-level examples using published drivers. ## Issues Fixed **GLV Examples Reliability (from PR #3213):** - Go WriteBufferSize=0 causing E1201 buffer errors and nil pointer crashes - Node.js v22+ WebSocket API incompatibility (fix originally from PR #3204 by @xhuberty) - Python dependency conflicts preventing example builds - .NET outdated dependencies - Inconsistent documentation for running examples **User Experience (New):** - No easy way for new users to run examples without building TinkerPop from source - Examples scattered across different locations with varying setup requirements ## Changes Made **GLV Examples Fixes (from PR #3213):** - Fix WriteBufferSize=0 validation in Go gorillaTransporter - Add conditional WebSocket .on() method usage for Node.js compatibility (credit: @xhuberty's fix from PR #3204) - Resolve dependency conflicts in Python examples - Configure all module-level examples to consistently use local development code - Add comprehensive documentation with prerequisites and build steps **Root-Level Examples (New):** - Create `glv-examples/` directory with examples for all 5 GLVs using published drivers (3.7.4) - Add comprehensive README with server setup and usage instructions - Update main documentation to reference root-level examples for users - Update release process documentation to include version update requirements - Add developer documentation explaining dual example structure ## Approach - **Module-level examples** (`gremlin-*/examples/`): Use local development code for contributors and testing - **Root-level examples** (`glv-examples/`): Use published drivers for end users, manually updated during releases ## Known Limitations - **JavaScript root-level examples**: Only work with Node.js v20, fail with v22+ until next release incorporates WebSocket compatibility fixes (originally from PR #3204) - **Go root-level examples**: Connections example has nil pointer issue until next release incorporates buffer validation fixes - **Manual version updates**: Root-level example versions must be manually updated as part of the release process (automatic updates are out of scope) ## Credits JavaScript WebSocket compatibility fix originally contributed by @xhuberty in PR #3204. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
