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]

Reply via email to