Skip to content

[v3-3-test] Detect template-field logic in operator __init__ in prek check (#70297) - #70316

Closed
github-actions[bot] wants to merge 1 commit into
v3-3-testfrom
backport-bb89adf-v3-3-test
Closed

[v3-3-test] Detect template-field logic in operator __init__ in prek check (#70297)#70316
github-actions[bot] wants to merge 1 commit into
v3-3-testfrom
backport-bb89adf-v3-3-test

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Template fields are rendered after the constructor runs, so any
validation or transformation applied to them in init acts on the
un-rendered Jinja expression — the bug class behind #69813, where
SSHRemoteJobOperator validated a templated remote_base_dir at
construction time and cleanup then failed for any custom base. The
validate-operators-init hook only recognised top-level assignment
statements, so validation calls, conditionals and transformations were
invisible to it, and sensors, subscripted AwsBaseOperator[...] bases and
aws_template_fields(...)-based classes were not covered at all.

Pre-existing violations (83 classes) are exempted via a path::Class
ratchet file so the rule is enforced on new code immediately; a fixing
PR must remove its entry (stale entries fail the hook). Burn-down is
tracked at #70296.
(cherry picked from commit bb89adf)

Co-authored-by: Shahar Epstein 60007259+shahar1@users.noreply.github.com

…check (#70297)
Template fields are rendered after the constructor runs, so any
validation or transformation applied to them in __init__ acts on the
un-rendered Jinja expression — the bug class behind #69813, where
SSHRemoteJobOperator validated a templated remote_base_dir at
construction time and cleanup then failed for any custom base. The
validate-operators-init hook only recognised top-level assignment
statements, so validation calls, conditionals and transformations were
invisible to it, and sensors, subscripted AwsBaseOperator[...] bases and
aws_template_fields(...)-based classes were not covered at all.
Pre-existing violations (83 classes) are exempted via a path::Class
ratchet file so the rule is enforced on new code immediately; a fixing
PR must remove its entry (stale entries fail the hook). Burn-down is
tracked at #70296.
(cherry picked from commit bb89adf)
Co-authored-by: Shahar Epstein <60007259+shahar1@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@shahar1