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

kaxil pushed a commit to branch v3-4-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-4-test by this push:
     new c2563f04074 [v3-4-test] Fix docs pages listing their sections as 
separate pages in the sidebar (#75478) (#75481)
c2563f04074 is described below

commit c2563f04074f02637578479a21a8cda3d705c482
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Oct 23 15:28:03 2026 +0100

    [v3-4-test] Fix docs pages listing their sections as separate pages in the 
sidebar (#75478) (#75481)
    
    Eight pages underlined a later section like the page title, so Sphinx
    treated it as another top-level title and listed it in the sidebar as
    its own page. Demote each extra title and its subsections one level.
    
    metric_tables.rst is included under Metric Descriptions and shares its
    heading levels, so the generator now writes its headings one level
    deeper to stay nested.
    (cherry picked from commit b7dfaf64261afdb653c0dc95f9c96bef360bf603)
    
    Co-authored-by: Kaxil Naik <[email protected]>
---
 .../dagfile-processing.rst                         | 12 ++++++------
 .../logging-monitoring/metrics.rst                 |  2 +-
 airflow-core/docs/core-concepts/debug.rst          |  2 +-
 .../docs/howto/create-custom-decorator.rst         |  2 +-
 airflow-core/docs/howto/custom-view-plugin.rst     | 22 +++++++++++-----------
 airflow-core/docs/howto/customize-ui.rst           | 12 ++++++------
 airflow-core/docs/howto/notifications.rst          |  2 +-
 airflow-core/docs/howto/set-config.rst             |  2 +-
 .../observability/metrics/metrics_registry.py      |  6 +++---
 9 files changed, 31 insertions(+), 31 deletions(-)

diff --git 
a/airflow-core/docs/administration-and-deployment/dagfile-processing.rst 
b/airflow-core/docs/administration-and-deployment/dagfile-processing.rst
index f27289f00a5..bb1d9992a2e 100644
--- a/airflow-core/docs/administration-and-deployment/dagfile-processing.rst
+++ b/airflow-core/docs/administration-and-deployment/dagfile-processing.rst
@@ -46,10 +46,10 @@ The ``DagFileProcessorManager`` coordinates this work but 
never runs user code i
 
 
 Fine-tuning your Dag processor performance
-------------------------------------------
+""""""""""""""""""""""""""""""""""""""""""
 
 What impacts Dag processor's performance
-""""""""""""""""""""""""""""""""""""""""
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The Dag processor is responsible for continuously parsing Dag files and 
synchronizing with the Dag in the database.
 In order to fine-tune your Dag processor, you need to include a number of 
factors:
@@ -77,7 +77,7 @@ In order to fine-tune your Dag processor, you need to include 
a number of factor
    * How many callbacks you run per Dag processor loop
 
 How to approach Dag processor's fine-tuning
-"""""""""""""""""""""""""""""""""""""""""""
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Airflow gives you a lot of "knobs" to turn to fine tune the performance but 
it's a separate task,
 depending on your particular deployment, your Dag structure, hardware 
availability and expectations,
@@ -104,7 +104,7 @@ to observe and monitor your systems):
   the observation of your performance, bottlenecks. Performance improvement is 
an iterative process.
 
 What resources might limit Dag processor's performance
-""""""""""""""""""""""""""""""""""""""""""""""""""""""
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 There are several areas of resource usage that you should pay attention to:
 
@@ -153,7 +153,7 @@ There are several areas of resource usage that you should 
pay attention to:
   on your deployment) rather than ``total memory used``.
 
 What can you do, to improve Dag processor's performance
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 When you know what your resource usage is, the improvements that you can 
consider might be:
 
@@ -179,7 +179,7 @@ When you know what your resource usage is, the improvements 
that you can conside
   in order to get better fine-tuned results for your particular deployment.
 
 Dag processor Configuration options
-"""""""""""""""""""""""""""""""""""
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The following config settings can be used to control aspects of the Dag 
processor.
 However, you can also look at other non-performance-related Dag processor 
configuration parameters available at
diff --git 
a/airflow-core/docs/administration-and-deployment/logging-monitoring/metrics.rst
 
b/airflow-core/docs/administration-and-deployment/logging-monitoring/metrics.rst
index 09491659968..00c77d3b72e 100644
--- 
a/airflow-core/docs/administration-and-deployment/logging-monitoring/metrics.rst
+++ 
b/airflow-core/docs/administration-and-deployment/logging-monitoring/metrics.rst
@@ -347,6 +347,6 @@ Other Configuration Options
 
 
 Metric Descriptions
-===================
+-------------------
 
 .. include:: metric_tables.rst
diff --git a/airflow-core/docs/core-concepts/debug.rst 
b/airflow-core/docs/core-concepts/debug.rst
index d6287e87092..aa115c250d9 100644
--- a/airflow-core/docs/core-concepts/debug.rst
+++ b/airflow-core/docs/core-concepts/debug.rst
@@ -84,7 +84,7 @@ is manually ingested. The cleanup step is also skipped, 
making the intermediate
 
 
 Debugging Airflow Dags on the command line
-==========================================
+------------------------------------------
 
 With the same two line addition as mentioned in the above section, you can now 
easily debug a Dag using pdb as well.
 Run ``python -m pdb <path to Dag file>.py`` for an interactive debugging 
experience on the command line.
diff --git a/airflow-core/docs/howto/create-custom-decorator.rst 
b/airflow-core/docs/howto/create-custom-decorator.rst
index 32942393de9..98fc3055281 100644
--- a/airflow-core/docs/howto/create-custom-decorator.rst
+++ b/airflow-core/docs/howto/create-custom-decorator.rst
@@ -87,7 +87,7 @@ tasks. The steps to create and register ``@task.foo`` are:
     Please note that the ``name`` must be a valid python identifier.
 
 (Optional) Adding IDE auto-completion support
-=============================================
+---------------------------------------------
 
 .. note::
 
diff --git a/airflow-core/docs/howto/custom-view-plugin.rst 
b/airflow-core/docs/howto/custom-view-plugin.rst
index dcab538833e..9d97a2129fe 100644
--- a/airflow-core/docs/howto/custom-view-plugin.rst
+++ b/airflow-core/docs/howto/custom-view-plugin.rst
@@ -52,7 +52,7 @@ Information and code samples to register ``fastapi_apps``, 
``fastapi_root_middle
 available in :doc:`plugin </administration-and-deployment/plugins>`.
 
 Developing React Applications with the Bootstrap Tool
-=====================================================
+-----------------------------------------------------
 
 .. warning::
   React applications are new in Airflow 3.1 and should be considered 
experimental. The feature may be
@@ -66,7 +66,7 @@ and recommended way to customize the Airflow UI.
 This tool generates a complete React project structure that builds as a 
library compatible with dynamic imports and shares React instances with the 
host Airflow application.
 
 Creating a New React Plugin Project
------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The bootstrap tool is located in ``dev/react-plugin-tools/`` and provides a 
simple CLI to generate new React plugin projects:
 
@@ -89,7 +89,7 @@ This generates a complete React project with Vite, 
TypeScript, Chakra UI integra
    React and React-DOM are shared dependencies with the host application and 
need to have compatible versions.
 
 React Development Workflow
----------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Once your project is generated, refer to the ``README.md`` file in your 
project directory for complete development instructions, including:
 
@@ -102,7 +102,7 @@ Once your project is generated, refer to the ``README.md`` 
file in your project
 The generated project is pre-configured with all necessary tools and follows 
Airflow's UI development patterns.
 
 Integrating with Airflow
--------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To integrate your React application with Airflow, you need to:
 
@@ -110,7 +110,7 @@ To integrate your React application with Airflow, you need 
to:
 2. **Register the React app** using ``react_apps`` plugin configuration
 
 Example Plugin Implementation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Create an Airflow plugin that serves your React application:
 
@@ -161,13 +161,13 @@ Create an Airflow plugin that serves your React 
application:
         ]
 
 Plugin Configuration Options
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 React apps support several configuration options, you can take a look at 
:doc:`plugin </administration-and-deployment/plugins>` for more details.
 
 
 Integration Best Practices
----------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The generated template follows these best practices for Airflow integration:
 
@@ -177,10 +177,10 @@ The generated template follows these best practices for 
Airflow integration:
 4. **MIME Types**: Proper JavaScript MIME type handling for ``.cjs`` files 
because FastAPI serves them as plain text by default
 
 Deployment Strategies
----------------------
+~~~~~~~~~~~~~~~~~~~~~
 
 External Hosting
-~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^
 
 You can also host assets on external infrastructure:
 
@@ -196,7 +196,7 @@ You can also host assets on external infrastructure:
     ]
 
 Troubleshooting Integration Issues
