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 free to 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