| |
| <!DOCTYPE html> |
| |
| |
| <html lang="en" data-content_root="../" > |
| |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> |
| |
| <title>Building the Documentation — Apache Arrow v23.0.0.dev37</title> |
| |
| |
| |
| <script data-cfasync="false"> |
| document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; |
| document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; |
| </script> |
| <!-- |
| this give us a css class that will be invisible only if js is disabled |
| --> |
| <noscript> |
| <style> |
| .pst-js-only { display: none !important; } |
| |
| </style> |
| </noscript> |
| |
| <!-- Loaded before other Sphinx assets --> |
| <link href="../_static/styles/theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" /> |
| <link href="../_static/styles/pydata-sphinx-theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" /> |
| |
| <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=03e43079" /> |
| <link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" /> |
| <link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" /> |
| <link rel="stylesheet" type="text/css" href="../_static/theme_overrides.css?v=8dcd28dc" /> |
| |
| <!-- So that users can add custom icons --> |
| <script src="../_static/scripts/fontawesome.js?digest=8878045cc6db502f8baf"></script> |
| <!-- Pre-loaded scripts that we'll load fully later --> |
| <link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" /> |
| <link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" /> |
| |
| <script src="../_static/documentation_options.js?v=9fc6757a"></script> |
| <script src="../_static/doctools.js?v=9bcbadda"></script> |
| <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> |
| <script src="../_static/clipboard.min.js?v=a7894cd8"></script> |
| <script src="../_static/copybutton.js?v=3bb21c8c"></script> |
| <script src="../_static/design-tabs.js?v=f930bc37"></script> |
| <script>DOCUMENTATION_OPTIONS.pagename = 'developers/documentation';</script> |
| <script> |
| DOCUMENTATION_OPTIONS.theme_version = '0.16.1'; |
| DOCUMENTATION_OPTIONS.theme_switcher_json_url = '/docs/_static/versions.json'; |
| DOCUMENTATION_OPTIONS.theme_switcher_version_match = 'dev/'; |
| DOCUMENTATION_OPTIONS.show_version_warning_banner = |
| true; |
| </script> |
| <link rel="canonical" href="https://arrow.apache.org/docs/developers/documentation.html" /> |
| <link rel="icon" href="../_static/favicon.ico"/> |
| <link rel="index" title="Index" href="../genindex.html" /> |
| <link rel="search" title="Search" href="../search.html" /> |
| <link rel="next" title="Release Management Guide" href="release.html" /> |
| <link rel="prev" title="Benchmarks" href="benchmarks.html" /> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <meta name="docsearch:language" content="en"/> |
| <meta name="docsearch:version" content="23.0.0.dev37" /> |
| |
| <!-- Matomo --> |
| <script> |
| var _paq = window._paq = window._paq || []; |
| /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ |
| /* We explicitly disable cookie tracking to avoid privacy issues */ |
| _paq.push(['disableCookies']); |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u="https://analytics.apache.org/"; |
| _paq.push(['setTrackerUrl', u+'matomo.php']); |
| _paq.push(['setSiteId', '20']); |
| var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); |
| })(); |
| </script> |
| <!-- End Matomo Code --> |
| |
| </head> |
| |
| |
| <body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode=""> |
| |
| |
| |
| <div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div> |
| |
| <div id="pst-scroll-pixel-helper"></div> |
| |
| <button type="button" class="btn rounded-pill" id="pst-back-to-top"> |
| <i class="fa-solid fa-arrow-up"></i>Back to top</button> |
| |
| |
| <dialog id="pst-search-dialog"> |
| |
| <form class="bd-search d-flex align-items-center" |
| action="../search.html" |
| method="get"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <input type="search" |
| class="form-control" |
| name="q" |
| placeholder="Search the docs ..." |
| aria-label="Search the docs ..." |
| autocomplete="off" |
| autocorrect="off" |
| autocapitalize="off" |
| spellcheck="false"/> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span> |
| </form> |
| </dialog> |
| |
| <div class="pst-async-banner-revealer d-none"> |
| <aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside> |
| </div> |
| |
| |
| <header class="bd-header navbar navbar-expand-lg bd-navbar d-print-none"> |
| <div class="bd-header__inner bd-page-width"> |
| <button class="pst-navbar-icon sidebar-toggle primary-toggle" aria-label="Site navigation"> |
| <span class="fa-solid fa-bars"></span> |
| </button> |
| |
| |
| <div class=" navbar-header-items__start"> |
| |
| <div class="navbar-item"> |
| |
| |
| |
| |
| |
| <a class="navbar-brand logo" href="../index.html"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <img src="../_static/arrow.png" class="logo__image only-light" alt="Apache Arrow v23.0.0.dev37 - Home"/> |
| <img src="../_static/arrow-dark.png" class="logo__image only-dark pst-js-only" alt="Apache Arrow v23.0.0.dev37 - Home"/> |
| |
| |
| </a></div> |
| |
| </div> |
| |
| <div class=" navbar-header-items"> |
| |
| <div class="me-auto navbar-header-items__center"> |
| |
| <div class="navbar-item"> |
| <nav> |
| <ul class="bd-navbar-elements navbar-nav"> |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../format/index.html"> |
| Specifications |
| </a> |
| </li> |
| |
| |
| <li class="nav-item current active"> |
| <a class="nav-link nav-internal" href="index.html"> |
| Development |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../implementations.html"> |
| Implementations |
| </a> |
| </li> |
| |
| </ul> |
| </nav></div> |
| |
| </div> |
| |
| |
| <div class="navbar-header-items__end"> |
| |
| <div class="navbar-item navbar-persistent--container"> |
| |
| |
| <button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <span class="search-button__default-text">Search</span> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> |
| </button> |
| </div> |
| |
| |
| <div class="navbar-item"><div class="kapa-ai-bot"> |
| <script |
| async |
| src="https://widget.kapa.ai/kapa-widget.bundle.js" |
| data-website-id="9db461d5-ac77-4b3f-a5c5-75efa78339d2" |
| data-project-name="Apache Arrow" |
| data-project-color="#000000" |
| data-project-logo="https://arrow.apache.org/img/arrow-logo_chevrons_white-txt_black-bg.png" |
| data-modal-disclaimer="This is a custom LLM with access to all [Arrow documentation](https://arrow.apache.org/docs/). Please include the language you are using in your question, e.g., Python, C++, Java, R, etc." |
| data-consent-required="true" |
| data-user-analytics-cookie-enabled="false" |
| data-consent-screen-disclaimer="By clicking "I agree, let's chat", you consent to the use of the AI assistant in accordance with kapa.ai's [Privacy Policy](https://www.kapa.ai/content/privacy-policy). This service uses reCAPTCHA, which requires your consent to Google's [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms). By proceeding, you explicitly agree to both kapa.ai's and Google's privacy policies." |
| ></script> |
| |
| </div> |
| |
| </div> |
| |
| <div class="navbar-item"> |
| <div class="version-switcher__container dropdown pst-js-only"> |
| <button id="pst-version-switcher-button-2" |
| type="button" |
| class="version-switcher__button btn btn-sm dropdown-toggle" |
| data-bs-toggle="dropdown" |
| aria-haspopup="listbox" |
| aria-controls="pst-version-switcher-list-2" |
| aria-label="Version switcher list" |
| > |
| Choose version <!-- this text may get changed later by javascript --> |
| <span class="caret"></span> |
| </button> |
| <div id="pst-version-switcher-list-2" |
| class="version-switcher__menu dropdown-menu list-group-flush py-0" |
| role="listbox" aria-labelledby="pst-version-switcher-button-2"> |
| <!-- dropdown will be populated by javascript on page load --> |
| </div> |
| </div></div> |
| |
| <div class="navbar-item"> |
| |
| <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i> |
| <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i> |
| <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i> |
| </button></div> |
| |
| <div class="navbar-item"><ul class="navbar-icon-links" |
| aria-label="Icon Links"> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://github.com/apache/arrow" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">GitHub</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://www.linkedin.com/company/apache-arrow/" title="LinkedIn" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">LinkedIn</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://bsky.app/profile/arrow.apache.org" title="BlueSky" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-bluesky fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">BlueSky</span></a> |
| </li> |
| </ul></div> |
| |
| </div> |
| |
| </div> |
| |
| |
| <div class="navbar-persistent--mobile"> |
| |
| <button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <span class="search-button__default-text">Search</span> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> |
| </button> |
| </div> |
| |
| |
| |
| <button class="pst-navbar-icon sidebar-toggle secondary-toggle" aria-label="On this page"> |
| <span class="fa-solid fa-outdent"></span> |
| </button> |
| |
| </div> |
| |
| </header> |
| |
| |
| <div class="bd-container"> |
| <div class="bd-container__inner bd-page-width"> |
| |
| |
| |
| <dialog id="pst-primary-sidebar-modal"></dialog> |
| <div id="pst-primary-sidebar" class="bd-sidebar-primary bd-sidebar"> |
| |
| |
| |
| <div class="sidebar-header-items sidebar-primary__section"> |
| |
| |
| <div class="sidebar-header-items__center"> |
| |
| |
| |
| <div class="navbar-item"> |
| <nav> |
| <ul class="bd-navbar-elements navbar-nav"> |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../format/index.html"> |
| Specifications |
| </a> |
| </li> |
| |
| |
| <li class="nav-item current active"> |
| <a class="nav-link nav-internal" href="index.html"> |
| Development |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../implementations.html"> |
| Implementations |
| </a> |
| </li> |
| |
| </ul> |
| </nav></div> |
| |
| |
| </div> |
| |
| |
| |
| <div class="sidebar-header-items__end"> |
| |
| <div class="navbar-item"><div class="kapa-ai-bot"> |
| <script |
| async |
| src="https://widget.kapa.ai/kapa-widget.bundle.js" |
| data-website-id="9db461d5-ac77-4b3f-a5c5-75efa78339d2" |
| data-project-name="Apache Arrow" |
| data-project-color="#000000" |
| data-project-logo="https://arrow.apache.org/img/arrow-logo_chevrons_white-txt_black-bg.png" |
| data-modal-disclaimer="This is a custom LLM with access to all [Arrow documentation](https://arrow.apache.org/docs/). Please include the language you are using in your question, e.g., Python, C++, Java, R, etc." |
| data-consent-required="true" |
| data-user-analytics-cookie-enabled="false" |
| data-consent-screen-disclaimer="By clicking "I agree, let's chat", you consent to the use of the AI assistant in accordance with kapa.ai's [Privacy Policy](https://www.kapa.ai/content/privacy-policy). This service uses reCAPTCHA, which requires your consent to Google's [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms). By proceeding, you explicitly agree to both kapa.ai's and Google's privacy policies." |
| ></script> |
| |
| </div> |
| |
| </div> |
| |
| <div class="navbar-item"> |
| <div class="version-switcher__container dropdown pst-js-only"> |
| <button id="pst-version-switcher-button-3" |
| type="button" |
| class="version-switcher__button btn btn-sm dropdown-toggle" |
| data-bs-toggle="dropdown" |
| aria-haspopup="listbox" |
| aria-controls="pst-version-switcher-list-3" |
| aria-label="Version switcher list" |
| > |
| Choose version <!-- this text may get changed later by javascript --> |
| <span class="caret"></span> |
| </button> |
| <div id="pst-version-switcher-list-3" |
| class="version-switcher__menu dropdown-menu list-group-flush py-0" |
| role="listbox" aria-labelledby="pst-version-switcher-button-3"> |
| <!-- dropdown will be populated by javascript on page load --> |
| </div> |
| </div></div> |
| |
| <div class="navbar-item"> |
| |
| <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i> |
| <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i> |
| <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i> |
| </button></div> |
| |
| <div class="navbar-item"><ul class="navbar-icon-links" |
| aria-label="Icon Links"> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://github.com/apache/arrow" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">GitHub</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://www.linkedin.com/company/apache-arrow/" title="LinkedIn" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">LinkedIn</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://bsky.app/profile/arrow.apache.org" title="BlueSky" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-bluesky fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">BlueSky</span></a> |
| </li> |
| </ul></div> |
| |
| </div> |
| |
| </div> |
| |
| <div class="sidebar-primary-items__start sidebar-primary__section"> |
| <div class="sidebar-primary-item"> |
| <nav class="bd-docs-nav bd-links" |
| aria-label="Section Navigation"> |
| <p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p> |
| <div class="bd-toc-item navbar-nav"><ul class="current nav bd-sidenav"> |
| <li class="toctree-l1"><a class="reference internal" href="bug_reports.html">Bug reports and feature requests</a></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="guide/index.html">New Contributor’s Guide</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="guide/architectural_overview.html">Architectural Overview</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="guide/communication.html">Communication</a></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="guide/step_by_step/index.html">Steps in making your first PR</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="guide/step_by_step/set_up.html">Set up</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="guide/step_by_step/building.html">Building the Arrow libraries 🏋🏿♀️</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="guide/step_by_step/finding_issues.html">Finding good first issues 🔎</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="guide/step_by_step/arrow_codebase.html">Working on the Arrow codebase 🧐</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="guide/step_by_step/testing.html">Testing 🧪</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="guide/step_by_step/styling.html">Styling 😎</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="guide/step_by_step/pr_lifecycle.html">Lifecycle of a pull request</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l2"><a class="reference internal" href="guide/documentation.html">Helping with documentation</a></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="guide/tutorials/index.html">Tutorials</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="guide/tutorials/python_tutorial.html">Python tutorial</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="guide/tutorials/r_tutorial.html">R tutorials</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l2"><a class="reference internal" href="guide/resources.html">Additional information and resources</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1"><a class="reference internal" href="overview.html">Contributing Overview</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="reviewing.html">Reviewing contributions</a></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="cpp/index.html">C++ Development</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="cpp/building.html">Building Arrow C++</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="cpp/development.html">Development Guidelines</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="cpp/windows.html">Developing on Windows</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="cpp/emscripten.html">Cross compiling for WebAssembly with Emscripten</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="cpp/conventions.html">Conventions</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="cpp/fuzzing.html">Fuzzing Arrow C++</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="cpp/compute.html">Developing Arrow C++ Compute</a></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="cpp/acero.html">Developing Acero</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="cpp/acero/swiss_table.html">Swiss Table</a></li> |
| </ul> |
| </details></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="java/index.html">Java Development</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="java/building.html">Building Arrow Java</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="java/development.html">Development Guidelines</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="python/index.html">Python Development</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="python/building.html">Building PyArrow</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="python/development.html">Developing PyArrow</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="continuous_integration/index.html">Continuous Integration</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="continuous_integration/overview.html">Continuous Integration</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="continuous_integration/docker.html">Running Docker Builds</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="continuous_integration/archery.html">Daily Development using Archery</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="continuous_integration/crossbow.html">Packaging and Testing with Crossbow</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1"><a class="reference internal" href="benchmarks.html">Benchmarks</a></li> |
| <li class="toctree-l1 current active"><a class="current reference internal" href="#">Building the Documentation</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="release.html">Release Management Guide</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="release_verification.html">Release Verification Process</a></li> |
| </ul> |
| </div> |
| </nav></div> |
| </div> |
| |
| |
| <div class="sidebar-primary-items__end sidebar-primary__section"> |
| <div class="sidebar-primary-item"> |
| <div id="ethical-ad-placement" |
| class="flat" |
| data-ea-publisher="readthedocs" |
| data-ea-type="readthedocs-sidebar" |
| data-ea-manual="true"> |
| </div></div> |
| </div> |
| |
| |
| </div> |
| |
| <main id="main-content" class="bd-main" role="main"> |
| |
| |
| <div class="bd-content"> |
| <div class="bd-article-container"> |
| |
| <div class="bd-header-article d-print-none"> |
| <div class="header-article-items header-article__inner"> |
| |
| <div class="header-article-items__start"> |
| |
| <div class="header-article-item"> |
| |
| <nav aria-label="Breadcrumb" class="d-print-none"> |
| <ul class="bd-breadcrumbs"> |
| |
| <li class="breadcrumb-item breadcrumb-home"> |
| <a href="../index.html" class="nav-link" aria-label="Home"> |
| <i class="fa-solid fa-home"></i> |
| </a> |
| </li> |
| |
| <li class="breadcrumb-item"><a href="index.html" class="nav-link">Development</a></li> |
| |
| <li class="breadcrumb-item active" aria-current="page"><span class="ellipsis">Building the Documentation</span></li> |
| </ul> |
| </nav> |
| </div> |
| |
| </div> |
| |
| |
| </div> |
| </div> |
| |
| |
| |
| |
| <div id="searchbox"></div> |
| <article class="bd-article"> |
| |
| <section id="building-the-documentation"> |
| <span id="building-docs"></span><h1>Building the Documentation<a class="headerlink" href="#building-the-documentation" title="Link to this heading">#</a></h1> |
| <section id="prerequisites"> |
| <h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Link to this heading">#</a></h2> |
| <p>The documentation build process uses <a class="reference external" href="http://www.doxygen.nl/">Doxygen</a> and |
| <a class="reference external" href="http://www.sphinx-doc.org/">Sphinx</a> along with a few extensions.</p> |
| <p>If you’re using Conda, the required software can be installed in a single line:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>conda<span class="w"> </span>install<span class="w"> </span>-c<span class="w"> </span>conda-forge<span class="w"> </span>--file<span class="o">=</span>arrow/ci/conda_env_sphinx.txt |
| </pre></div> |
| </div> |
| <p>Otherwise, you’ll first need to install <a class="reference external" href="http://www.doxygen.nl/">Doxygen</a> |
| yourself (for example from your distribution’s official repositories, if |
| using Linux). Then you can install the Python-based requirements with the |
| following command:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>arrow/docs/requirements.txt |
| </pre></div> |
| </div> |
| </section> |
| <section id="building"> |
| <h2>Building<a class="headerlink" href="#building" title="Link to this heading">#</a></h2> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>If you are building the documentation on Windows, not all sections |
| may build properly.</p> |
| </div> |
| <p>These two steps are mandatory and must be executed in order.</p> |
| <ol class="arabic"> |
| <li><p>Process the C++ API using Doxygen</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/cpp/apidoc |
| doxygen |
| <span class="nb">popd</span> |
| </pre></div> |
| </div> |
| </li> |
| <li><p>Build the complete documentation using Sphinx.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>If you are working on the Python bindings documentation then |
| this step requires that <code class="docutils literal notranslate"><span class="pre">pyarrow</span></code> library is installed |
| in your python environment. One way to accomplish |
| this is to follow the build instructions at <a class="reference internal" href="python/index.html#python-development"><span class="std std-ref">Python Development</span></a> |
| and then run <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">install</span></code> in arrow/python |
| (it is best to do this in a dedicated conda/virtual environment).</p> |
| <p>You can still build the documentation without <code class="docutils literal notranslate"><span class="pre">pyarrow</span></code> |
| library installed but note that Python part of the documentation |
| will be missing from the <code class="docutils literal notranslate"><span class="pre">_build/html</span></code> file structure and the |
| links to the Python documentation will get broken.</p> |
| </div> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/docs |
| make<span class="w"> </span>html |
| <span class="nb">popd</span> |
| </pre></div> |
| </div> |
| </li> |
| </ol> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>Note that building the documentation may fail if your build of pyarrow is |
| not sufficiently comprehensive. Portions of the Python API documentation |
| will also not build without CUDA support having been built.</p> |
| </div> |
| <p>After these steps are completed, the documentation is rendered in HTML |
| format in <code class="docutils literal notranslate"><span class="pre">arrow/docs/_build/html</span></code>. In particular, you can point your browser |
| at <code class="docutils literal notranslate"><span class="pre">arrow/docs/_build/html/index.html</span></code> to read the docs and review any changes |
| you made.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>If you are working on the Python documentation and are building the documentation |
| with <code class="docutils literal notranslate"><span class="pre">pyarrow</span></code> build from source on macOS Monterey, the Python section of the |
| documentation might not be included in the <code class="docutils literal notranslate"><span class="pre">_build/html</span></code>. In this case, try |
| installing <code class="docutils literal notranslate"><span class="pre">pyarrow</span></code> in non-editable mode first before running the <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">html</span></code> |
| command.</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/docs |
| python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>../python<span class="w"> </span>--quiet |
| make<span class="w"> </span>html |
| <span class="nb">popd</span> |
| </pre></div> |
| </div> |
| </div> |
| </section> |
| <section id="building-with-docker"> |
| <h2>Building with Docker<a class="headerlink" href="#building-with-docker" title="Link to this heading">#</a></h2> |
| <p>You can use <a class="reference internal" href="continuous_integration/archery.html#archery"><span class="std std-ref">Archery</span></a> to build the documentation within a |
| Docker container.</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>archery<span class="w"> </span>docker<span class="w"> </span>run<span class="w"> </span>-v<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">PWD</span><span class="si">}</span><span class="s2">/docs:/build/docs"</span><span class="w"> </span>debian-docs |
| </pre></div> |
| </div> |
| <p>The final output is located under the <code class="docutils literal notranslate"><span class="pre">${PWD}/docs</span></code> directory.</p> |
| <div class="admonition seealso"> |
| <p class="admonition-title">See also</p> |
| <p><a class="reference internal" href="continuous_integration/docker.html#docker-builds"><span class="std std-ref">Running Docker Builds</span></a>.</p> |
| </div> |
| </section> |
| <section id="building-a-docs-preview-in-a-pull-request"> |
| <span id="building-docs-pr-preview"></span><h2>Building a docs preview in a Pull Request<a class="headerlink" href="#building-a-docs-preview-in-a-pull-request" title="Link to this heading">#</a></h2> |
| <p>You can build and preview the documentation within a GitHub pull request you are working on.</p> |
| <p>To do so, post the comment <code class="docutils literal notranslate"><span class="pre">@github-actions</span> <span class="pre">crossbow</span> <span class="pre">submit</span> <span class="pre">preview-docs</span></code> |
| to the pull request. The rendered documentation will then be available within the |
| GitHub Actions response, where you need to click on the Crossbow build badge:</p> |
| <figure class="align-default" id="id2"> |
| <a class="reference internal image-reference" href="../_images/docs_preview_1.jpeg"><img alt="GitHub Actions response with the crossbow build status." src="../_images/docs_preview_1.jpeg" style="width: 701.4px; height: 212.1px;" /> |
| </a> |
| <figcaption> |
| <p><span class="caption-text">Crossbow build status</span><a class="headerlink" href="#id2" title="Link to this image">#</a></p> |
| </figcaption> |
| </figure> |
| <p>and then in the summary of the workflow you can find the link to the Docs Preview |
| summary at the bottom of the page:</p> |
| <figure class="align-default" id="id3"> |
| <a class="reference internal image-reference" href="../_images/docs_preview_2.jpeg"><img alt="Crossbow workflow page with the Docs Preview summary section." src="../_images/docs_preview_2.jpeg" style="width: 835.8px; height: 521.5px;" /> |
| </a> |
| <figcaption> |
| <p><span class="caption-text">Docs Preview summary section</span><a class="headerlink" href="#id3" title="Link to this image">#</a></p> |
| </figcaption> |
| </figure> |
| </section> |
| <section id="building-for-dev-purposes"> |
| <h2>Building for dev purposes<a class="headerlink" href="#building-for-dev-purposes" title="Link to this heading">#</a></h2> |
| <section id="building-subsections"> |
| <h3>Building subsections<a class="headerlink" href="#building-subsections" title="Link to this heading">#</a></h3> |
| <p>To make it easier for developers to update parts of the documentation, one can |
| build only a subset of it. You can build:</p> |
| <ul> |
| <li><p>Specifications and protocol section (<code class="docutils literal notranslate"><span class="pre">docs/source/format</span></code>) with:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/docs |
| make<span class="w"> </span>format |
| <span class="nb">popd</span> |
| </pre></div> |
| </div> |
| <p>Rendered HTML format can be found in <code class="docutils literal notranslate"><span class="pre">arrow/docs/_build/html/format</span></code>.</p> |
| </li> |
| <li><p>Development section (<code class="docutils literal notranslate"><span class="pre">docs/source/developers</span></code>) with:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/docs |
| make<span class="w"> </span>dev |
| <span class="nb">popd</span> |
| </pre></div> |
| </div> |
| <p>Rendered HTML format can be found in <code class="docutils literal notranslate"><span class="pre">arrow/docs/_build/html/developers</span></code>.</p> |
| </li> |
| <li><p>C++ section (<code class="docutils literal notranslate"><span class="pre">docs/source/cpp</span></code>) with:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/docs |
| make<span class="w"> </span>cpp |
| <span class="nb">popd</span> |
| </pre></div> |
| </div> |
| <p>Rendered HTML format can be found in <code class="docutils literal notranslate"><span class="pre">arrow/docs/_build/html/cpp</span></code>.</p> |
| </li> |
| <li><p>Python section (<code class="docutils literal notranslate"><span class="pre">docs/source/python</span></code>) with:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/docs |
| make<span class="w"> </span>python |
| <span class="nb">popd</span> |
| </pre></div> |
| </div> |
| <p>Rendered HTML format can be found in <code class="docutils literal notranslate"><span class="pre">arrow/docs/_build/html/python</span></code>.</p> |
| </li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>When building only a part of the documentation the links will get broken!</p> |
| <p>For this reason building only a subset of the documentation should only be |
| used in the initial work as it makes the building faster and easier.</p> |
| <p>To check for the correctness of the documentation overall one should |
| build the whole documentation with <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">html</span></code> or use |
| <a class="reference internal" href="#building-docs-pr-preview"><span class="std std-ref">GitHub Actions</span></a>.</p> |
| </div> |
| </section> |
| <section id="building-live"> |
| <h3>Building live<a class="headerlink" href="#building-live" title="Link to this heading">#</a></h3> |
| <p>You can also build the documentation (or a part of it) live. This means the |
| changes saved will automatically trigger the documentation to be rebuilt.</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">pushd</span><span class="w"> </span>arrow/docs |
| make<span class="w"> </span>html-live |
| </pre></div> |
| </div> |
| <p>The same way one could use <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">format-live</span></code>, <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">dev-live</span></code>, <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">cpp-live</span></code> |
| or <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">python-live</span></code> to auto-build part of the documentation.</p> |
| </section> |
| <section id="building-a-single-directory-for-dev-purposes-without-all-the-pre-requisites"> |
| <h3>Building a single directory for dev purposes without all the pre-requisites<a class="headerlink" href="#building-a-single-directory-for-dev-purposes-without-all-the-pre-requisites" title="Link to this heading">#</a></h3> |
| <p>You can build documentation in a single directory without needing to install |
| all of the pre-requisites by installing sphinx, setting up a temporary |
| index in the directory you want to build and then building that directory.</p> |
| <p>The example below shows how to do this in the <code class="docutils literal notranslate"><span class="pre">arrow/docs/source/developers</span></code> directory.</p> |
| <p>Install <code class="docutils literal notranslate"><span class="pre">sphinx</span></code>:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>pip<span class="w"> </span>install<span class="w"> </span>sphinx |
| </pre></div> |
| </div> |
| <p>Navigate to the <code class="docutils literal notranslate"><span class="pre">arrow/docs</span></code> directory:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>arrow/docs |
| </pre></div> |
| </div> |
| <p>Create an temporary index file <code class="docutils literal notranslate"><span class="pre">temp_index.rst</span></code> file in the target directory:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span><span class="s1">$'.. toctree::\n\t:glob:\n\n\t*'</span><span class="w"> </span>><span class="w"> </span>./source/developers/temp_index.rst |
| </pre></div> |
| </div> |
| <p>Build the docs in the target directory:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>sphinx-build<span class="w"> </span>./source/developers<span class="w"> </span>./source/developers/_build<span class="w"> </span>-c<span class="w"> </span>./source<span class="w"> </span>-D<span class="w"> </span><span class="nv">master_doc</span><span class="o">=</span>temp_index |
| </pre></div> |
| </div> |
| <p>This builds everything in the target directory to a folder inside of it |
| called <code class="docutils literal notranslate"><span class="pre">_build</span></code> using the config file in the <code class="docutils literal notranslate"><span class="pre">source</span></code> directory.</p> |
| <p>Once you have verified the HTML documents, you can remove temporary index file:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>rm<span class="w"> </span>./source/developers/temp_index.rst |
| </pre></div> |
| </div> |
| </section> |
| </section> |
| </section> |
| |
| |
| </article> |
| |
| |
| |
| |
| |
| <footer class="prev-next-footer d-print-none"> |
| |
| <div class="prev-next-area"> |
| <a class="left-prev" |
| href="benchmarks.html" |
| title="previous page"> |
| <i class="fa-solid fa-angle-left"></i> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">previous</p> |
| <p class="prev-next-title">Benchmarks</p> |
| </div> |
| </a> |
| <a class="right-next" |
| href="release.html" |
| title="next page"> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">next</p> |
| <p class="prev-next-title">Release Management Guide</p> |
| </div> |
| <i class="fa-solid fa-angle-right"></i> |
| </a> |
| </div> |
| </footer> |
| |
| </div> |
| |
| |
| |
| <dialog id="pst-secondary-sidebar-modal"></dialog> |
| <div id="pst-secondary-sidebar" class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner"> |
| |
| |
| <div class="sidebar-secondary-item"> |
| <div |
| id="pst-page-navigation-heading-2" |
| class="page-toc tocsection onthispage"> |
| <i class="fa-solid fa-list"></i> On this page |
| </div> |
| <nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2"> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#prerequisites">Prerequisites</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#building">Building</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#building-with-docker">Building with Docker</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#building-a-docs-preview-in-a-pull-request">Building a docs preview in a Pull Request</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#building-for-dev-purposes">Building for dev purposes</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-subsections">Building subsections</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-live">Building live</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-a-single-directory-for-dev-purposes-without-all-the-pre-requisites">Building a single directory for dev purposes without all the pre-requisites</a></li> |
| </ul> |
| </li> |
| </ul> |
| </nav></div> |
| |
| <div class="sidebar-secondary-item"> |
| |
| |
| <div class="tocsection editthispage"> |
| <a href="https://github.com/apache/arrow/edit/main/docs/source/developers/documentation.rst"> |
| <i class="fa-solid fa-pencil"></i> |
| |
| |
| |
| Edit on GitHub |
| |
| |
| </a> |
| </div> |
| </div> |
| |
| </div></div> |
| |
| |
| </div> |
| <footer class="bd-footer-content"> |
| |
| </footer> |
| |
| </main> |
| </div> |
| </div> |
| |
| <!-- Scripts loaded after <body> so the DOM is not blocked --> |
| <script defer src="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf"></script> |
| <script defer src="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf"></script> |
| |
| <footer class="bd-footer"> |
| <div class="bd-footer__inner bd-page-width"> |
| |
| <div class="footer-items__start"> |
| |
| <div class="footer-item"> |
| |
| <p class="copyright"> |
| |
| © Copyright 2016-2025 Apache Software Foundation. |
| Apache Arrow, Arrow, Apache, the Apache logo, and the Apache Arrow project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. |
| <br/> |
| |
| </p> |
| </div> |
| |
| <div class="footer-item"> |
| |
| <p class="sphinx-version"> |
| Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3. |
| <br/> |
| </p> |
| </div> |
| |
| </div> |
| |
| |
| |
| <div class="footer-items__end"> |
| |
| <div class="footer-item"> |
| <p class="theme-version"> |
| <!-- # L10n: Setting the PST URL as an argument as this does not need to be localized --> |
| Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.16.1. |
| </p></div> |
| |
| </div> |
| |
| </div> |
| |
| </footer> |
| </body> |
| </html> |