------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Common integration issues and solutions:
 
@@ -210,7 +210,7 @@ Common integration issues and solutions:
     Refer to the ``README.md`` file generated with your project for detailed 
troubleshooting of React-specific development issues.
 
 Support for Airflow 2 plugins
-=============================
+-----------------------------
 
 Airflow 2 plugins are still supported with some limitations. More information 
on such
 plugins can be found in the Airflow 2 documentation.
diff --git a/airflow-core/docs/howto/customize-ui.rst 
b/airflow-core/docs/howto/customize-ui.rst
index acfe8557302..ef445461882 100644
--- a/airflow-core/docs/howto/customize-ui.rst
+++ b/airflow-core/docs/howto/customize-ui.rst
@@ -258,13 +258,13 @@ You can replace the default Airflow icon in the 
navigation bar by providing an `
 |
 
 Adding Dashboard Alert Messages
-===============================
+-------------------------------
 
 Extra alert messages can be shown on the Airflow dashboard. This can be useful 
for warning about setup issues, announcing changes
 to end users, or providing real-time status information. Dashboard alerts 
support both static and dynamic content.
 
 Basic Static Alerts
--------------------
+^^^^^^^^^^^^^^^^^^^
 
 To add static alert messages that remain constant until the webserver is 
restarted:
 
@@ -287,7 +287,7 @@ To add static alert messages that remain constant until the 
webserver is restart
 3. Restart the Airflow webserver, and you should now see the alert message 
displayed on the dashboard.
 
 Alert Categories
-----------------
+^^^^^^^^^^^^^^^^
 
 You can control the category of the alert message. Available categories 
include:
 
@@ -308,7 +308,7 @@ You can control the category of the alert message. 
Available categories include:
 .. image:: ../img/ui-alert-message.png
 
 Markdown Content in Alerts
---------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Markdown can be included in alert messages for richer formatting. In the 
following example, we show an alert
 message of heading 2 with a link included:
@@ -324,7 +324,7 @@ message of heading 2 with a link included:
 .. image:: ../img/ui-alert-message-markdown.png
 
 Dynamic Dashboard Alerts
-------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^
 
 Dashboard alerts support dynamic content that updates each time the dashboard 
page is refreshed. This allows for real-time
 status updates without requiring webserver restarts. Dynamic alerts must be 
defined as an instance of an iterable object.
@@ -345,7 +345,7 @@ Dynamic alerts are particularly useful for:
 - **External service status**: Show the availability of dependent services or 
APIs
 
 Creating Dynamic Alerts
-^^^^^^^^^^^^^^^^^^^^^^^
+"""""""""""""""""""""""
 
 To create dynamic alerts, define ``DASHBOARD_UIALERTS`` as an instance of a 
class that subclasses ``list``
 and implements the ``__iter__`` method. The UI will iterate over any number 
``UIAlert`` instances yielded by
diff --git a/airflow-core/docs/howto/notifications.rst 
b/airflow-core/docs/howto/notifications.rst
index 14a35d962a6..98f1901e5c4 100644
--- a/airflow-core/docs/howto/notifications.rst
+++ b/airflow-core/docs/howto/notifications.rst
@@ -56,6 +56,6 @@ Here's an example of how you can create a Notifier class:
 For a list of community-managed notifiers, see 
:doc:`apache-airflow-providers:core-extensions/notifications`.
 
 Using Notifiers
-===============
+---------------
 
 For using Notifiers in event-based Dag callbacks, see 
:doc:`../administration-and-deployment/logging-monitoring/callbacks`.
diff --git a/airflow-core/docs/howto/set-config.rst 
b/airflow-core/docs/howto/set-config.rst
index b4fcf0559c2..2ac40953bb4 100644
--- a/airflow-core/docs/howto/set-config.rst
+++ b/airflow-core/docs/howto/set-config.rst
@@ -175,7 +175,7 @@ the example below.
 .. _set-config:configuring-local-settings:
 
 Configuring local settings
-==========================
+--------------------------
 
 Some Airflow configuration is configured via local setting, because they 
require changes in the
 code that is executed when Airflow is initialized. Usually it is mentioned in 
the detailed documentation
diff --git 
a/shared/observability/src/airflow_shared/observability/metrics/metrics_registry.py
 
b/shared/observability/src/airflow_shared/observability/metrics/metrics_registry.py
index 1aa49e731fd..117161ed003 100644
--- 
a/shared/observability/src/airflow_shared/observability/metrics/metrics_registry.py
+++ 
b/shared/observability/src/airflow_shared/observability/metrics/metrics_registry.py
@@ -81,7 +81,7 @@ def convert_to_rst_tables(metrics: list) -> str:
     # Counters section
     if counters:
         output.append("Counters")
-        output.append("--------")
+        output.append("^^^^^^^^")
         output.append("")
         output.append(tabulate(counters, headers=headers, tablefmt="rst"))
         output.append("")
@@ -89,7 +89,7 @@ def convert_to_rst_tables(metrics: list) -> str:
     # Gauges section
     if gauges:
         output.append("Gauges")
-        output.append("------")
+        output.append("^^^^^^")
         output.append("")
         output.append(tabulate(gauges, headers=headers, tablefmt="rst"))
         output.append("")
@@ -97,7 +97,7 @@ def convert_to_rst_tables(metrics: list) -> str:
     # Timers section
     if timers:
         output.append("Timers")
-        output.append("------")
+        output.append("^^^^^^")
         output.append("")
         output.append(tabulate(timers, headers=headers, tablefmt="rst"))
         output.append("")

Reply via email to