RehanAhmad25 commented on code in PR #69925:
URL: https://github.com/apache/airflow/pull/69925#discussion_r3652951142
##########
providers/standard/src/airflow/providers/standard/sensors/time.py:
##########
@@ -62,34 +62,38 @@ def __init__(
trigger_kwargs: dict[str, Any] | None = None,
**kwargs,
) -> None:
+ if start_from_trigger:
+ warnings.warn(
+ "start_from_trigger is deprecated for TimeSensor and is now
ignored. The target "
+ "moment is computed fresh from the current wall-clock time on
every Dag parse, so "
+ "baking it into the serialized trigger arguments made the
serialized Dag hash change "
+ "on every parse. Use deferrable=True instead, which computes
the target moment at "
+ "task execution time and does not have this problem.",
+ AirflowProviderDeprecationWarning,
+ stacklevel=2,
+ )
super().__init__(**kwargs)
- # Create a "date-aware" timestamp that will be used as the
"target_datetime". This is a requirement
- # of the DateTimeTrigger
+ self.target_time = target_time
+ self.deferrable = deferrable
+ self.start_from_trigger = False
Review Comment:
Correct, with the change to a deprecation warning instead of a hard error,
`start_from_trigger` will always be `False` now, it can no longer be set to
`True` (that path just warns and falls back to `False`). Keeping the attribute
itself for backward compatibility, since `TimeSensorAsync` in this same file
already uses the same pattern (deprecated flag kept as an inert attribute
rather than removed outright).
--
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]