refactor: remove support for Greenplum - #1722
Conversation
Greenplum is no longer used by any customer and is being removed from the backend (F1-2435), so the SDK no longer needs to model it. Drops the hand-written `CatalogDataSourceGreenplum` and `GreenplumAttributes` classes, their exports from `gooddata_sdk`, and the Greenplum example from the data-source docs. The Greenplum test went with them: it was already inert, sitting inside a `"""` block and referencing a `greenplum.yaml` cassette that does not exist in the repo. The generated client was updated the supported way rather than by hand. The `GREENPLUM` enum entry was removed from the two source schemas it originates from -- gooddata-metadata-client.json and gooddata-scan-client.json -- and `gooddata-api-client/` was then regenerated with openapi-generator against the merged schema. The regeneration produced exactly six deletions and no other drift, which also confirms the checked-in client was in sync with the schemas. The merged schemas/gooddata-api-client.json was edited line-wise instead of being rebuilt through the Makefile's `jq -S -s` step. jq 1.6 does not preserve number literals and rewrote unrelated values (2.6E+9 -> 2600000000, 1.0 -> 1) across the file; the checked-in copy was produced with jq 1.7+, which does. This is a breaking change for anyone importing either class by name, including code that never connects to Greenplum, since the failure is at import time. JIRA: F1-2435 risk: low Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughThe change removes ChangesGreenplum support removal
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1722 +/- ##
==========================================
- Coverage 78.59% 78.58% -0.01%
==========================================
Files 271 271
Lines 18772 18765 -7
==========================================
- Hits 14754 14747 -7
Misses 4018 4018 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Superseded by #1723, which runs the same commit from a branch in this repository instead of my fork. The |
Summary
Greenplum is no longer used by any customer and is being removed from the backend (F1-2435, gdc-nas #25474), so the SDK no longer needs to model it.
Hand-written SDK
CatalogDataSourceGreenplumandGreenplumAttributesand their exports fromgooddata_sdk."""block, and thegreenplum.yamlcassette it referenced does not exist in the repo.Generated client — updated the supported way, not by hand:
GREENPLUMenum entry from the two source schemas it originates from,gooddata-metadata-client.jsonandgooddata-scan-client.json.gooddata-api-client/with openapi-generator against the merged schema.The regeneration produced exactly six deletions and no other drift, which incidentally confirms the checked-in client was in sync with its schemas.
A note on
jqschemas/gooddata-api-client.jsonwas edited line-wise rather than rebuilt through the Makefile'scat | jq -S -smerge step.jq 1.6 does not preserve number literals and rewrote unrelated values across the file —
2.6E+9→2600000000,1.0→1,100.0→100. The checked-in copy was clearly produced with jq 1.7+, which does preserve them. The line-wise edit yields exactly what the merge would produce on jq 1.7, without the collateral churn.Worth knowing for anyone regenerating: run
make api-clientwith jq 1.7+, or you will commit spurious numeric diffs.Test Plan
greenplum(case-insensitive) returns zero hits; nothing else in the repo imported either removed class.Not run: the test suite. The local toolchain could not run it —
uv0.10.7 against the repo's~=0.11.0pin, and the repo venv is missinggooddata_code_convertors. I confirmed that failure reproduces on a clean tree, so it predates this change, but it does mean CI is the first real execution of these tests.Risk
Low in effect, but note this is a breaking change for a published package: anyone with
from gooddata_sdk import CatalogDataSourceGreenplum(orGreenplumAttributes) gets anImportErroron upgrade — at import time, even in code that never connects to Greenplum.Since nobody is using the datasource type, no working code should construct these. But if this repo prefers a deprecation cycle for public symbols, the alternative is to keep both names as deprecated shims now and remove them in the next major. Happy to switch to that if reviewers prefer.
test_allowed_data_source_typeiterates the generatedJsonApiDataSourceInAttributes.allowed_valuesand constructs the genericCatalogDataSource, so it is unaffected by the subclass removal and simply stops seeingGREENPLUM.Ordering
This can land independently of the backend PR. Until gdc-nas ships, the deployed backend still accepts
GREENPLUM; afterwards it will not. Nothing here depends on deploy order.🤖 Generated with Claude Code
Summary by CodeRabbit