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

nordisk/znippy

.nornir/assets/arrow58_patch_fork.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1180 580" 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" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto">
      <path d="M0,0 L8,3 L0,6 Z" fill="#6fd3f5"/>
    </marker>
    <marker id="arrowd" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto">
      <path d="M0,0 L8,3 L0,6 Z" fill="#7fb0cc"/>
    </marker>
  </defs>

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

  <!-- title -->
  <text x="40" y="40" fill="#eaf6ff" font-size="22" font-weight="700">znippy-iceberg &#8594; Arrow 58</text>
  <text x="40" y="62" fill="#9fc9e0" font-size="15">healing the split brain via a root <tspan fill="#bfe6ff" font-weight="700" font-family="'DejaVu Sans Mono', monospace">[patch.crates-io]</tspan> &#8594; sibling <tspan fill="#bfe6ff" font-weight="700">../iceberg-arrow58</tspan> fork</text>

  <!-- legend -->
  <g font-size="12.5">
    <line x1="690" y1="44" x2="730" y2="44" stroke="#6fd3f5" stroke-width="3"/>
    <text x="738" y="48" fill="#cfe6f5">local build path</text>
    <line x1="880" y1="44" x2="920" y2="44" stroke="#7fb0cc" stroke-width="2.5" stroke-dasharray="5 4"/>
    <text x="928" y="48" fill="#cfe6f5">cargo publish strips [patch]</text>
  </g>
  <g font-size="11.5">
    <rect x="690" y="58" width="12" height="12" rx="2" fill="#0f2e2a" stroke="#7CFFB2" stroke-width="1.4"/>
    <text x="708" y="68" fill="#7CFFB2">already 58</text>
    <rect x="800" y="58" width="12" height="12" rx="2" fill="#3a3015" stroke="#ffcf6f" stroke-width="1.4"/>
    <text x="818" y="68" fill="#ffcf6f">57 straggler &#8594; bumped</text>
  </g>

  <!-- ===================== SPLIT-BRAIN WORKSPACE (left) ===================== -->
  <rect x="36" y="108" width="232" height="372" rx="12" fill="url(#rail)" stroke="#7fc8ea" stroke-width="2.5"/>
  <text x="152" y="136" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">znippy workspace</text>
  <text x="152" y="156" fill="#9fc9e0" font-size="10.5" text-anchor="middle">the Arrow-major split brain</text>

  <!-- common: already 58 -->
  <rect x="58" y="176" width="188" height="50" rx="5" fill="url(#slot)" stroke="#7CFFB2" stroke-width="1.6"/>
  <text x="152" y="196" fill="#bfe6ff" font-size="11" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">znippy-common</text>
  <text x="152" y="214" fill="#7CFFB2" font-size="10.5" text-anchor="middle" font-weight="700">arrow 58.3.0 &#8226; already aligned</text>

  <!-- compress: already 58 -->
  <rect x="58" y="234" width="188" height="50" rx="5" fill="url(#slot)" stroke="#7CFFB2" stroke-width="1.6"/>
  <text x="152" y="254" fill="#bfe6ff" font-size="11" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">znippy-compress</text>
  <text x="152" y="272" fill="#7CFFB2" font-size="10.5" text-anchor="middle" font-weight="700">arrow 58.3.0 &#8226; already aligned</text>

  <!-- iceberg: the straggler -->
  <rect x="58" y="296" width="188" height="68" rx="5" fill="url(#slot)" stroke="#ffcf6f" stroke-width="1.8"/>
  <text x="152" y="316" fill="#bfe6ff" font-size="11" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">znippy-iceberg</text>
  <text x="152" y="334" fill="#ffcf6f" font-size="10.5" text-anchor="middle" font-weight="700">arrow 57 &#8212; straggler</text>
  <text x="152" y="350" fill="#9fc9e0" font-size="9.5" text-anchor="middle">links iceberg 0.9.1 + skade 0.4.x (both 57)</text>

  <text x="152" y="388" fill="#ff9a9a" font-size="10" text-anchor="middle">57&#8596;58 RecordBatch won't cross the</text>
  <text x="152" y="404" fill="#ff9a9a" font-size="10" text-anchor="middle">type boundary &#8212; lockfile version war</text>
  <text x="152" y="430" fill="#86b3cc" font-size="10" text-anchor="middle">compress (58) pipeline cannot hand</text>
  <text x="152" y="446" fill="#86b3cc" font-size="10" text-anchor="middle">a batch to the (57) Iceberg sink</text>
  <rect x="268" y="326" width="6" height="8" fill="#6fd3f5"/>

  <!-- straggler -> Cargo.toml bump -->
  <path d="M274 330 H332" stroke="#6fd3f5" stroke-width="3" fill="none" marker-end="url(#arrow)"/>

  <!-- ===================== znippy-iceberg Cargo.toml bump ===================== -->
  <rect x="338" y="138" width="206" height="180" rx="11" fill="url(#chip)" stroke="#5aa6cf" stroke-width="2"/>
  <text x="441" y="166" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">znippy-iceberg</text>
  <text x="441" y="185" fill="#9fc9e0" font-size="10.5" text-anchor="middle">Cargo.toml &#8212; arrow 57 &#8594; 58</text>

  <rect x="360" y="200" width="162" height="96" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="372" y="220" fill="#bfe6ff" font-size="10.5" font-family="'DejaVu Sans Mono', monospace">arrow-array  = "58"</text>
  <text x="372" y="238" fill="#bfe6ff" font-size="10.5" font-family="'DejaVu Sans Mono', monospace">arrow-schema = "58"</text>
  <text x="372" y="256" fill="#bfe6ff" font-size="10.5" font-family="'DejaVu Sans Mono', monospace">arrow-ipc    = "58"</text>
  <text x="372" y="274" fill="#bfe6ff" font-size="10.5" font-family="'DejaVu Sans Mono', monospace">arrow-cast   = "58"</text>
  <text x="441" y="290" fill="#7CFFB2" font-size="9.5" text-anchor="middle" font-weight="700">own deps now 58</text>
  <rect x="544" y="214" width="6" height="8" fill="#6fd3f5"/>

  <!-- ===================== root [patch.crates-io] ===================== -->
  <rect x="338" y="338" width="206" height="142" rx="11" fill="url(#chip)" stroke="#5aa6cf" stroke-width="2"/>
  <text x="441" y="364" fill="#eaf6ff" font-size="14" font-weight="700" text-anchor="middle">root Cargo.toml</text>
  <text x="441" y="382" fill="#9fc9e0" font-size="10.5" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">[patch.crates-io]</text>

  <rect x="360" y="396" width="162" height="74" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="372" y="414" fill="#bfe6ff" font-size="9.5" font-family="'DejaVu Sans Mono', monospace">iceberg = ../iceberg-arrow58</text>
  <text x="372" y="430" fill="#bfe6ff" font-size="9.5" font-family="'DejaVu Sans Mono', monospace">skade = ../skade/skade</text>
  <text x="372" y="446" fill="#bfe6ff" font-size="9.5" font-family="'DejaVu Sans Mono', monospace">skade-katalog = ../skade</text>
  <text x="441" y="463" fill="#9fc9e0" font-size="9" text-anchor="middle">redirect iceberg/skade to 58 builds</text>
  <rect x="544" y="404" width="6" height="8" fill="#6fd3f5"/>

  <!-- bump -> fork  &  patch -> fork (both feed the resolve) -->
  <path d="M550 218 H600 V300 H636" stroke="#6fd3f5" stroke-width="3" fill="none" marker-end="url(#arrow)"/>
  <path d="M550 408 H600 V320 H636" stroke="#6fd3f5" stroke-width="3" fill="none" marker-end="url(#arrow)"/>

  <!-- ===================== ../iceberg-arrow58 fork ===================== -->
  <rect x="642" y="240" width="206" height="160" rx="12" fill="url(#chip)" stroke="#7fc8ea" stroke-width="2.5"/>
  <text x="745" y="268" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">../iceberg-arrow58</text>
  <text x="745" y="287" fill="#9fc9e0" font-size="10.5" text-anchor="middle">sibling fork repo</text>

  <rect x="664" y="302" width="162" height="34" rx="5" fill="url(#slot)" stroke="#6fd3f5" stroke-width="1.4"/>
  <text x="745" y="316" fill="#bfe6ff" font-size="10" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">iceberg 0.9.1</text>
  <text x="745" y="330" fill="#7CFFB2" font-size="9.5" text-anchor="middle" font-weight="700">arrow 57 &#8594; 58 (no source change)</text>

  <text x="745" y="358" fill="#86b3cc" font-size="10" text-anchor="middle">pure version bump &#8226; shared with skade</text>
  <text x="745" y="376" fill="#86b3cc" font-size="9.5" text-anchor="middle">../skade/skade carries the 58 skade build</text>
  <text x="745" y="392" fill="#7fa8c4" font-size="9" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">to_naive_date warns only (upstream code)</text>
  <rect x="848" y="312" width="6" height="8" fill="#6fd3f5"/>

  <!-- fork -> cargo build resolve -->
  <path d="M854 316 H902" stroke="#6fd3f5" stroke-width="3" fill="none" marker-end="url(#arrow)"/>

  <!-- ===================== cargo build resolves ===================== -->
  <rect x="908" y="252" width="234" height="136" rx="12" fill="url(#rail)" stroke="#7fc8ea" stroke-width="2.5"/>
  <text x="1025" y="280" fill="#eaf6ff" font-size="14.5" font-weight="700" text-anchor="middle">cargo build</text>
  <text x="1025" y="299" fill="#9fc9e0" font-size="10.5" text-anchor="middle">local resolve &#8594; fork</text>

  <rect x="930" y="312" width="190" height="34" rx="5" fill="url(#slot)" stroke="#7CFFB2" stroke-width="1.6"/>
  <text x="1025" y="326" fill="#7CFFB2" font-size="11" text-anchor="middle" font-weight="700">Arrow 58 everywhere</text>
  <text x="1025" y="340" fill="#9fc9e0" font-size="9.5" text-anchor="middle">split brain closed &#8226; one major</text>
  <text x="1025" y="364" fill="#86b3cc" font-size="10" text-anchor="middle">RecordBatch flows compress &#8594; sink,</text>
  <text x="1025" y="380" fill="#86b3cc" font-size="10" text-anchor="middle">no bridge &#8212; both sides finally agree</text>

  <!-- ===================== published dashed branch ===================== -->
  <path d="M441 480 V506 H720" stroke="#7fb0cc" stroke-width="2.5" fill="none" stroke-dasharray="5 4" marker-end="url(#arrowd)"/>
  <rect x="726" y="486" width="280" height="40" rx="9" fill="#0a2032" stroke="#3c6a86" stroke-width="1.4" stroke-dasharray="3 3"/>
  <text x="866" y="503" fill="#bfe6ff" font-size="11.5" font-weight="700" text-anchor="middle" font-family="'DejaVu Sans Mono', monospace">cargo publish strips [patch]</text>
  <text x="866" y="518" fill="#7fa8c4" font-size="9.5" text-anchor="middle">published znippy-iceberg &#8594; stock iceberg 0.9.1 + skade 0.4.x</text>

  <!-- ===================== FOOTER ===================== -->
  <text x="40" y="558" fill="#5e86a0" font-size="11" font-family="'DejaVu Sans Mono', monospace">3939e8e &#183; bump znippy-iceberg arrow 57&#8594;58 + root [patch.crates-io] &#8594; ../iceberg-arrow58 &#183; exit: drop [patch] when upstream ships arrow-58 iceberg/skade</text>
</svg>