Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-07 Thread via GitHub


github-actions[bot] commented on PR #59142:
URL: https://github.com/apache/airflow/pull/59142#issuecomment-3622334665

   ### Backport failed to create: v3-1-test. View the failure log  Run details 

   
   
   
   Status
   Branch
   Result
   
   
   ❌
   v3-1-test
   https://github.com/apache/airflow/commit/f0d0b2fb993aadb8b56266f37324e275703a88a6";>
   
   
   
   You can attempt to backport this manually by running:
   
   ```bash
   cherry_picker f0d0b2f v3-1-test
   ```
   
   This should apply the commit to the v3-1-test branch and leave the commit in 
conflict state marking
   the files that need manual conflict resolution.
   
   After you have resolved the conflicts, you can continue the backport process 
by running:
   
   ```bash
   cherry_picker --continue
   ```
   


-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-07 Thread via GitHub


potiuk merged PR #59142:
URL: https://github.com/apache/airflow/pull/59142


-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-07 Thread via GitHub


potiuk commented on PR #59142:
URL: https://github.com/apache/airflow/pull/59142#issuecomment-3622333673

   Let's merge it and see - if it requires more maintenance, we can always 
remove it.


-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


shahar1 commented on code in PR #59142:
URL: https://github.com/apache/airflow/pull/59142#discussion_r2596003417


