Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/skade

.nornir/assets/arrow58_patch_fork.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1180 560" font-family="'DejaVu Sans', 'Segoe UI', sans-serif">
  <defs>
    <linearGradient id="board" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#0b1c2e"/>
      <stop offset="1" stop-color="#06111d"/>
    </linearGradient>
    <linearGradient id="chip" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#14384f"/>
      <stop offset="1" stop-color="#0e2a3e"/>
    </linearGradient>
    <linearGradient id="rail" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#173d57"/>
      <stop offset="1" stop-color="#0c2438"/>
    </linearGradient>
    <linearGradient id="slot" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#123448"/>
      <stop offset="1" stop-color="#0a2032"/>
    </linearGradient>
    <marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
      <path d="M0 0 L10 5 L0 10 z" fill="#6fd3f5"/>
    </marker>
    <marker id="arrowDash" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
      <path d="M0 0 L10 5 L0 10 z" fill="#7fb0cc"/>
    </marker>
  </defs>

  <!-- PCB substrate -->
  <rect x="0" y="0" width="1180" height="560" fill="url(#board)"/>
  <g stroke="#143a52" stroke-width="1">
    <line x1="0" y1="84" x2="1180" y2="84"/>
    <line x1="0" y1="512" x2="1180" y2="512"/>
  </g>
  <g fill="#16415c">
    <circle cx="40" cy="40" r="2"/><circle cx="1140" cy="40" r="2"/>
    <circle cx="40" cy="532" r="2"/><circle cx="1140" cy="532" r="2"/>
  </g>

  <!-- title -->
  <text x="40" y="40" fill="#eaf6ff" font-size="22" font-weight="700">arrow 57 &#8594; 58</text>
  <text x="40" y="62" fill="#9fc9e0" font-size="15">the <tspan fill="#bfe6ff" font-weight="700">[patch.crates-io]</tspan> fork route &#8212; local builds resolve to the bumped iceberg, published skade does not</text>

  <!-- legend -->
  <g font-size="12.5">
    <line x1="700" y1="40" x2="740" y2="40" stroke="#6fd3f5" stroke-width="3"/>
    <text x="748" y="44" fill="#cfe6f5">local build resolves to fork</text>
    <line x1="960" y1="40" x2="1000" y2="40" stroke="#7fb0cc" stroke-width="2.5" stroke-dasharray="5 4"/>
    <text x="1008" y="44" fill="#cfe6f5">cargo publish strips it</text>
  </g>

  <!-- ===================== CONSUMER Cargo.toml ===================== -->
  <rect x="36" y="160" width="208" height="240" rx="12" fill="url(#rail)" stroke="#7fc8ea" stroke-width="2.5"/>
  <text x="140" y="188" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">consumer Cargo.toml</text>
  <text x="140" y="208" fill="#9fc9e0" font-size="10.5" text-anchor="middle">skade/skade/Cargo.toml</text>

  <rect x="58" y="226" width="164" height="32" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="140" y="240" fill="#bfe6ff" font-size="10" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">arrow-array = "58"</text>
  <text x="140" y="253" fill="#9fc9e0" font-size="9" text-anchor="middle">was "57"</text>

  <rect x="58" y="266" width="164" height="32" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="140" y="280" fill="#bfe6ff" font-size="10" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">parquet = "58"</text>
  <text x="140" y="293" fill="#9fc9e0" font-size="9" text-anchor="middle">datafusion = "54"</text>

  <rect x="58" y="306" width="164" height="36" rx="5" fill="url(#slot)" stroke="#7fc8ea" stroke-width="1.6"/>
  <text x="140" y="320" fill="#eaf6ff" font-size="10.5" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace" font-weight="700">[patch.crates-io]</text>
  <text x="140" y="334" fill="#9fc9e0" font-size="9" text-anchor="middle">redirect iceberg deps</text>

  <text x="140" y="364" fill="#86b3cc" font-size="10" text-anchor="middle">"when something asks for</text>
  <text x="140" y="379" fill="#86b3cc" font-size="10" text-anchor="middle">iceberg, use THIS folder"</text>
  <rect x="244" y="320" width="6" height="8" fill="#6fd3f5"/>

  <!-- consumer -> forks -->
  <g stroke="#6fd3f5" stroke-width="3" fill="none" marker-end="url(#arrow)">
    <path d="M250 280 H300 V210 H338"/>
    <path d="M250 300 H300 V350 H338"/>
  </g>
  <circle cx="300" cy="280" r="3" fill="#bfecff"/>

  <!-- ===================== FORK 1: iceberg-arrow58 ===================== -->
  <rect x="338" y="160" width="244" height="100" rx="11" fill="url(#chip)" stroke="#5aa6cf" stroke-width="2"/>
  <text x="460" y="186" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">../iceberg-arrow58</text>
  <text x="460" y="205" fill="#9fc9e0" font-size="10.5" text-anchor="middle">pure arrow 57 &#8594; 58 bump of iceberg 0.9.1</text>
  <rect x="360" y="216" width="200" height="30" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="460" y="235" fill="#bfe6ff" font-size="10" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">iceberg = { path = "../../&#8230;" }</text>
  <rect x="582" y="200" width="6" height="8" fill="#6fd3f5"/>

  <!-- ===================== FORK 2: iceberg-datafusion-arrow58 ===================== -->
  <rect x="338" y="300" width="244" height="116" rx="11" fill="url(#chip)" stroke="#5aa6cf" stroke-width="2"/>
  <text x="460" y="326" fill="#eaf6ff" font-size="13.5" font-weight="700" text-anchor="middle">../iceberg-datafusion-arrow58</text>
  <text x="460" y="345" fill="#9fc9e0" font-size="10.5" text-anchor="middle">arrow 57&#8594;58 + datafusion 52&#8594;54</text>
  <rect x="360" y="356" width="200" height="30" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="460" y="375" fill="#bfe6ff" font-size="10" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">iceberg-datafusion = { path }</text>
  <text x="460" y="402" fill="#7CFFB2" font-size="10" text-anchor="middle" font-weight="700">+ the parallel per-file perf patch</text>
  <rect x="582" y="350" width="6" height="8" fill="#6fd3f5"/>

  <!-- forks -> cargo build resolve -->
  <g stroke="#6fd3f5" stroke-width="3" fill="none" marker-end="url(#arrow)">
    <path d="M588 204 H640 V270 H678"/>
    <path d="M588 354 H640 V286 H678"/>
  </g>
  <circle cx="640" cy="278" r="3" fill="#bfecff"/>

  <!-- ===================== CARGO BUILD ===================== -->
  <rect x="678" y="224" width="200" height="108" rx="12" fill="url(#rail)" stroke="#7fc8ea" stroke-width="2.5"/>
  <text x="778" y="252" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">cargo build</text>
  <text x="778" y="271" fill="#9fc9e0" font-size="10.5" text-anchor="middle">dependency resolution</text>
  <rect x="700" y="282" width="156" height="32" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="778" y="296" fill="#bfe6ff" font-size="10" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">resolves to fork</text>
  <text x="778" y="309" fill="#9fc9e0" font-size="9" text-anchor="middle">not crates.io</text>
  <rect x="878" y="274" width="6" height="8" fill="#6fd3f5"/>

  <!-- cargo build -> builds clean -->
  <g stroke="#6fd3f5" stroke-width="3" fill="none" marker-end="url(#arrow)">
    <path d="M884 278 H938"/>
  </g>

  <!-- ===================== BUILDS CLEAN ===================== -->
  <rect x="940" y="232" width="200" height="92" rx="11" fill="url(#chip)" stroke="#7fc8ea" stroke-width="2.5"/>
  <text x="1040" y="262" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">builds clean</text>
  <text x="1040" y="282" fill="#7CFFB2" font-size="11" text-anchor="middle" font-weight="700">on arrow 58</text>
  <text x="1040" y="302" fill="#86b3cc" font-size="9.5" text-anchor="middle">local build / test / bench</text>

  <!-- ===================== PUBLISHED (dashed branch) ===================== -->
  <g stroke="#7fb0cc" stroke-width="2.5" fill="none" stroke-dasharray="5 4" marker-end="url(#arrowDash)">
    <path d="M140 342 V452 H700"/>
  </g>
  <rect x="702" y="424" width="278" height="60" rx="9" fill="#0a2032" stroke="#3c6a86" stroke-width="1.4" stroke-dasharray="3 3"/>
  <text x="841" y="448" fill="#ffcf6f" font-size="12.5" font-weight="700" text-anchor="middle">cargo publish strips [patch]</text>
  <text x="841" y="468" fill="#7fa8c4" font-size="10" text-anchor="middle">published skade &#8594; stock iceberg 0.9.1 (arrow 57) from crates.io</text>

  <!-- exit-plan note -->
  <text x="40" y="448" fill="#86b3cc" font-size="10.5">Exit plan: when upstream iceberg ships an arrow-58 release,</text>
  <text x="40" y="464" fill="#86b3cc" font-size="10.5">delete the [patch] lines and the two fork repos.</text>

  <!-- ===================== GROUND RAIL ===================== -->
  <rect x="36" y="498" width="1104" height="44" rx="10" fill="url(#rail)" stroke="#7fc8ea" stroke-width="2"/>
  <text x="56" y="525" fill="#dff1ff" font-size="14" font-weight="700">patch-fork route</text>
  <text x="220" y="525" fill="#7fa8c4" font-size="10.5" font-family="'DejaVu Sans Mono', monospace">[patch.crates-io] &#183; local-only &#183; stripped on publish &#183; forks: iceberg-arrow58 + iceberg-datafusion-arrow58</text>
</svg>