This is an automated email from the ASF dual-hosted git repository.

bbovenzi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new fff9011bac9 Handle none logical date and show dependency check for the 
relevant state (#48067)
fff9011bac9 is described below

commit fff9011bac94c9883dc375e76aff58c1b8cf0e71
Author: Karthikeyan Singaravelan <[email protected]>
AuthorDate: Fri Mar 21 23:46:40 2025 +0530

    Handle none logical date and show dependency check for the relevant state 
(#48067)
    
    * Fix table header alignment and show blocking dependencies on relevant 
task state.
    
    * Skip task start date dependency check when task instance logical date is 
None.
---
 .../src/airflow/ti_deps/deps/exec_date_after_start_date_dep.py   | 9 +++++++--
 .../src/airflow/ui/src/pages/TaskInstance/BlockingDeps.tsx       | 4 ++--
 airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx   | 2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/airflow-core/src/airflow/ti_deps/deps/exec_date_after_start_date_dep.py 
b/airflow-core/src/airflow/ti_deps/deps/exec_date_after_start_date_dep.py
index 4832ea2806b..c96615247cc 100644
--- a/airflow-core/src/airflow/ti_deps/deps/exec_date_after_start_date_dep.py
+++ b/airflow-core/src/airflow/ti_deps/deps/exec_date_after_start_date_dep.py
@@ -29,7 +29,7 @@ class ExecDateAfterStartDateDep(BaseTIDep):
 
     @provide_session
     def _get_dep_statuses(self, ti, session, dep_context):
-        if ti.task.start_date and ti.logical_date < ti.task.start_date:
+        if ti.task.start_date and ti.logical_date and ti.logical_date < 
ti.task.start_date:
             yield self._failing_status(
                 reason=(
                     f"The logical date is {ti.logical_date.isoformat()} but 
this is before "
@@ -37,7 +37,12 @@ class ExecDateAfterStartDateDep(BaseTIDep):
                 )
             )
 
-        if ti.task.dag and ti.task.dag.start_date and ti.logical_date < 
ti.task.dag.start_date:
+        if (
+            ti.task.dag
+            and ti.task.dag.start_date
+            and ti.logical_date
+            and ti.logical_date < ti.task.dag.start_date
+        ):
             yield self._failing_status(
                 reason=(
                     f"The logical date is {ti.logical_date.isoformat()} but 
this is "
diff --git 
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/BlockingDeps.tsx 
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/BlockingDeps.tsx
index 5d95d40b00a..e14502b7475 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/BlockingDeps.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/BlockingDeps.tsx
@@ -41,8 +41,8 @@ export const BlockingDeps = ({ taskInstance }: { readonly 
taskInstance: TaskInst
       <Table.Root striped>
         <Table.Body>
           <Table.Row>
-            <Table.Header>Dependency</Table.Header>
-            <Table.Header>Reason</Table.Header>
+            <Table.ColumnHeader>Dependency</Table.ColumnHeader>
+            <Table.ColumnHeader>Reason</Table.ColumnHeader>
           </Table.Row>
           {data.dependencies.map((dep) => (
             <Table.Row key={dep.name}>
diff --git a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx 
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx
index 3afed1bb000..bf2a7b7ba21 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx
@@ -106,7 +106,7 @@ export const Details = () => {
       <ExtraLinks />
       {taskInstance === undefined ||
       // eslint-disable-next-line unicorn/no-null
-      [null, "queued", "scheduled"].includes(taskInstance.state) ? undefined : 
(
+      ![null, "queued", "scheduled"].includes(taskInstance.state) ? undefined 
: (
         <BlockingDeps taskInstance={taskInstance} />
       )}
       {taskInstance !== undefined && (taskInstance.trigger ?? 
taskInstance.triggerer_job) ? (

Reply via email to