Repository navigation
feat: support saved group references v2 - #143
Conversation
|
|
@greptile review |
|
overall looks good just one thing that the robots flagged that we might want to change Errors inside a saved group fail open under groups = {"bad": {"type": "condition", "condition": {"$or": 5}}}
evalCondition({}, {"$not": {"$savedGroup": {"id": "bad"}}}, groups) # TrueCould we handle these the same way as RecursionError, at the top level, so the whole condition fails? A test for this case would be good too. Smaller things, not blocking:
|
|
Moved evaluation errors to the outer boundary so Kept Removed the benchmark report from the repo. The draft PR description includes results and the ~3.5 µs numeric-array overhead. |
|
@greptile review |
|
@greptile review |
Features and Changes
Support v2 list/condition saved groups in both Python clients, with cycle detection and fail-closed legacy operators. Sync the v0.9.0 conformance corpus and expand the contributing guide.
Implementation prompt
Testing
$not, and boolean/number membership.e6e7773→75c1c1a): existing evaluation workloads within ±4%, async throughput within 3%; v2 condition references added 0.17–0.26 µs versus inline. Final review fixes (f6e6101→e964b5d): standard workloads changed −3.5% to +5.6%; an additional 1,000-entry numeric-list case matching[1, "absent"]added ~3.5–3.6 µs (52–55%) to distinguish booleans from numbers. Reusable benchmarks remain intests/scripts/.After merging
CHANGELOG.md,growthbook/__init__.py,setup.cfg, and.release-please-manifest.json.publish-pypijob to test, build, and upload the wheel and source distribution. No manual tag or upload is needed. Confirm the job succeeds and the package is available (substitute the actual version if the release PR changes):python -m pip download --no-deps --index-url https://pypi.org/simple 'growthbook==3.2.0' --dest /tmp/growthbook-release-checkgrowthbook/growthbook. Add the published version at the top ofpackages/shared/src/sdk-versioning/sdk-versions/python.json:{ "version": "3.2.0", "capabilities": ["savedGroupReferencesV2"] }"prerelease": trueand remove it after publication. Runpnpm --filter shared generate-sdk-reportand include the generatedpackages/shared/src/sdk-versioning/CAPABILITIES.md. Merge and deploy that PR; handle this registry update explicitly rather than relying on the SDK'sUpdate SDK Versiondispatch workflow.savedGroupFormat: "referencesV2"). Existing connections retain their previous saved-group format. Verify a condition-group rule evaluates correctly with the new payload.