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

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


The following commit(s) were added to refs/heads/main by this push:
     new 72c1de4288 Add blog post for 3.1.0 (#1243)
72c1de4288 is described below

commit 72c1de428817ec2f580f8f0c7226e3d41adbbb01
Author: Kaxil Naik <[email protected]>
AuthorDate: Thu Sep 25 20:59:41 2025 +0100

    Add blog post for 3.1.0 (#1243)
    
    Getting ready for 3.1.0 release
---
 .../site/content/en/announcements/_index.md        |  11 +
 .../content/en/blog/airflow-3.1.0/images/3.1.0.jpg | Bin 0 -> 103644 bytes
 .../en/blog/airflow-3.1.0/images/calendar.gif      | Bin 0 -> 182606 bytes
 .../en/blog/airflow-3.1.0/images/favorite.png      | Bin 0 -> 216197 bytes
 .../content/en/blog/airflow-3.1.0/images/gantt.png | Bin 0 -> 510782 bytes
 .../content/en/blog/airflow-3.1.0/images/hitl.gif  | Bin 0 -> 3346240 bytes
 .../en/blog/airflow-3.1.0/images/i18n-demo.gif     | Bin 0 -> 1117361 bytes
 .../content/en/blog/airflow-3.1.0/images/snake.gif | Bin 0 -> 6342281 bytes
 .../site/content/en/blog/airflow-3.1.0/index.md    | 246 +++++++++++++++++++++
 9 files changed, 257 insertions(+)

diff --git a/landing-pages/site/content/en/announcements/_index.md 
b/landing-pages/site/content/en/announcements/_index.md
index 6d11b75ca4..6291009342 100644
--- a/landing-pages/site/content/en/announcements/_index.md
+++ b/landing-pages/site/content/en/announcements/_index.md
@@ -11,6 +11,17 @@ menu:
 &nbsp;
 &nbsp;
 
+# September 25, 2025
+
+Weโ€™ve just released Apache **Airflow 3.1.0** and **Task SDK 1.1.0**.
+
+๐Ÿ“ฆ PyPI: https://pypi.org/project/apache-airflow/3.1.0/ \
+๐Ÿ“š Core Airflow Docs: https://airflow.apache.org/docs/apache-airflow/3.1.0/ \
+๐Ÿ“š Task SDK Docs: https://airflow.apache.org/docs/task-sdk/1.1.0/ \
+๐Ÿ› ๏ธ Release Notes: 
https://airflow.apache.org/docs/apache-airflow/3.1.0/release_notes.html \
+๐Ÿชถ Sources: 
https://airflow.apache.org/docs/apache-airflow/3.1.0/installation/installing-from-sources.html
 \
+๐Ÿš Constraints: https://github.com/apache/airflow/tree/constraints-3.1.0
+
 # August 29, 2025
 
 Weโ€™ve just released Apache **Airflow 3.0.6** and **Task SDK 1.0.6**.
diff --git a/landing-pages/site/content/en/blog/airflow-3.1.0/images/3.1.0.jpg 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/3.1.0.jpg
new file mode 100644
index 0000000000..920fdbee72
Binary files /dev/null and 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/3.1.0.jpg differ
diff --git 
a/landing-pages/site/content/en/blog/airflow-3.1.0/images/calendar.gif 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/calendar.gif
new file mode 100644
index 0000000000..47417bad8e
Binary files /dev/null and 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/calendar.gif differ
diff --git 
a/landing-pages/site/content/en/blog/airflow-3.1.0/images/favorite.png 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/favorite.png
new file mode 100644
index 0000000000..93784842a4
Binary files /dev/null and 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/favorite.png differ
diff --git a/landing-pages/site/content/en/blog/airflow-3.1.0/images/gantt.png 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/gantt.png
new file mode 100644
index 0000000000..e6076fe5ba
Binary files /dev/null and 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/gantt.png differ
diff --git a/landing-pages/site/content/en/blog/airflow-3.1.0/images/hitl.gif 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/hitl.gif
new file mode 100644
index 0000000000..b41bbc6741
Binary files /dev/null and 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/hitl.gif differ
diff --git 
a/landing-pages/site/content/en/blog/airflow-3.1.0/images/i18n-demo.gif 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/i18n-demo.gif
new file mode 100644
index 0000000000..89472b217a
Binary files /dev/null and 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/i18n-demo.gif differ
diff --git a/landing-pages/site/content/en/blog/airflow-3.1.0/images/snake.gif 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/snake.gif
new file mode 100644
index 0000000000..a93c222af3
Binary files /dev/null and 
b/landing-pages/site/content/en/blog/airflow-3.1.0/images/snake.gif differ
diff --git a/landing-pages/site/content/en/blog/airflow-3.1.0/index.md 
b/landing-pages/site/content/en/blog/airflow-3.1.0/index.md
new file mode 100644
index 0000000000..d24d4b9027
--- /dev/null
+++ b/landing-pages/site/content/en/blog/airflow-3.1.0/index.md
@@ -0,0 +1,246 @@
+---
+title: "Apache Airflow 3.1.0: Human-Centered Workflows"
+linkTitle: "Apache Airflow 3.1.0: Human-Centered Workflows"
+author: "Kaxil Naik"
+github: "kaxil"
+linkedin: "kaxil"
+description: "Apache Airflow 3.1.0 introduces Human-in-the-Loop workflows, 
17-language internationalization, deadline alerts, and React plugin system for 
data orchestration teams."
+tags: [Release]
+date: "2025-09-25"
+images: ["/blog/airflow-3.1.0/images/3.1.0.jpg"]
+---
+
+We are thrilled to announce the release of **Apache Airflow 3.1.0**, an update 
that puts humans at the center of data
+workflows. This release introduces powerful new capabilities for human 
decision-making in automated
+processes, comprehensive internationalization support, and significant 
developer experience improvements.
+
+**Details**:
+
+๐Ÿ“ฆ PyPI: https://pypi.org/project/apache-airflow/3.1.0/ \
+๐Ÿ“š Core Airflow Docs: https://airflow.apache.org/docs/apache-airflow/3.1.0/ \
+๐Ÿ“š Task SDK Docs: https://airflow.apache.org/docs/task-sdk/1.1.0/ \
+๐Ÿ› ๏ธ Release Notes: 
https://airflow.apache.org/docs/apache-airflow/3.1.0/release_notes.html \
+๐Ÿชถ Sources: 
https://airflow.apache.org/docs/apache-airflow/3.1.0/installation/installing-from-sources.html
 \
+๐Ÿš Constraints: https://github.com/apache/airflow/tree/constraints-3.1.0
+
+## ๐Ÿค Human-in-the-Loop (HITL): When Automation Meets Human Judgment
+
+This powerful capability bridges the gap between automated processes and human 
expertise, making Airflow invaluable for:
+
+![Human-in-the-Loop HITL](images/hitl.gif)
+
+* **AI/ML Model Validation**: Pause inference pipelines for human review of 
model outputs
+* **Content Moderation**: Route content through human reviewers before 
publication
+* **Approval Workflows**: Require manager approval for sensitive operations
+* **Data Quality Gates**: Allow data stewards to validate critical datasets
+
+**HITL** tasks pause in a deferred state while presenting intuitive web forms 
in the Airflow UI. Users with appropriate roles can review context data, DAG 
parameters, and XCom values before making informed decisions.
+
+## Example Code:
+
+```py
+from airflow.sdk import DAG
+from airflow.providers.standard.operators.hitl import HITLOperator
+
+with DAG("content_moderation", schedule="@daily") as dag:
+    moderate_content = HITLOperator(
+        task_id="review_content",
+        message="Please review this content for publication",
+        data_key="content_to_review"
+    )
+```
+
+# ๐Ÿ“Š UI Enhancements & Performance
+
+## Calendar and Gantt Views Make Their Comeback
+
+Remember those beloved Calendar and Gantt chart views from Airflow 2.x? 
They're back, completely rebuilt for the
+modern React UI after being omitted from the 3.0 release.
+
+The new Calendar view is genuinely interactive with filtering capabilities 
that make it easy to drill down
+into specific time periods and dag states.
+
+![Calendar View](images/calendar.gif)
+
+The Gantt chart is now integrated directly into the grid view and renders much 
faster than the old
+version, giving you that timeline perspective without the performance 
headaches.
+
+![Gantt View](images/gantt.png)
+
+## Theme Updates That Actually Matter
+
+We've refreshed the color palette using modern design principles, making the 
UI more consistent, professional
+and most of all taken a careful look at contrast ratios so the UI should be 
more accessible.
+
+## Other Improvements
+
+We've added a lot more filtering options across the pages!
+
+Plus, you can now pin your **favorite DAGs** to keep them at the top of your 
list or to filter for them easily. It's
+one of those small features that makes a huge difference when dealing with 
100s of workflows.
+
+![Favorite Dags in the UI](images/favorite.png)
+Credited to Volker Janz.
+
+> ๐Ÿ“Š **UI Development Milestone**: Airflow 3.1.0 features **5x more UI pull 
requests** than the 2.10 release and **50% more** than Airflow 3.0, 
demonstrating the community's commitment to user experience excellence.
+
+# โฐ **Deadline Alerts**: Proactive Workflow Monitoring
+
+Say goodbye to reactive monitoring. **Deadline Alerts** provide proactive 
notifications when DAG runs
+exceed time thresholds, helping ensure SLA compliance and timely completion of 
critical workflows.
+
+Configure monitoring by specifying:
+
+* **Reference point**: DAG queued time, logical date, or fixed datetime
+* **Interval**: Time threshold (positive or negative)
+* **Callback**: Notifications via Airflow Notifiers or custom functions
+
+## Example Code:
+
+```py
+from datetime import timedelta
+from airflow.sdk.definitions.deadline import DeadlineAlert, DeadlineReference, 
AsyncCallback
+from airflow.providers.slack.notifications.slack_webhook import 
SlackWebhookNotifier
+
+with DAG(
+    "critical_etl",
+    deadline=DeadlineAlert(
+        reference=DeadlineReference.DAGRUN_QUEUED_AT,
+        interval=timedelta(hours=2),
+        callback=AsyncCallback(
+            SlackWebhookNotifier,
+            kwargs={"text": "๐Ÿšจ Critical ETL missed deadline!"}
+        )
+    )
+) as dag:
+    # Your tasks here
+```
+
+Perfect for monitoring daily ETLs, alerting before critical deadlines, or 
escalating resource-constrained workflows.
+
+# ๐ŸŒ Going Global with 17 Languages
+
+Airflow now speaks your team's language. Literally. We have added 
comprehensive internationalization support
+for **17 languages**, including Arabic, Chinese, French, German, Spanish and 
more. The interface detects your
+browser preferences automatically, but you can switch languages on the fly 
without refreshing the page.
+
+![Internationalization Demo](images/i18n-demo.gif)
+
+For our Arabic and Hebrew users, we've built in **proper right-to-left (RTL) 
support**
+
+The best part? We have made it straightforward for the community to contribute 
additional languages with clear
+contribution guidelines, so this is just the beginning of Airflow's global 
reach.
+
+
+# ๐ŸŽจ Build *your Airflow*, *your way*
+
+The new **React Plugin System** (**AIP-68**) transforms how you extend 
Airflow's interface. We have replaced
+the old Flask-based approach with a modern toolkit that lets you customize 
Airflow exactly how your team works.
+
+Want to embed your company's dashboard right in the Airflow UI? Build React 
applications or iframes that will
+render inside Airflow's (nav bar, dashboard, details page, etc). Want to link 
to your existing tools
+seamlessly? Create custom external links to your resources. Want to extend 
Airflow's API server? Register
+FastAPI sub applications and middlewares that fit your specific processes.
+
+The system includes:
+
+* **External Views** for linking to existing tools (external links or embedded 
iframes)
+* **React Applications**  support for rendering external react apps
+* **FastAPI Sub Applications** to extend the API server
+* **Root Middlewares** for intercepting API requests (even core ones)
+
+We've already seen teams integrate everything from Wikipedia searches to data 
lineage
+visualizations to yes, someone building a snake game to play while waiting on 
dag runs!
+
+![Snake Game Plugin](images/snake.gif)
+Credited to Tamara Fingerlin.
+
+# ๐Ÿ”ง Enhanced Developer and Authoring Experience
+
+## Task SDK Evolution
+
+Airflow 3.1 advances the decoupling of the **Task SDK** from Airflow Core 
through improved DAG serialization. While
+complete separation arrives in 3.2.0, the foundation enables:
+
+* **Independent Upgrades**: Reduced coordination need between Dag authors and 
Airflow Ops teams
+* **Forward Compatibility**: Dag authors should now write Dags by importing 
from the **airflow.sdk** namespace for future-proofing. (Naturally, the old 
imports still work but issue a warning.)
+* **Deployment Flexibility**: Better support for separated component deployment
+
+## Python 3.13 Support
+
+Airflow 3.1.0 adds **Python 3.13** support while removing Python 3.9 
(end-of-life). The platform now supports Python 3.10, 3.11, 3.12, and 3.13.
+
+## Inference Execution
+
+A new streaming API endpoint (**`/dags/{dag_id}/dagRuns/{dag_run_id}/wait`**) 
allows applications to watch DAG runs
+until completion, enabling responsive integration patterns for real-time 
workflows.
+
+The below example use [`httpx`](https://www.python-httpx.org/async/) to 
trigger a dag run, and emits the final dag run
+state after it finishes:
+
+```py
+import asyncio
+import json
+
+import httpx
+
+dag_id = "my-dag"
+
+async def create_and_wait(client):
+    # Create a dag run...
+    r = await 
client.post(f"https://my-airflow.example.com/api/v2/dags/{dag_id}/dagRuns";)
+    run_id = r.json()["dag_run_id"]
+    async with client.stream(
+        "GET",
+        
f"https://my-airflow.example.com/api/v2/dags/{dag_id}/dagRuns/{run_id}/wait";,
+    ) as r:
+        async for line in r.aiter_lines():
+            pass  # You can do progress report here instead.
+    print("Dag run state:", json.loads(line.strip())["state"])
+
+async def main():
+    async with httpx.AsyncClient() as client:
+        await create_and_wait(client)
+
+asyncio.run(main())
+```
+
+# ๐Ÿ™ Amazing Community
+
+Apache Airflow 3.1.0 represents an extraordinary community effort, showcasing 
the vibrant ecosystem that drives this project forward with **163 
contributors** making this release possible across **1,400+ commits**.
+
+## Leading Contributors
+Special thanks to our top 20 contributors who drove this release forward: 
**Amogh Desai**, **Ash Berlin-Taylor**, **Brent Bovenzi**, **Bugra Ozturk**, 
**Daniel Standish**, **Elad Kalif**, **Ephraim Anierobi**, **GPK**, **Guan Ming 
(Wesley) Chiu**, **Jarek Potiuk**, **Jens Scheffler**, **Karthikeyan 
Singaravelan**, **Kaxil Naik**, **LI,JHE-CHEN**, **Pierre Jeambrun**, **Shahar 
Epstein**, **Tzu-ping Chung**, **Vincent**, **Wei Lee**, and **Yeonguk Choo**.
+
+<details>
+<summary>View all 143 additional contributors</summary>
+
+1in3x, Aaron Chen, Aayush Bisen, Abhishek, Achim Gรคdke, Aldo, Alex Neal 
Albinda, Alyssa Mhie M. Matila, Anand Raman, Andrei Serdiukov, Ankit Chaurasia, 
Antony Southworth, Aritra Basu, Aryan Khurana, Atul Singh, Azis, BBQing, Bjorn 
Olsen, Bowrna, Brunda10, Carl Leake, Chang-Yen (Brian) Li, Christos Bisias, 
Collin McNulty, Constance Martineau, D. Ferruzzi, DHARMENDRA AHIRWAR, Damian 
Shaw, Daniel Wolf, David Blain, Denis Krivenko, Dev-iL, Dheeraj Turaga, Diogo 
Rodrigues, Domadelfin, Dov Ben [...]
+
+</details>
+
+## UI Excellence & Community Growth
+The exceptional growth in UI contributions - **5x more pull requests** than 
Airflow 2.10 and **50% more** than Airflow 3.0 - reflects the dedicated efforts 
of our UI maintainers and an expanding community of **70 frontend 
contributors** who have made user experience a cornerstone of this release.
+
+## Global Collaboration
+The internationalization effort represents contributors from around the world, 
making Airflow truly accessible across **17 languages** and diverse technical 
communities, demonstrating the truly global nature of the Airflow project.
+
+---
+
+*Apache Airflow is a community-driven project. Special thanks to all 
contributors who made this release possible through code, documentation, 
testing, and feedback. The future of workflow orchestration is built together.*
+
+# ๐Ÿ“ Migration & Upgrade Notes
+
+* **Python Support**: Ensure you're running Python 3.10+ before upgrading. We 
recommend at least Python 3.12 for performance improvements from the Python 
core team โ€“ 3.13 if you can manage it is even better\!
+* **Provider Updates**: Update to the latest provider packages to take 
advantage of new features.
+* **Breaking Changes**: Review the [migration 
guide](https://airflow.apache.org/docs/apache-airflow/3.1.0/installation/upgrading.html)
 for configuration changes and removed features if you are upgrading directly 
from Airflow 2.x.
+
+# ๐Ÿ”— Get Involved
+
+* **Try the Release**: Upgrade your development environment and explore the 
new features
+* **Join the Conversation**: Connect with us on ([Airflow 
Slack](https://s.apache.org/airflow-slack)) and the ([dev mailing 
list](https://airflow.apache.org/community/))
+* **Contribute**: Check out our [contribution 
guide](https://github.com/apache/airflow/blob/main/contributing-docs/README.rst).
+* **Provide Feedback**: Share your experiences and suggestions on GitHub 
([https://github.com/apache/airflow](https://github.com/apache/airflow))
+
+Apache Airflow 3.1.0 marks a new chapter in making data orchestration more 
inclusive, intelligent, and
+human-centered. We can't wait to see what you build with it!

Reply via email to