Last active
July 15, 2025 14:29
-
-
Save richardlau/ae3cea85bacfb3e879d97aa4f72a7662 to your computer and use it in GitHub Desktop.
Visualize Node.js proposed release strategy changes: https://github.com/nodejs/Release/issues/1113
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <svg xmlns="http://www.w3.org/2000/svg" width="960" height="500"><defs><style type="text/css"><![CDATA[ | |
| .current { | |
| fill: #5fa04e; | |
| } | |
| .active { | |
| fill: #229ad6; | |
| } | |
| .maintenance { | |
| fill: #b1bcc2; | |
| } | |
| .unstable { | |
| fill: #e99c40; | |
| } | |
| .bar-join { | |
| fill: #ffffff; | |
| } | |
| .bar-join.unstable, .bar-join.current { | |
| display: none; | |
| } | |
| .tick text { | |
| font: 16px sans-serif; | |
| fill: #89a19d; | |
| } | |
| .axis--y .tick text { | |
| text-anchor: end; | |
| } | |
| .label { | |
| fill: #fff; | |
| font: 20px sans-serif; | |
| font-weight: 100; | |
| text-anchor: start; | |
| dominant-baseline: middle; | |
| text-transform: uppercase; | |
| } ]]></style></defs><g id="bar-container" transform="translate(110, 30)"><g class="axis axis--x" fill="none" font-size="10" font-family="sans-serif" text-anchor="middle"><g class="tick" opacity="1" transform="translate(100.13321492007105,0)"><line stroke="#89a19d" y2="440" x1="0.5" x2="0.5"></line><text fill="#000" y="0" x="0.5" dy="-10">Jan 2027</text></g><g class="tick" opacity="1" transform="translate(233.03730017761987,0)"><line stroke="#89a19d" y2="440" x1="0.5" x2="0.5" stroke-dasharray="2,2"></line><text fill="#000" y="0" x="0.5" dy="-10">Jan 2028</text></g><g class="tick" opacity="1" transform="translate(366.3055062166963,0)"><line stroke="#89a19d" y2="440" x1="0.5" x2="0.5"></line><text fill="#000" y="0" x="0.5" dy="-10">Jan 2029</text></g><g class="tick" opacity="1" transform="translate(499.20959147424514,0)"><line stroke="#89a19d" y2="440" x1="0.5" x2="0.5" stroke-dasharray="2,2"></line><text fill="#000" y="0" x="0.5" dy="-10">Jan 2030</text></g><g class="tick" opacity="1" transform="translate(632.1136767317939,0)"><line stroke="#89a19d" y2="440" x1="0.5" x2="0.5"></line><text fill="#000" y="0" x="0.5" dy="-10">Jan 2031</text></g><g class="tick" opacity="1" transform="translate(765.0177619893428,0)"><line stroke="#89a19d" y2="440" x1="0.5" x2="0.5" stroke-dasharray="2,2"></line><text fill="#000" y="0" x="0.5" dy="-10">Jan 2032</text></g></g><g class="axis axis--y" fill="none" font-size="10" font-family="sans-serif" text-anchor="start"><g class="tick" opacity="1" transform="translate(0,23.25203252032522)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Main</text></g><g class="tick" opacity="1" transform="translate(0,59.02439024390246)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 20</text></g><g class="tick" opacity="1" transform="translate(0,94.79674796747969)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 22</text></g><g class="tick" opacity="1" transform="translate(0,130.56910569105693)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 24</text></g><g class="tick" opacity="1" transform="translate(0,166.34146341463418)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 25</text></g><g class="tick" opacity="1" transform="translate(0,202.11382113821142)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 26</text></g><g class="tick" opacity="1" transform="translate(0,237.88617886178864)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 27</text></g><g class="tick" opacity="1" transform="translate(0,273.6585365853658)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 28</text></g><g class="tick" opacity="1" transform="translate(0,309.4308943089431)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 29</text></g><g class="tick" opacity="1" transform="translate(0,345.2032520325203)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 30</text></g><g class="tick" opacity="1" transform="translate(0,380.9756097560976)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 31</text></g><g class="tick" opacity="1" transform="translate(0,416.7479674796748)"><line stroke="#e1e7e7" x2="820" y1="0.5" y2="0.5"></line><text fill="#000" x="0" y="0.5" dy="0.32em" dx="-10">Node.js 32</text></g><line y1="440" y2="440" x2="820" stroke="#89a19d"></line></g><g><rect class="bar unstable" x="0" y="10.731707317073187" width="820" height="25.040650406504064"></rect><rect class="bar-join unstable" x="-1" y="10.731707317073187" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="15" y="25.25203252032522" style="opacity: 1;">unstable</text></g><g><rect class="bar maintenance" x="0" y="46.504065040650424" width="10.559502664298401" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="-1" y="46.504065040650424" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="15" y="61.02439024390246" style="opacity: 0;">maintenance</text></g><g><rect class="bar maintenance" x="0" y="82.27642276422766" width="143.46358792184725" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="-1" y="82.27642276422766" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="15" y="96.79674796747969" style="opacity: 0;">maintenance</text></g><g><rect class="bar maintenance" x="73.55239786856127" y="118.04878048780489" width="203.1793960923623" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="72.55239786856127" y="118.04878048780489" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="88.55239786856127" y="132.56910569105693" style="opacity: 1;">maintenance</text></g><g><rect class="bar active" x="0" y="118.04878048780489" width="73.55239786856127" height="25.040650406504064"></rect><rect class="bar-join active" x="-1" y="118.04878048780489" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="15" y="132.56910569105693" style="opacity: 0;">active</text></g><g><rect class="bar maintenance" x="0" y="153.82113821138213" width="22.211367673179396" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="-1" y="153.82113821138213" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="15" y="168.34146341463418" style="opacity: 0;">maintenance</text></g><g><rect class="bar maintenance" x="206.45648312611013" y="189.59349593495938" width="136.90941385435167" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="205.45648312611013" y="189.59349593495938" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="221.45648312611013" y="204.11382113821142" style="opacity: 0;">maintenance</text></g><g><rect class="bar active" x="76.46536412078153" y="189.59349593495938" width="129.99111900532858" height="25.040650406504064"></rect><rect class="bar-join active" x="75.46536412078153" y="189.59349593495938" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="91.46536412078153" y="204.11382113821142" style="opacity: 1;">active</text></g><g><rect class="bar current" x="7.646536412078152" y="189.59349593495938" width="68.81882770870338" height="25.040650406504064"></rect><rect class="bar-join current" x="6.646536412078152" y="189.59349593495938" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="22.646536412078152" y="204.11382113821142" style="opacity: 0;">current</text></g><g><rect class="bar maintenance" x="339.7246891651865" y="225.3658536585366" width="136.54529307282422" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="338.7246891651865" y="225.3658536585366" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="354.7246891651865" y="239.88617886178864" style="opacity: 0;">maintenance</text></g><g><rect class="bar active" x="209.3694493783304" y="225.3658536585366" width="130.3552397868561" height="25.040650406504064"></rect><rect class="bar-join active" x="208.3694493783304" y="225.3658536585366" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="224.3694493783304" y="239.88617886178864" style="opacity: 1;">active</text></g><g><rect class="bar current" x="140.550621669627" y="225.3658536585366" width="68.8188277087034" height="25.040650406504064"></rect><rect class="bar-join current" x="139.550621669627" y="225.3658536585366" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="155.550621669627" y="239.88617886178864" style="opacity: 0;">current</text></g><g><rect class="bar maintenance" x="472.6287744227354" y="261.1382113821138" width="136.5452930728241" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="471.6287744227354" y="261.1382113821138" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="487.6287744227354" y="275.6585365853658" style="opacity: 0;">maintenance</text></g><g><rect class="bar active" x="342.63765541740673" y="261.1382113821138" width="129.99111900532864" height="25.040650406504064"></rect><rect class="bar-join active" x="341.63765541740673" y="261.1382113821138" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="357.63765541740673" y="275.6585365853658" style="opacity: 1;">active</text></g><g><rect class="bar current" x="273.81882770870334" y="261.1382113821138" width="68.8188277087034" height="25.040650406504064"></rect><rect class="bar-join current" x="272.81882770870334" y="261.1382113821138" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="288.81882770870334" y="275.6585365853658" style="opacity: 0;">current</text></g><g><rect class="bar maintenance" x="605.5328596802842" y="296.9105691056911" width="136.54529307282417" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="604.5328596802842" y="296.9105691056911" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="620.5328596802842" y="311.4308943089431" style="opacity: 0;">maintenance</text></g><g><rect class="bar active" x="475.5417406749556" y="296.9105691056911" width="129.99111900532864" height="25.040650406504064"></rect><rect class="bar-join active" x="474.5417406749556" y="296.9105691056911" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="490.5417406749556" y="311.4308943089431" style="opacity: 1;">active</text></g><g><rect class="bar current" x="406.72291296625224" y="296.9105691056911" width="68.81882770870334" height="25.040650406504064"></rect><rect class="bar-join current" x="405.72291296625224" y="296.9105691056911" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="421.72291296625224" y="311.4308943089431" style="opacity: 0;">current</text></g><g><rect class="bar maintenance" x="738.436944937833" y="332.6829268292683" width="81.563055062167" height="25.040650406504064"></rect><rect class="bar-join maintenance" x="737.436944937833" y="332.6829268292683" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="753.436944937833" y="347.2032520325203" style="opacity: 0;">maintenance</text></g><g><rect class="bar active" x="608.4458259325045" y="332.6829268292683" width="129.99111900532853" height="25.040650406504064"></rect><rect class="bar-join active" x="607.4458259325045" y="332.6829268292683" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="623.4458259325045" y="347.2032520325203" style="opacity: 1;">active</text></g><g><rect class="bar current" x="539.626998223801" y="332.6829268292683" width="68.81882770870345" height="25.040650406504064"></rect><rect class="bar-join current" x="538.626998223801" y="332.6829268292683" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="554.626998223801" y="347.2032520325203" style="opacity: 0;">current</text></g><g><rect class="bar active" x="741.3499111900533" y="368.45528455284557" width="78.65008880994674" height="25.040650406504064"></rect><rect class="bar-join active" x="740.3499111900533" y="368.45528455284557" width="2" height="25.040650406504064" style="opacity: 1;"></rect><text class="label" x="756.3499111900533" y="382.9756097560976" style="opacity: 0;">active</text></g><g><rect class="bar current" x="672.5310834813499" y="368.45528455284557" width="68.81882770870334" height="25.040650406504064"></rect><rect class="bar-join current" x="671.5310834813499" y="368.45528455284557" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="687.5310834813499" y="382.9756097560976" style="opacity: 0;">current</text></g><g><rect class="bar current" x="805.7992895204263" y="404.2276422764228" width="14.200710479573672" height="25.040650406504064"></rect><rect class="bar-join current" x="804.7992895204263" y="404.2276422764228" width="2" height="25.040650406504064" style="opacity: 0;"></rect><text class="label" x="820.7992895204263" y="418.7479674796748" style="opacity: 0;">current</text></g></g></svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment