kaxil opened a new pull request, #73548:
URL: https://github.com/apache/airflow/pull/73548

   After #73523 and #73542 the `common.ai` sidebar lists about fifty pages flat 
under nine captions, and most labels are class names (`LLMBranchOperator`, 
`HookToolset`), so a reader has to know the API to pick a page. Every toctree 
also carried `:maxdepth: 1`, which stopped the Airflow theme from rendering 
nested pages at all: the sandbox configuration and backends pages, and the MCP 
connection and hook pages, were reachable only from inside their parent page.
   
   This PR turns the sidebar into the shape the Pydantic AI docs use. Basics 
and Getting started (installation, quick start, core concepts) stay flat; below 
them sit seven expandable guides: What you can build, Models and providers, 
Operators, Toolsets, LLM and agent features, Document and RAG pipelines, and 
Reliability and operations. Each guide is a page that lists its children, and 
the theme expands the branch the reader is in, down to a third level for MCP 
servers and sandboxed execution under Toolsets. Labels lead with the feature 
("Branch on an answer", "Airflow hooks as tools") and page titles carry both 
the feature and the class name, so search and the API reference still find the 
class.
   
   A new supported-providers page maps each vendor to its model prefix, extra, 
connection type and credential location, including Snowflake Cortex, and links 
each vendor to an anchored example on the connection reference. The classifier 
models page now links TypeSafe's site and documentation.
   
   ## Design rationale
   
   **The theme already supports the nested tree; the provider was suppressing 
it.** `sphinx_airflow_theme` renders `toctree(collapse=True)` and expands the 
current branch with CSS, exactly as the core Airflow docs use it. Our 
`:maxdepth: 1` capped the global tree at one level, and without `:titlesonly:` 
the sidebar would list each page's section headings as extra levels. Both are 
set on every toctree now. What the theme does not support is click-to-expand of 
inactive branches, which is why each parent page also lists its children in the 
body.
   
   **Core concepts is an overview under Getting started, not a container.** 
Structured output, message history, guardrails, code mode and the two review 
pages are feature guides, and a reader looking for human approval would not 
look under "concepts". They live under "LLM and agent features", with the 
review pages labelled "Approve outputs" and "Review agent sessions" so the 
distinction is visible in the sidebar.
   
   **Sandboxed execution moved under Toolsets.** It is `SandboxToolset`, and 
the Pydantic AI docs place their sandbox under tools and capabilities rather 
than at the top level.
   
   **Provider fallback is listed under both Models and providers and 
Reliability and operations.** It is configured on the connection, but a reader 
handling a provider outage looks under operations. The page has one home in the 
toctree and a cross-linking bullet in the other.
   
   ## Gotchas
   
   - No page moves or renames, so no new redirects. The three URLs the Pydantic 
AI durable-execution guide deep-links are unchanged.
   - The System tests and Resources toctrees are left byte-for-byte as the 
`check-system-tests-tocs` hook requires.
   - The generated supported-services page from #72939 belongs under Models and 
providers when it lands; the hand-written providers page here is the how-to and 
can link to it.
   
   <img width="307" height="859" alt="image" 
src="https://github.com/user-attachments/assets/8e909390-6ff2-4dc0-b564-2be64e80482a";
 />
   <img width="1014" height="840" alt="image" 
src="https://github.com/user-attachments/assets/f8c0e3da-e31e-4976-830a-5ba7df004b38";
 />
   
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.
   


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

Reply via email to