PageSourceSearch

https://arrowair.com/docs/guides/development-guide

html arrowair.com collected 2026-10-04 18:35:10 UTC 57,096 bytes, 226 lines download raw bytes

1<!doctype html>
2<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/development-guide" data-has-hydrated="false">
3<head>
4<meta charset="UTF-8">
5<meta name="generator" content="Docusaurus v3.10.2">
6<title data-rh="true">Development Guide | Arrow</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://arrowair.com/docs/guides/development-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Development Guide | Arrow"><meta data-rh="true" name="description" content="Technical guidelines for contributing to Arrow&#x27;s GitHub repositories — Git workflow, commit signing, and build tooling."><meta data-rh="true" property="og:description" content="Technical guidelines for contributing to Arrow&#x27;s GitHub repositories — Git workflow, commit signing, and build tooling."><link data-rh="true" rel="icon" href="/img/favicons/favicon.ico"><link data-rh="true" rel="canonical" href="https://arrowair.com/docs/guides/development-guide"><link data-rh="true" rel="alternate" href="https://arrowair.com/docs/guides/development-guide" hreflang="en"><link data-rh="true" rel="alternate" href="https://arrowair.com/docs/guides/development-guide" hreflang="x-default">
6<script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"GUIDES","item":"https://arrowair.com/docs/guides/"},{"@type":"ListItem","position":2,"name":"Development Guide","item":"https://arrowair.com/docs/guides/development-guide"}]}</script>
6<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Arrow RSS Feed">
7<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Arrow Atom Feed">
8
9
10
11
12
13
14
15
16
17
18
19
20<meta name="color-scheme" content="dark light">
21<link rel="icon" type="image/png" sizes="32x32" href="/img/favicons/favicon-32x32.png">
22<link rel="icon" type="image/png" sizes="16x16" href="/img/favicons/favicon-16x16.png">
23<link rel="apple-touch-icon" sizes="180x180" href="/img/favicons/apple-touch-icon.png">
24<link rel="manifest" href="/img/favicons/site.webmanifest">
25<link rel="preconnect" href="https://fonts.googleapis.com">
26<link rel="preconnect" href="https://fonts.gstatic.com"><link rel="stylesheet" href="/assets/css/styles.88190e27.css">
27<script src="/assets/js/runtime~main.788c0c37.js" defer="defer"></script>
vendor: 1 bytes, line 27
27
28<script src="/assets/js/main.473ad93d.js" defer="defer"></script>
28
29</head>
30<body>
31<svg style="display: none;"><defs>
32<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
33</defs></svg>
34<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script>
34<div id="__docusaurus"><link rel="preload" as="image" href="/img/brand/wordmark_gray.svg"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="stickyHeader_AmCV"><nav class="navbar_KHb6"><div class="navbarInner_Kx4A"><button class="iconButton_iL0k menuToggle_PN10" type="button" aria-label="Open navigation menu"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg></button><a class="logo_I8eN" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="120" height="36" viewBox="0 0 657.38 193.42"><path fill="currentColor" d="M162.9,120.1l-50.36-11.17-31.09,84.49-31.09-84.49L0,120.1,81.45,0l81.45,120.1Z"></path><path fill="currentColor" d="M183.1,151.64l41.23-106.46,25.25-3.68,43.27,110.14h-28.72l-6.99-20.98-39.39,1.87-6.37,19.12h-28.28ZM225.07,110.59l24.96-1.57-12.27-36.4-12.69,37.97h0Z"></path><path fill="currentColor" d="M359.06,68.72v28.28c-1.78-.65-3.68-1.1-5.69-1.3-.83-.09-1.69-.12-2.58-.12-6.08,0-11.29,2.05-15,5.57-3.79,3.59-7.23,8.68-7.23,14.73v35.8h-25.46v-81.36l25.04-3.97v12.03c7.29-6.19,16.51-9.9,26.56-9.9,1.48,0,2.93.09,4.36.24Z"></path><path fill="currentColor" d="M426.37,68.72v28.28c-1.78-.65-3.68-1.1-5.69-1.3-.83-.09-1.69-.12-2.58-.12-6.08,0-11.29,2.05-15,5.57-3.79,3.59-7.23,8.68-7.23,14.73v35.8h-25.46v-81.36l25.04-3.97v12.03c7.29-6.19,16.51-9.9,26.56-9.9,1.48,0,2.93.09,4.36.24Z"></path><path fill="currentColor" d="M578.54,81.37l19.21-2.52,12.51,35.6,14.46-47.16,32.66-4.53-32.31,89.15h-22.58l-14.23-37.11-10.97,36.78h-22.35l-28.31-79.85,29.05-3.82,11.91,45.97,11-32.54h-.06v.03h0Z"></path><path fill="currentColor" d="M479.22,151.64c-25.05,0-45.34-19.09-45.34-42.65s20.29-42.65,45.34-42.65,45.34,19.09,45.34,42.65-19.99,42.65-45.34,42.65ZM479.22,129.28c11.64,0,19.69-8.35,19.69-20.29s-8.05-20.29-19.69-20.29-19.69,8.65-19.69,20.29,8.35,20.29,19.69,20.29h0Z"></path></svg><span class="logoLabel_mpYX">Docs</span></a><div class="navActions_egR1"><a href="https://www.arrowair.com" class="iconButton_iL0k iconButtonLabeled_gTNb desktopOnly_Gnhi" aria-label="Homepage"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" aria-hidden="true"><path fill-rule="evenodd" fill="currentColor" d="M21 21V8.75L12 2L3 8.75V21H21Z M9 21V16C9 14.34 10.34 13 12 13C13.66 13 15 14.34 15 16V21Z"></path><path d="M21 21V8.75L12 2L3 8.75V21H21Z" stroke="currentColor" stroke-width="1.5" fill="none"></path><path d="M9 21V16C9 14.3431 10.3431 13 12 13C13.6569 13 15 14.3431 15 16V21" stroke="currentColor" stroke-width="1.5" fill="none"></path></svg><span class="iconButtonLabel_nUFh">Homepage</span></a><a class="iconButton_iL0k iconButtonLabeled_gTNb desktopOnly_Gnhi" aria-label="Docs Home" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4 3h2v18H4zm14 0H7v18h11c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 6h-6V8h6zm0-2h-6V6h6z"></path></svg><span class="iconButtonLabel_nUFh">Docs Home</span></a><div class="linksDropdown_HRzz"><button class="mainSiteLink__KGw" type="button" aria-label="Quick links" aria-expanded="false">Quick Links<span class="chevronIcon_fgXj"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button></div><div class="searchWrapper_S1x2"><div class="navbar__search searchBarContainer_NW3z" dir="ltr"><svg aria-hidden="true" class="searchIcon_T3tP" focusable="false" viewBox="0 0 16 16"><path fill="currentColor" d="M6.02945 10.20327a4.17382 4.17382 0 1 1 4.17382-4.17382 4.15609 4.15609 0 0 1-4.17382 4.17382Zm9.69195 4.2199-4.8225-4.82338A5.88021 5.88021 0 0 0 12.058 6.02856 6.00467 6.00467 0 1 0 9.59979 10.8989l4.82338 4.82338a.89729.89729 0 0 0 1.29912 0 .89749.89749 0 0 0-.00087-1.29909Z"></path></svg><input placeholder="Search" aria-label="Search" class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div>
34<div class="tooltipWrapper_tChO desktopOnly_Gnhi"><a href="https://github.com/Arrow-air" target="_blank" rel="noopener noreferrer" class="iconButton_iL0k" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"><path fill="currentColor" d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2"></path></svg></a><span class="tooltip_i7wI">GitHub</span></div><div class="tooltipWrapper_tChO desktopOnly_Gnhi"><a href="https://discord.com/invite/arrow" target="_blank" rel="noopener noreferrer" class="iconButton_iL0k" aria-label="Discord"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"><path fill="currentColor" d="M19.27 5.33C17.94 4.71 16.5 4.26 15 4a.1.1 0 0 0-.07.03c-.18.33-.39.76-.53 1.09a16.1 16.1 0 0 0-4.8 0c-.14-.34-.35-.76-.54-1.09c-.01-.02-.04-.03-.07-.03c-1.5.26-2.93.71-4.27 1.33c-.01 0-.02.01-.03.02c-2.72 4.07-3.47 8.03-3.1 11.95c0 .02.01.04.03.05c1.8 1.32 3.53 2.12 5.24 2.65c.03.01.06 0 .07-.02c.4-.55.76-1.13 1.07-1.74c.02-.04 0-.08-.04-.09c-.57-.22-1.11-.48-1.64-.78c-.04-.02-.04-.08-.01-.11c.11-.08.22-.17.33-.25c.02-.02.05-.02.07-.01c3.44 1.57 7.15 1.57 10.55 0c.02-.01.05-.01.07.01c.11.09.22.17.33.26c.04.03.04.09-.01.11c-.52.31-1.07.56-1.64.78c-.04.01-.05.06-.04.09c.32.61.68 1.19 1.07 1.74c.03.01.06.02.09.01c1.72-.53 3.45-1.33 5.25-2.65c.02-.01.03-.03.03-.05c.44-4.53-.73-8.46-3.1-11.95c-.01-.01-.02-.02-.04-.02M8.52 14.91c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.84 2.12-1.89 2.12m6.97 0c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.83 2.12-1.89 2.12"></path></svg></a><span class="tooltip_i7wI">Discord</span></div><div class="mobileOnly_S9gA"><div class="linksDropdown_HRzz"><button class="iconButton_iL0k" type="button" aria-label="Community links"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><circle cx="5" cy="12" r="2"></circle><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle></svg></button></div></div><div class="themeToggle_hdnQ"><button class="iconButton_iL0k" type="button" aria-label="Switch to dark mode"><span class="themeIconWrapper_jerN"><span class="themeIcon__Pao sunIcon_sr4u"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 387c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4v-46.2c0-8.5-6.9-15.4-15.4-15.4z" fill="currentColor"></path><path d="M256 48c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4V63.4c0-8.5-6.9-15.4-15.4-15.4z" fill="currentColor"></path><path d="M125 256c0-8.5-6.9-15.4-15.4-15.4H63.4c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4z" fill="currentColor"></path><path d="M448.6 240.6h-46.2c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4s-6.9-15.4-15.4-15.4z" fill="currentColor"></path><path d="M152.5 344.1c-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5l32.7-32.7c6-6 6-15.8 0-21.8-2.9-2.9-6.8-4.5-10.9-4.5z" fill="currentColor"></path><path d="M359.5 167.9c4.1 0 8-1.6 10.9-4.5l32.7-32.7c2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5z" fill="currentColor"></path><path d="M130.7 108.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-2.9 2.9-4.5 6.8-4.5 10.9 0 4.1 1.6 8 4.5 10.9l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7z" fill="currentColor"></path><path d="M370.4 348.6c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-6 6-6 15.8 0 21.8l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7z" fill="currentColor"></path><path d="M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96z" fill="currentColor"></path></svg></span><span class="themeIcon__Pao moonIcon_CFJP"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" aria-hidden="true">
34<path fill="currentColor" d="M11.38 2.019a7.5 7.5 0 1 0 10.6 10.6C21.662 17.854 17.316 22 12.001 22C6.477 22 2 17.523 2 12c0-5.315 4.146-9.661 9.38-9.981"></path></svg></span></span></button><span class="tooltip_i7wI">Toggle theme</span></div></div></div></nav><nav class="subNav_JZsl"><div class="subNavInner_DbWH"><a class="subNavTab_WdLV subNavTabActive_wxWh" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" aria-hidden="true" class="smallIcon_p1yJ"><path fill-rule="evenodd" fill="currentColor" d="M20 21V8.75L12 2L4 8.75V21H20Z M8 21V16C8 13.79 9.79 12 12 12C14.21 12 16 13.79 16 16V21Z"></path><path d="M8 21V16C8 13.79 9.79 12 12 12C14.21 12 16 13.79 16 16V21" stroke="currentColor" stroke-width="2" fill="none"></path><path d="M20 21V8.75L12 2L4 8.75V21H20Z" stroke="currentColor" stroke-width="2" fill="none"></path></svg><span>HOME</span></a><a class="subNavTab_WdLV" href="/quiver"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" aria-hidden="true" class="smallIcon_p1yJ"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 10h4v4h-4zm0 0L6.5 6.5M9.96 6A3.5 3.5 0 1 0 6 9.96m8 .04l3.5-3.5m.5 3.46A3.5 3.5 0 1 0 14.04 6M14 14l3.5 3.5m-3.46.5A3.5 3.5 0 1 0 18 14.04M10 14l-3.5 3.5M6 14.04A3.5 3.5 0 1 0 9.96 18"></path></svg><span>Quiver</span></a><a class="subNavTab_WdLV" href="/spearhead"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 17 16.75" aria-hidden="true" class="smallIcon_p1yJ"><title>spearhead-icon-svg</title><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"><path d="M6.75,9.36l-6,.89v-1.57c0-.41.25-.78.63-.93l5.37-2.15"></path><path d="M10.25,9.36l6,.89v-1.57c0-.41-.25-.78-.63-.93l-5.37-2.15"></path><path d="M6.75,2.5v3.71c0,.52.04,1.04.12,1.56l.47,2.64c.09.57.58.99,1.16.99h0c.58,0,1.07-.42,1.16-.99l.47-2.64c.08-.52.12-1.04.12-1.56v-3.71c0-.97-.78-1.75-1.75-1.75h0c-.97,0-1.75.78-1.75,1.75Z"></path><path d="M4.66 13.64H12.35V16H4.66z" fill="currentColor"></path><path d="M4.66 13.64L4.66 9.75"></path><path d="M12.34 13.64L12.34 9.75"></path></g></svg><span>Spearhead</span></a><a class="subNavTab_WdLV" href="/caribou"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" aria-hidden="true" class="smallIcon_p1yJ"><title>box-3</title><g fill="none" stroke="currentColor" stroke-width="2"><path d="M6.45084 4.76019L17.8905 11"></path><path d="M13 14V22"></path><path d="M22 8.5L13 14L2 8"></path><path d="M22 8V16.5L13 22L2 16V7.5L11 2L22 8Z" stroke-linecap="round"></path></g></svg><span>Caribou</span></a><a class="subNavTab_WdLV" href="/bounty"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" aria-hidden="true" class="smallIcon_p1yJ"><title>sack-coins</title><g fill="currentColor"><path d="M13 18H21V22H13V18Z" stroke="currentColor" stroke-width="2" fill="none"></path><path d="M15 14H23V18H15V14Z" stroke="currentColor" stroke-width="2" fill="none"></path><path d="M13.8545 7.47656L15.6797 10.4814L15.9941 11H13.6543L12.4365 8.99512H11.5615L10.0186 11.5215L9.49707 12.375L7.79004 11.333L8.31152 10.4795L10.1465 7.47363L10.4385 6.99512H13.5625L13.8545 7.47656Z" fill="currentColor" stroke="none"></path><path d="M17.4189 1.60449L17.8486 2.60449L18.0439 3.05762L17.8037 3.48828L16.4238 5.9541C18.6379 7.0012 20.4182 8.72994 21.333 11H19.125C18.2132 9.3457 16.6403 8.08809 14.6699 7.3916L13.5508 6.99707L14.1299 5.96094L15.7852 3H8.21582L9.875 5.95996L10.4561 6.99609L9.33594 7.3916C6.1681 8.51128 4 11.0767 4 14.5C4 16.5381 4.75813 18.0442 5.96777 19.0938C6.98483 19.9761 8.3706 20.5749 10 20.8418V22.8652C7.95467 22.5813 6.0852 21.8434 4.65723 20.6045C2.99215 19.1598 2 17.0942 2 14.5C2 10.5168 4.31801 7.49921 7.58008 5.95508L6.19727 3.48926L5.95605 3.05859L6.15137 2.60449L6.58105 1.60449L6.8418 1H17.1582L17.4189 1.60449Z" fill="currentColor" stroke="none"></path></g></svg><span>Bounty Board</span></a></div></nav></div><div class="hiddenNavbar_CUTU"><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a href="/" target="_blank" rel="noopener noreferrer" class="navbar__brand"><div class="navbar__logo"><img src="/img/brand/wordmark_gray.svg" alt="Arrow Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/brand/wordmark_gray.svg" alt="Arrow Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbarSearchContainer_Bca1"><div class="navbar__search searchBarContainer_NW3z" dir="ltr"><svg aria-hidden="true" class="searchIcon_T3tP" focusable="false" viewBox="0 0 16 16">
34<path fill="currentColor" d="M6.02945 10.20327a4.17382 4.17382 0 1 1 4.17382-4.17382 4.15609 4.15609 0 0 1-4.17382 4.17382Zm9.69195 4.2199-4.8225-4.82338A5.88021 5.88021 0 0 0 12.058 6.02856 6.00467 6.00467 0 1 0 9.59979 10.8989l4.82338 4.82338a.89729.89729 0 0 0 1.29912 0 .89749.89749 0 0 0-.00087-1.29909Z"></path></svg><input placeholder="Search" aria-label="Search" class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div><a href="https://github.com/Arrow-air" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link navbar-icon navbar-icon--github" aria-label="GitHub"></a><a href="https://discord.com/invite/arrow" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link navbar-icon navbar-icon--discord" aria-label="Discord"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav></div><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="backToTop_Erfx" type="button"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 15l-6-6-6 6"></path></svg></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/"><span class="categoryLinkLabel_W154">OVERVIEW</span></a><button aria-label="Collapse sidebar category &#x27;OVERVIEW&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/overview/about-arrow"><span class="linkLabel_WmDU">What is Arrow?</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/overview/getting-started"><span class="linkLabel_WmDU">Getting Started</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/overview/our-projects"><span class="linkLabel_WmDU">Our Projects</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/contributing/"><span class="categoryLinkLabel_W154">CONTRIBUTING</span></a><button aria-label="Collapse sidebar category &#x27;CONTRIBUTING&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/intro"><span class="linkLabel_WmDU">Getting Started</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/how-we-work"><span class="linkLabel_WmDU">How We Work</span></a></li><span data-sidebar-icon="edit"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/sign-cla"><span class="linkLabel_WmDU">Sign the CLA</span></a></li></span><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/grants-bounties"><span class="linkLabel_WmDU">Grants &amp; Bounties</span></a></li><div data-sidebar-icon="users" data-sidebar-category="true"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex="0" href="/docs/contributing/contributors/"><span class="categoryLinkLabel_W154">Meet Our Contributors</span></a><button aria-label="Expand sidebar category &#x27;Meet Our Contributors&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></div></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/community/"><span class="categoryLinkLabel_W154">COMMUNITY</span></a><button aria-label="Collapse sidebar category &#x27;COMMUNITY&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/"><span class="linkLabel_WmDU">Arrow Community</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/contributor-map"><span class="linkLabel_WmDU">Contributor Map</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/disciplines"><span class="linkLabel_WmDU">Disciplines</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/community-values"><span class="linkLabel_WmDU">Culture &amp; Values</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/community-calls"><span class="linkLabel_WmDU">Calls &amp; Events</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/working-async"><span class="linkLabel_WmDU">Working Async</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/growth-marketing"><span class="linkLabel_WmDU">Growth &amp; Marketing</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--active" href="/docs/guides/"><span class="categoryLinkLabel_W154">GUIDES</span></a><button aria-label="Collapse sidebar category &#x27;GUIDES&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/guides/development-guide"><span class="linkLabel_WmDU">Development Guide</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/github-guide"><span class="linkLabel_WmDU">GitHub Guide</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/code-of-conduct"><span class="linkLabel_WmDU">Code of Conduct</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/arrow-brand"><span class="linkLabel_WmDU">Brand Guidelines</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/community/discord-guide"><span class="linkLabel_WmDU">Discord Guide</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/governance/"><span class="categoryLinkLabel_W154">DAO</span></a><button aria-label="Collapse sidebar category &#x27;DAO&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/why-a-dao"><span class="linkLabel_WmDU">Why a DAO?</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/constitution"><span class="linkLabel_WmDU">Constitution</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/arrow-token"><span class="linkLabel_WmDU">ARROW Token</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/legal-structure"><span class="linkLabel_WmDU">Legal Structure</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/active-project-list"><span class="linkLabel_WmDU">Active Projects</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/core/treasury"><span class="linkLabel_WmDU">Treasury</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex="0" href="/docs/governance/aips/"><span class="categoryLinkLabel_W154">AIPs</span></a><button aria-label="Expand sidebar category &#x27;AIPs&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/good-to-know/dao-voting"><span class="linkLabel_WmDU">Voting History</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/governance/good-to-know/submit-proposal"><span class="linkLabel_WmDU">Submitting a Proposal</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/changelog"><span class="linkLabel_WmDU">Changelog</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/docs/reference/dao-forum"><span class="categoryLinkLabel_W154">RESOURCES</span></a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/reference/dao-forum"><span class="linkLabel_WmDU">DAO Forum</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/reference/snapshot"><span class="linkLabel_WmDU">Snapshot</span></a></li><span data-sidebar-icon="book"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/reference/glossary"><span class="linkLabel_WmDU">Glossary</span></a></li></span><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/reference/contracts/"><span class="linkLabel_WmDU">Token Contracts</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a href="https://drive.google.com" target="_blank" rel="noopener noreferrer" class="menu__link menuExternalLink_NmtK" tabindex="0"><span class="linkLabel_WmDU">Google Drive</span><svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/reference/discord"><span class="linkLabel_WmDU">Discord Server</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a href="https://twitter.com" target="_blank" rel="noopener noreferrer" class="menu__link menuExternalLink_NmtK" tabindex="0"><span class="linkLabel_WmDU">Twitter</span><svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="wrapper_VHyj"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/docs/guide
34s/"><span>GUIDES</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Development Guide</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Development Guide</h1><p class="doc-page-description">Technical guidelines for contributing to Arrow&#x27;s GitHub repositories — Git workflow, commit signing, and build tooling.</p></header><p>Technical guidelines for contributing to Arrow&#x27;s GitHub repositories.</p>
35<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="first-steps">First Steps<a href="#first-steps" class="hash-link" aria-label="Direct link to First Steps" title="Direct link to First Steps" translate="no">​</a></h2>
36<ol>
37<li class="">Create a <a href="https://github.com/" target="_blank" rel="noopener noreferrer" class="">GitHub</a> account</li>
38<li class="">Create a <a href="https://discord.com/" target="_blank" rel="noopener noreferrer" class="">Discord</a> account</li>
39<li class="">Sign the <a href="https://www.arrowair.com/docs/contributing/cla" target="_blank" rel="noopener noreferrer" class="">CLA</a></li>
40<li class="">Join the <a href="https://discord.com/invite/arrow" target="_blank" rel="noopener noreferrer" class="">Arrow Discord</a></li>
41<li class="">Set up commit signing (see <a href="#sign-your-commits" class="">Sign Your Commits</a>)</li>
42</ol>
43<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="git-workflow">Git Workflow<a href="#git-workflow" class="hash-link" aria-label="Direct link to Git Workflow" title="Direct link to Git Workflow" translate="no">​</a></h2>
44<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="working-on-a-task">Working on a Task<a href="#working-on-a-task" class="hash-link" aria-label="Direct link to Working on a Task" title="Direct link to Working on a Task" translate="no">​</a></h3>
45<ol>
46<li class="">
47<p><strong>Fork or clone</strong> the target repository</p>
48<ul>
49<li class="">If you&#x27;re not a member of an <a href="https://github.com/orgs/Arrow-air/teams" target="_blank" rel="noopener noreferrer" class="">Arrow GitHub team</a>, work from a fork</li>
50<li class=""><a href="https://docs.github.com/en/get-started/quickstart/fork-a-repo" target="_blank" rel="noopener noreferrer" class="">How to fork a repository</a></li>
51</ul>
52</li>
53<li class="">
54<p><strong>Create a branch</strong> with a descriptive name</p>
55<ul>
56<li class="">Use the format: <code>username/short-description</code></li>
57<li class="">Example: <code>thomasg/fix-landing-gear-docs</code></li>
58</ul>
59</li>
60<li class="">
61<p><strong>Make your changes</strong></p>
62<ul>
63<li class="">Follow our <a class="" href="/docs/guides/style-guides/">Code Style Guides</a></li>
64<li class="">Keep commits focused and well-described</li>
65</ul>
66</li>
67<li class="">
68<p><strong>Sign and push</strong> your commits</p>
69<ul>
70<li class="">All commits must be signed (see <a href="#sign-your-commits" class="">Sign Your Commits</a>)</li>
71<li class=""><code>git commit -S -m &quot;fix: correct motor arm dimensions&quot;</code></li>
72</ul>
73</li>
74</ol>
75<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="pull-requests">Pull Requests<a href="#pull-requests" class="hash-link" aria-label="Direct link to Pull Requests" title="Direct link to Pull Requests" translate="no">​</a></h3>
76<ol>
77<li class="">
78<p><strong>Target the correct branch</strong></p>
79<ul>
80<li class="">Most repos: target <code>develop</code></li>
81<li class="">Website repo: target <code>staging</code></li>
82</ul>
83</li>
84<li class="">
85<p><strong>Confirm the <code>cla-signed</code> label</strong> appears</p>
86<ul>
87<li class="">If you haven&#x27;t signed the <a class="" href="/docs/guides/sign-cla">CLA</a>, the bot will block your PR</li>
88</ul>
89</li>
90<li class="">
91<p><strong>Confirm CI checks pass</strong></p>
92<ul>
93<li class="">Checks vary by repository</li>
94</ul>
95</li>
96<li class="">
97<p><strong>Get approvals</strong></p>
98<ul>
99<li class="">Approvals generally come from <a href="https://github.com/orgs/Arrow-air/teams" target="_blank" rel="noopener noreferrer" class="">Arrow team</a> members</li>
100<li class="">Number of required approvals varies by repo</li>
101</ul>
102</li>
103<li class="">
104<p><strong>Merge!</strong></p>
105</li>
106</ol>
107<p><strong>PR Best Practices:</strong></p>
108<ul>
109<li class="">Keep PRs small and focused — easier to review</li>
110<li class="">Write clear descriptions of what changed and why</li>
111<li class="">One PR per issue/task</li>
112<li class="">If commit history is messy, use &quot;Squash and Merge&quot;</li>
113</ul>
114<hr>
115<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sign-your-commits">
115Sign Your Commits<a href="#sign-your-commits" class="hash-link" aria-label="Direct link to Sign Your Commits" title="Direct link to Sign Your Commits" translate="no">​</a></h2>
116<p>We require signed commits for security and accountability.</p>
117<p><strong>Setup:</strong></p>
118<ol>
119<li class=""><a href="https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key" target="_blank" rel="noopener noreferrer" class="">Generate a GPG key</a></li>
120<li class=""><a href="https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key" target="_blank" rel="noopener noreferrer" class="">Tell Git about your key</a></li>
121<li class=""><a href="https://docs.github.com/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account" target="_blank" rel="noopener noreferrer" class="">Add the key to GitHub</a></li>
122<li class="">Enable signing by default: <code>git config --global commit.gpgsign true</code></li>
123</ol>
124<p>Sign individual commits with <code>-S</code>: <code>git commit -S -m &quot;your message&quot;</code></p>
125<hr>
126<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="commit-messages">Commit Messages<a href="#commit-messages" class="hash-link" aria-label="Direct link to Commit Messages" title="Direct link to Commit Messages" translate="no">​</a></h2>
127<p>We use <a href="https://www.conventionalcommits.org/en/v1.0.0/" target="_blank" rel="noopener noreferrer" class="">conventional commits</a> for automated releases and changelogs.</p>
128<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">&lt;type&gt;[(scope)]: &lt;description&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">[optional body]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">[optional footer]</span><br></div></code></pre></div></div>
129<p><strong>Types:</strong></p>
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185<table><thead><tr><th>Type</th><th>Description</th><th>Release</th></tr></thead><tbody><tr><td><code>fix</code></td><td>Bug fix</td><td>Patch</td></tr><tr><td><code>feat</code></td><td>New feature</td><td>Minor</td></tr><tr><td><code>docs</code></td><td>Documentation only</td><td>Patch</td></tr><tr><td><code>refactor</code></td><td>Code restructuring</td><td>Patch</td></tr><tr><td><code>test</code></td><td>Adding/updating tests</td><td>Patch</td></tr><tr><td><code>build</code></td><td>Build system changes</td><td>Patch</td></tr><tr><td><code>ci</code></td><td>CI configuration</td><td>Patch</td></tr><tr><td><code>perf</code></td><td>Performance improvement</td><td>Patch</td></tr><tr><td><code>style</code></td><td>Code formatting</td><td>Patch</td></tr></tbody></table>
186<p><strong>Breaking changes:</strong> Add <code>!</code> after the type (e.g., <code>feat!: redesign API</code>) for a Major release.</p>
187<p><strong>Guidelines:</strong></p>
188<ul>
189<li class="">Title: max 50 characters, start lowercase, no period</li>
190<li class="">Body: max 72 characters per line</li>
191<li class="">Keep it concise and descriptive</li>
192</ul>
193<hr>
194<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="vs-code-extensions">VS Code Extensions<a href="#vs-code-extensions" class="hash-link" aria-label="Direct link to VS Code Extensions" title="Direct link to VS Code Extensions" translate="no">​</a></h2>
195<p>Recommended extensions for Arrow development:</p>
196<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">
196General<a href="#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h3>
197<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">ext install bierner.github-markdown-preview</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ext install docsmsft.docs-yaml</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ext install stkb.rewrap</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ext install eamodio.gitlens</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ext install ms-vscode-remote.vscode-remote-extensionpack</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ext install tamasfe.even-better-toml</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ext install EditorConfig.EditorConfig</span><br></div></code></pre></div></div>
198<ul>
199<li class=""><strong>GitHub Markdown Preview</strong> — Mermaid diagrams and emoji in preview</li>
200<li class=""><strong>docs-yaml</strong> — YAML intellisense and validation</li>
201<li class=""><strong>Rewrap</strong> — Wrap comments to 80 characters</li>
202<li class=""><strong>GitLens</strong> — Git blame and history on hover</li>
203<li class=""><strong>Remote Development</strong> — SSH development</li>
204<li class=""><strong>Even Better TOML</strong> — Rust config file support</li>
205<li class=""><strong>EditorConfig</strong> — Consistent editor settings</li>
206</ul>
207<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="web-projects">Web Projects<a href="#web-projects" class="hash-link" aria-label="Direct link to Web Projects" title="Direct link to Web Projects" translate="no">​</a></h3>
208<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">ext install esbenp.prettier-vscode</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ext install johnsoncodehk.volar</span><br></div></code></pre></div></div>
209<ul>
210<li class=""><strong>Prettier</strong> — Auto-formatting</li>
211<li class=""><strong>Volar</strong> — Vue.js support</li>
212</ul>
213<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="terraform">Terraform<a href="#terraform" class="hash-link" aria-label="Direct link to Terraform" title="Direct link to Terraform" translate="no">​</a></h3>
214<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">ext install 4ops.terraform</span><br></div></code></pre></div></div>
215<hr>
216<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="build-automation">Build Automation<a href="#build-automation" class="hash-link" aria-label="Direct link to Build Automation" title="Direct link to Build Automation" translate="no">​</a></h2>
217<p>Arrow repos use Makefiles with containerized tooling via <a href="https://ghcr.io/arrow-air/tools/arrow-sanitychecks" target="_blank" rel="noopener noreferrer" class="">arrow-sanitychecks</a>.</p>
218<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">make help      # See all targets</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">make test      # Run all tests/lints</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">make all       # Test, build, and release</span><br></div></code></pre></div></div>
219<p>You don&#x27;t need to install linting tools locally — everything runs in Docker.</p>
220<hr>
221<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="repository-management">Repository Management<a href="#repository-management" class="hash-l
221ink" aria-label="Direct link to Repository Management" title="Direct link to Repository Management" translate="no">​</a></h2>
222<p>Repositories are managed through Terraform. For repo changes, contact @owlot.</p>
223<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="admin-access">Admin Access<a href="#admin-access" class="hash-link" aria-label="Direct link to Admin Access" title="Direct link to Admin Access" translate="no">​</a></h2>
224<p>Elevated platform access is limited. Ping @thomasg or @owlot with what you need.</p></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/guides/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Contribution Guides</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/guides/github-guide"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">GitHub Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#first-steps" class="table-of-contents__link toc-highlight">First Steps</a></li><li><a href="#git-workflow" class="table-of-contents__link toc-highlight">Git Workflow</a><ul><li><a href="#working-on-a-task" class="table-of-contents__link toc-highlight">Working on a Task</a></li><li><a href="#pull-requests" class="table-of-contents__link toc-highlight">Pull Requests</a></li></ul></li><li><a href="#sign-your-commits" class="table-of-contents__link toc-highlight">Sign Your Commits</a></li><li><a href="#commit-messages" class="table-of-contents__link toc-highlight">Commit Messages</a></li><li><a href="#vs-code-extensions" class="table-of-contents__link toc-highlight">VS Code Extensions</a><ul><li><a href="#general" class="table-of-contents__link toc-highlight">General</a></li><li><a href="#web-projects" class="table-of-contents__link toc-highlight">Web Projects</a></li><li><a href="#terraform" class="table-of-contents__link toc-highlight">Terraform</a></li></ul></li><li><a href="#build-automation" class="table-of-contents__link toc-highlight">Build Automation</a></li><li><a href="#repository-management" class="table-of-contents__link toc-highlight">Repository Management</a></li><li><a href="#admin-access" class="table-of-contents__link toc-highlight">Admin Access</a></li></ul></div></div></div></div></div></main></div></div></div><footer class="footer_bfO1"><div class="footerInner_MVCr"><div class="topSection_p6SH"><div class="leftColumn_JpIF"><a href="/index.html" class="logo_BJqA"><svg xmlns="http://www.w3.org/2000/svg" width="100" height="30" viewBox="0 0 657.38 193.42"><path fill="currentColor" d="M162.9,120.1l-50.36-11.17-31.09,84.49-31.09-84.49L0,120.1,81.45,0l81.45,120.1Z"></path><path fill="currentColor" d="M183.1,151.64l41.23-106.46,25.25-3.68,43.27,110.14h-28.72l-6.99-20.98-39.39,1.87-6.37,19.12h-28.28ZM225.07,110.59l24.96-1.57-12.27-36.4-12.69,37.97h0Z"></path><path fill="currentColor" d="M359.06,68.72v28.28c-1.78-.65-3.68-1.1-5.69-1.3-.83-.09-1.69-.12-2.58-.12-6.08,0-11.29,2.05-15,5.57-3.79,3.59-7.23,8.68-7.23,14.73v35.8h-25.46v-81.36l25.04-3.97v12.03c7.29-6.19,16.51-9.9,26.56-9.9,1.48,0,2.93.09,4.36.24Z"></path><path fill="currentColor" d="M426.37,68.72v28.28c-1.78-.65-3.68-1.1-5.69-1.3-.83-.09-1.69-.12-2.58-.12-6.08,0-11.29,2.05-15,5.57-3.79,3.59-7.23,8.68-7.23,14.73v35.8h-25.46v-81.36l25.04-3.97v12.03c7.29-6.19,16.51-9.9,26.56-9.9,1.48,0,2.93.09,4.36.24Z"></path><path fill="currentColor" d="M578.54,81.37l19.21-2.52,12.51,35.6,14.46-47.16,32.66-4.53-32.31,89.15h-22.58l-14.23-37.11-10.97,36.78h-22.35l-28.31-79.85,29.05-3.82,11.91,45.97,11-32.54h-.06v.03h0Z"></path><path fill="currentColor" d="M479.22,151.64c-25.05,0-45.34-19.09-45.34-42.65s20.29-42.65,45.34-42.65,45.34,19.09,45.34,42.65-19.99,42.65-45.34,42.65ZM479.22,129.28c11.64,0,19.69-8.35,19.69-20.29s-8.05-20.29-19.69-20.29-19.69,8.65-19.69,20.29,8.35,20.29,19.69,20.29h0Z"></path></svg></a><p class="tagline_fbRD">Building open source aircraft for humanity.</p></div><div class="linkColumns_eyIf"><div class="linkColumn_WFma"><h4 class="columnTitle_eE5r">Engineering</h4><ul class="linkList_dpY1"><li><a href="/quiver">Project Quiver</a></li><li><a href="https://github.com/Arrow-air" target="_blank" rel="noopener noreferrer">GitHub</a></li><li><a href="/docs">Documentation</a></li></ul></div><div class="linkColumn_WFma"><h4 class="columnTitle_eE5r">Community</h4><ul class="linkList_dpY1"><li><a href="https://discord.com/invite/arrow" target="_blank" rel="noopener noreferrer">Discord</a></li><li><a href="https://dao.arrowair.com/" target="_blank" rel="noopener noreferrer">DAO Forum</a></li><li><a href="/docs/contributing">
224Contribute</a></li></ul></div><div class="linkColumn_WFma"><h4 class="columnTitle_eE5r">DAO</h4><ul class="linkList_dpY1"><li><a href="https://snapshot.org/#/s:arrowair.eth" target="_blank" rel="noopener noreferrer">Snapshot</a></li><li><a href="https://github.com/Arrow-air/dao-aips" target="_blank" rel="noopener noreferrer">AIPs</a></li></ul></div><div class="linkColumn_WFma"><h4 class="columnTitle_eE5r">Connect</h4><div class="socialLinks_N5ot"><a href="https://github.com/Arrow-air" target="_blank" rel="noopener noreferrer" class="socialLink_T1Ot"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2"></path></svg> GitHub</a><a href="https://discord.com/invite/arrow" target="_blank" rel="noopener noreferrer" class="socialLink_T1Ot"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M19.27 5.33C17.94 4.71 16.5 4.26 15 4a.1.1 0 0 0-.07.03c-.18.33-.39.76-.53 1.09a16.1 16.1 0 0 0-4.8 0c-.14-.34-.35-.76-.54-1.09c-.01-.02-.04-.03-.07-.03c-1.5.26-2.93.71-4.27 1.33c-.01 0-.02.01-.03.02c-2.72 4.07-3.47 8.03-3.1 11.95c0 .02.01.04.03.05c1.8 1.32 3.53 2.12 5.24 2.65c.03.01.06 0 .07-.02c.4-.55.76-1.13 1.07-1.74c.02-.04 0-.08-.04-.09c-.57-.22-1.11-.48-1.64-.78c-.04-.02-.04-.08-.01-.11c.11-.08.22-.17.33-.25c.02-.02.05-.02.07-.01c3.44 1.57 7.15 1.57 10.55 0c.02-.01.05-.01.07.01c.11.09.22.17.33.26c.04.03.04.09-.01.11c-.52.31-1.07.56-1.64.78c-.04.01-.05.06-.04.09c.32.61.68 1.19 1.07 1.74c.03.01.06.02.09.01c1.72-.53 3.45-1.33 5.25-2.65c.02-.01.03-.03.03-.05c.44-4.53-.73-8.46-3.1-11.95c-.01-.01-.02-.02-.04-.02M8.52 14.91c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.84 2.12-1.89 2.12m6.97 0c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.83 2.12-1.89 2.12"></path></svg> Discord</a></div></div></div></div><div class="divider_9vcx"></div><div class="bottomSection_fm2p"><p class="copyright_vDPP">© 2026 Arrow. All rights reserved.</p><div class="legalLinks_ChJt"><div class="footerThemeToggle_GGF8"><button class="themeButton_fiAR" type="button" aria-label="Switch to dark mode"><span class="themeIconWrapper_GJYw"><span class="themeIcon_vVi_ sunIcon_y1XY"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"></path></svg></span><span class="themeIcon_vVi_ moonIcon_RYR3"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span></span></button><span class="themeTooltip_ofsg">Toggle theme</span></div><a href="/privacy-policy">Privacy Policy</a><a href="/terms-of-service">Terms of Service</a></div></div></div></footer></div>
225</body>
226</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.