##
dev/pyproject.toml:
##
@@ -36,7 +36,9 @@ maintainers = [
 version = "0.0.1"
 
 dependencies = [
+"beautifulsoup4>=4.12.0",

Review Comment:
   Mussed out this one



-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on code in PR #59142:
URL: https://github.com/apache/airflow/pull/59142#discussion_r2595658161


##
dev/verify_release_calendar.py:
##
@@ -0,0 +1,600 @@
+#!/usr/bin/env python3
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# /// script
+# requires-python = ">=3.8"
+# dependencies = [
+# "requests",
+# "beautifulsoup4",
+# "icalendar",
+# "rich",
+# ]
+# ///
+"""
+Verify that releases planned in Confluence wiki have matching Google Calendar 
entries.
+
+This script fetches the release plan from the Confluence wiki page and 
compares it
+with the Google Calendar entries to ensure they match.
+
+Release Plan: https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan
+Calendar iCal: 
https://calendar.google.com/calendar/ical/c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/public/basic.ics
+"""
+
+from __future__ import annotations
+
+import argparse
+import sys
+from dataclasses import dataclass
+from datetime import datetime
+from pathlib import Path
+from typing import Any
+
+import requests
+from bs4 import BeautifulSoup
+from icalendar import Calendar
+from rich.console import Console
+
+# Configure console
+console = Console()
+
+# Constants
+CONFLUENCE_URL = 
"https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan";
+CALENDAR_ICAL_URL = (
+"https://calendar.google.com/calendar/ical/";
+
"c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/"
+"public/basic.ics"
+)
+
+
+@dataclass
+class Release:
+"""Represents a planned release."""
+
+release_type: str  # "Airflow Ctl" or "Providers"
+version: str
+date: datetime
+release_manager: str
+
+def __str__(self):
+return f"{self.release_type} {self.version} on 
{self.date.strftime('%Y-%m-%d')} by {self.release_manager}"
+
+
+@dataclass
+class CalendarEntry:
+"""Represents a calendar entry."""
+
+summary: str
+start_date: datetime
+description: str | None = None
+
+def __str__(self):
+return f"{self.summary} on {self.start_date.strftime('%Y-%m-%d')}"
+
+
+def fetch_confluence_page() -> str:
+"""Fetch the Confluence release plan page."""
+console.print(f"[cyan]Fetching Confluence page:[/cyan] {CONFLUENCE_URL}")
+try:
+response = requests.get(CONFLUENCE_URL, timeout=30)
+response.raise_for_status()
+return response.text
+except requests.RequestException as e:
+console.print(f"[red]Failed to fetch Confluence page:[/red] {e}")
+sys.exit(1)
+
+
+def print_confluence_debug_info(soup: BeautifulSoup) -> None:
+"""Print debug information about the Confluence page structure."""
+all_headings = soup.find_all(["h1", "h2", "h3", "h4", "h5"])
+console.print(f"[dim]Found {len(all_headings)} headings in page[/dim]")
+if all_headings:
+console.print("[dim]First 10 headings:[/dim]")
+for heading in all_headings[:10]:
+console.print(f"  [dim]{heading.name}: 
{heading.get_text(strip=True)[:80]}[/dim]")
+
+all_tables = soup.find_all("table")
+console.print(f"[dim]Found {len(all_tables)} tables in page[/dim]")
+
+
+def get_release_sections() -> dict[str, list[str]]:
+"""Return the mapping of release types to their possible section names."""
+return {
+"Airflow Ctl": ["Airflow Ctl", "airflow-ctl", "airflow ctl"],
+"Providers": [
+"Support for Airflow in Providers",
+"Provider Releases",
+"Providers",
+"Provider",
+"provider release",
+],
+}
+
+
+def find_table_for_heading(heading: Any) -> Any | None:
+"""Find the table associated with a heading."""
+# Try to find table as sibling first
+current = heading.find_next_sibling()
+while current:
+if current.name == "table":
+console.print("  [dim]Found table directly after heading[/dim]")
+return current
+if current.name in ["h1", "h2", "h3", "h4", "h5"]:
+# Stop if we hit another heading
+break
+current = current.find_next_sibling()
+
+# If no table found as sibling, try finding 

Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on code in PR #59142:
URL: https://github.com/apache/airflow/pull/59142#discussion_r2595650981


##
dev/verify_release_calendar.py:
##
@@ -0,0 +1,600 @@
+#!/usr/bin/env python3
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# /// script
+# requires-python = ">=3.8"
+# dependencies = [
+# "requests",
+# "beautifulsoup4",
+# "icalendar",
+# "rich",
+# ]
+# ///
+"""
+Verify that releases planned in Confluence wiki have matching Google Calendar 
entries.
+
+This script fetches the release plan from the Confluence wiki page and 
compares it
+with the Google Calendar entries to ensure they match.
+
+Release Plan: https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan
+Calendar iCal: 
https://calendar.google.com/calendar/ical/c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/public/basic.ics
+"""
+
+from __future__ import annotations
+
+import argparse
+import sys
+from dataclasses import dataclass
+from datetime import datetime
+from pathlib import Path
+from typing import Any
+
+import requests
+from bs4 import BeautifulSoup
+from icalendar import Calendar
+from rich.console import Console
+
+# Configure console
+console = Console()
+
+# Constants
+CONFLUENCE_URL = 
"https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan";
+CALENDAR_ICAL_URL = (
+"https://calendar.google.com/calendar/ical/";
+
"c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/"
+"public/basic.ics"
+)
+
+
+@dataclass
+class Release:
+"""Represents a planned release."""
+
+release_type: str  # "Airflow Ctl" or "Providers"
+version: str
+date: datetime
+release_manager: str
+
+def __str__(self):
+return f"{self.release_type} {self.version} on 
{self.date.strftime('%Y-%m-%d')} by {self.release_manager}"
+
+
+@dataclass
+class CalendarEntry:
+"""Represents a calendar entry."""
+
+summary: str
+start_date: datetime
+description: str | None = None
+
+def __str__(self):
+return f"{self.summary} on {self.start_date.strftime('%Y-%m-%d')}"
+
+
+def fetch_confluence_page() -> str:
+"""Fetch the Confluence release plan page."""
+console.print(f"[cyan]Fetching Confluence page:[/cyan] {CONFLUENCE_URL}")
+try:
+response = requests.get(CONFLUENCE_URL, timeout=30)
+response.raise_for_status()
+return response.text
+except requests.RequestException as e:
+console.print(f"[red]Failed to fetch Confluence page:[/red] {e}")
+sys.exit(1)
+
+
+def print_confluence_debug_info(soup: BeautifulSoup) -> None:
+"""Print debug information about the Confluence page structure."""
+all_headings = soup.find_all(["h1", "h2", "h3", "h4", "h5"])
+console.print(f"[dim]Found {len(all_headings)} headings in page[/dim]")
+if all_headings:
+console.print("[dim]First 10 headings:[/dim]")
+for heading in all_headings[:10]:
+console.print(f"  [dim]{heading.name}: 
{heading.get_text(strip=True)[:80]}[/dim]")
+
+all_tables = soup.find_all("table")
+console.print(f"[dim]Found {len(all_tables)} tables in page[/dim]")
+
+
+def get_release_sections() -> dict[str, list[str]]:
+"""Return the mapping of release types to their possible section names."""
+return {
+"Airflow Ctl": ["Airflow Ctl", "airflow-ctl", "airflow ctl"],
+"Providers": [
+"Support for Airflow in Providers",
+"Provider Releases",
+"Providers",
+"Provider",
+"provider release",
+],
+}
+
+
+def find_table_for_heading(heading: Any) -> Any | None:
+"""Find the table associated with a heading."""
+# Try to find table as sibling first
+current = heading.find_next_sibling()
+while current:
+if current.name == "table":
+console.print("  [dim]Found table directly after heading[/dim]")
+return current
+if current.name in ["h1", "h2", "h3", "h4", "h5"]:
+# Stop if we hit another heading
+break
+current = current.find_next_sibling()
+
+# If no table found as sibling, try finding 

Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on code in PR #59142:
URL: https://github.com/apache/airflow/pull/59142#discussion_r2595646442


##
dev/verify_release_calendar.py:
##
@@ -0,0 +1,600 @@
+#!/usr/bin/env python3
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# /// script
+# requires-python = ">=3.8"
+# dependencies = [
+# "requests",
+# "beautifulsoup4",
+# "icalendar",
+# "rich",
+# ]
+# ///
+"""
+Verify that releases planned in Confluence wiki have matching Google Calendar 
entries.
+
+This script fetches the release plan from the Confluence wiki page and 
compares it
+with the Google Calendar entries to ensure they match.
+
+Release Plan: https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan
+Calendar iCal: 
https://calendar.google.com/calendar/ical/c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/public/basic.ics
+"""
+
+from __future__ import annotations
+
+import argparse
+import sys
+from dataclasses import dataclass
+from datetime import datetime
+from pathlib import Path
+from typing import Any
+
+import requests
+from bs4 import BeautifulSoup
+from icalendar import Calendar
+from rich.console import Console
+
+# Configure console
+console = Console()
+
+# Constants
+CONFLUENCE_URL = 
"https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan";
+CALENDAR_ICAL_URL = (
+"https://calendar.google.com/calendar/ical/";
+
"c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/"
+"public/basic.ics"
+)
+
+
+@dataclass
+class Release:
+"""Represents a planned release."""
+
+release_type: str  # "Airflow Ctl" or "Providers"
+version: str
+date: datetime
+release_manager: str
+
+def __str__(self):
+return f"{self.release_type} {self.version} on 
{self.date.strftime('%Y-%m-%d')} by {self.release_manager}"
+
+
+@dataclass
+class CalendarEntry:
+"""Represents a calendar entry."""
+
+summary: str
+start_date: datetime
+description: str | None = None
+
+def __str__(self):
+return f"{self.summary} on {self.start_date.strftime('%Y-%m-%d')}"
+
+
+def fetch_confluence_page() -> str:
+"""Fetch the Confluence release plan page."""
+console.print(f"[cyan]Fetching Confluence page:[/cyan] {CONFLUENCE_URL}")
+try:
+response = requests.get(CONFLUENCE_URL, timeout=30)
+response.raise_for_status()
+return response.text
+except requests.RequestException as e:
+console.print(f"[red]Failed to fetch Confluence page:[/red] {e}")
+sys.exit(1)
+
+
+def print_confluence_debug_info(soup: BeautifulSoup) -> None:
+"""Print debug information about the Confluence page structure."""
+all_headings = soup.find_all(["h1", "h2", "h3", "h4", "h5"])
+console.print(f"[dim]Found {len(all_headings)} headings in page[/dim]")
+if all_headings:
+console.print("[dim]First 10 headings:[/dim]")
+for heading in all_headings[:10]:
+console.print(f"  [dim]{heading.name}: 
{heading.get_text(strip=True)[:80]}[/dim]")
+
+all_tables = soup.find_all("table")
+console.print(f"[dim]Found {len(all_tables)} tables in page[/dim]")
+
+
+def get_release_sections() -> dict[str, list[str]]:
+"""Return the mapping of release types to their possible section names."""
+return {
+"Airflow Ctl": ["Airflow Ctl", "airflow-ctl", "airflow ctl"],
+"Providers": [
+"Support for Airflow in Providers",
+"Provider Releases",
+"Providers",
+"Provider",
+"provider release",
+],
+}
+
+
+def find_table_for_heading(heading: Any) -> Any | None:
+"""Find the table associated with a heading."""
+# Try to find table as sibling first
+current = heading.find_next_sibling()
+while current:
+if current.name == "table":
+console.print("  [dim]Found table directly after heading[/dim]")
+return current
+if current.name in ["h1", "h2", "h3", "h4", "h5"]:
+# Stop if we hit another heading
+break
+current = current.find_next_sibling()
+
+# If no table found as sibling, try finding 

Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


johnslavik commented on code in PR #59142:
URL: https://github.com/apache/airflow/pull/59142#discussion_r2595642093


##
dev/verify_release_calendar.py:
##
@@ -0,0 +1,600 @@
+#!/usr/bin/env python3
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# /// script
+# requires-python = ">=3.8"
+# dependencies = [
+# "requests",
+# "beautifulsoup4",
+# "icalendar",
+# "rich",
+# ]
+# ///
+"""
+Verify that releases planned in Confluence wiki have matching Google Calendar 
entries.
+
+This script fetches the release plan from the Confluence wiki page and 
compares it
+with the Google Calendar entries to ensure they match.
+
+Release Plan: https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan
+Calendar iCal: 
https://calendar.google.com/calendar/ical/c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/public/basic.ics
+"""
+
+from __future__ import annotations
+
+import argparse
+import sys
+from dataclasses import dataclass
+from datetime import datetime
+from pathlib import Path
+from typing import Any
+
+import requests
+from bs4 import BeautifulSoup
+from icalendar import Calendar
+from rich.console import Console
+
+# Configure console
+console = Console()
+
+# Constants
+CONFLUENCE_URL = 
"https://cwiki.apache.org/confluence/display/AIRFLOW/Release+Plan";
+CALENDAR_ICAL_URL = (
+"https://calendar.google.com/calendar/ical/";
+
"c_de214e92df3b759779cb65f3e49e562796c6126e7500cfa7e524bf78186d8b5e%40group.calendar.google.com/"
+"public/basic.ics"
+)
+
+
+@dataclass
+class Release:
+"""Represents a planned release."""
+
+release_type: str  # "Airflow Ctl" or "Providers"
+version: str
+date: datetime
+release_manager: str
+
+def __str__(self):
+return f"{self.release_type} {self.version} on 
{self.date.strftime('%Y-%m-%d')} by {self.release_manager}"
+
+
+@dataclass
+class CalendarEntry:
+"""Represents a calendar entry."""
+
+summary: str
+start_date: datetime
+description: str | None = None
+
+def __str__(self):
+return f"{self.summary} on {self.start_date.strftime('%Y-%m-%d')}"
+
+
+def fetch_confluence_page() -> str:
+"""Fetch the Confluence release plan page."""
+console.print(f"[cyan]Fetching Confluence page:[/cyan] {CONFLUENCE_URL}")
+try:
+response = requests.get(CONFLUENCE_URL, timeout=30)
+response.raise_for_status()
+return response.text
+except requests.RequestException as e:
+console.print(f"[red]Failed to fetch Confluence page:[/red] {e}")
+sys.exit(1)
+
+
+def print_confluence_debug_info(soup: BeautifulSoup) -> None:
+"""Print debug information about the Confluence page structure."""
+all_headings = soup.find_all(["h1", "h2", "h3", "h4", "h5"])
+console.print(f"[dim]Found {len(all_headings)} headings in page[/dim]")
+if all_headings:
+console.print("[dim]First 10 headings:[/dim]")
+for heading in all_headings[:10]:
+console.print(f"  [dim]{heading.name}: 
{heading.get_text(strip=True)[:80]}[/dim]")
+
+all_tables = soup.find_all("table")
+console.print(f"[dim]Found {len(all_tables)} tables in page[/dim]")
+
+
+def get_release_sections() -> dict[str, list[str]]:
+"""Return the mapping of release types to their possible section names."""
+return {
+"Airflow Ctl": ["Airflow Ctl", "airflow-ctl", "airflow ctl"],
+"Providers": [
+"Support for Airflow in Providers",
+"Provider Releases",
+"Providers",
+"Provider",
+"provider release",
+],
+}
+
+
+def find_table_for_heading(heading: Any) -> Any | None:
+"""Find the table associated with a heading."""
+# Try to find table as sibling first
+current = heading.find_next_sibling()
+while current:
+if current.name == "table":
+console.print("  [dim]Found table directly after heading[/dim]")
+return current
+if current.name in ["h1", "h2", "h3", "h4", "h5"]:
+# Stop if we hit another heading
+break
+current = current.find_next_sibling()
+
+# If no table found as sibling, try 

Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on PR #59142:
URL: https://github.com/apache/airflow/pull/59142#issuecomment-3621176366

   Refactored it a bit.


-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on PR #59142:
URL: https://github.com/apache/airflow/pull/59142#issuecomment-3621162857

   > Oh, I see which web page you had opened behind the terminal :-D
   
   INDEED :) 


-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on PR #59142:
URL: https://github.com/apache/airflow/pull/59142#issuecomment-3621124542

   BTW. Also error case when I (deliberately) added Shahar only in the page:
   
   https://github.com/user-attachments/assets/6fd10e63-0f7b-4698-ba95-88fe3e427f5c";
 />
   


-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on code in PR #59142:
URL: https://github.com/apache/airflow/pull/59142#discussion_r2595448472


##
dev/pyproject.toml:
##
@@ -36,7 +36,9 @@ maintainers = [
 version = "0.0.1"
 
 dependencies = [
+"beautifulsoup4>=4.12.0",

Review Comment:
   ```
   from bs4 import BeautifulSoup
   ```



-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


shahar1 commented on code in PR #59142:
URL: https://github.com/apache/airflow/pull/59142#discussion_r2595429425


##
dev/pyproject.toml:
##
@@ -36,7 +36,9 @@ maintainers = [
 version = "0.0.1"
 
 dependencies = [
+"beautifulsoup4>=4.12.0",

Review Comment:
   where do you use bs4?



-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


jscheffl commented on PR #59142:
URL: https://github.com/apache/airflow/pull/59142#issuecomment-3621065737

   Oh, I see which web page you had opened behind the terminal :-D 


-- 
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]



Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]

2025-12-06 Thread via GitHub


potiuk commented on PR #59142:
URL: https://github.com/apache/airflow/pull/59142#issuecomment-3621059043

   https://github.com/user-attachments/assets/2a7330b4-ef78-4213-8c6e-0be501e2a6e2";
 />
   


-- 
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]