Re: [PR] Add script that verifies consistency: Release Page with Release Calendar [airflow]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
