Repo: Organise and document processes and architecture (#43)

* Add Makefile for common contributor tasks

Narrows down a few commands to automatically format when building, and neatly expose testing/benching.

Empty files added to describe contributor guidelines, overall architecture.

* First draft of contributor guidelines

* Simple architecture diagrams

* Add PNG variants of architecture diagrams

Swapping to these because not having Fira Sans installed on a viewing machine leads to terrible kerning.

* Architecture description.

* MD cross-refs.
This commit is contained in:
Kyle Simpson
2021-03-18 20:54:07 +00:00
committed by GitHub
parent a9b4cb7715
commit 1fcc8c0eb9
9 changed files with 578 additions and 2 deletions

136
images/driver.svg Normal file
View File

@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1525 1013" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-31,-921)">
<g transform="matrix(1,0,0,1,0,900)">
<g transform="matrix(1,0,0,1,299,-52.947)">
<path d="M212.72,146.182L212.72,132.063L521.426,132.063L521.426,103.825L540.487,139.123L521.426,174.421L521.426,146.182L212.72,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
<g transform="matrix(1,0,0,1,-168.926,12.6064)">
<text x="235.411px" y="98.782px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:84.043px;">M<tspan x="301.889px " y="98.782px ">e</tspan>ssag<tspan x="515.19px " y="98.782px ">e</tspan>s</text>
</g>
</g>
<g transform="matrix(1,0,0,1,0,995)">
<g transform="matrix(1,0,0,1,299,-52.947)">
<path d="M212.72,146.182L212.72,132.063L521.426,132.063L521.426,103.825L540.487,139.123L521.426,174.421L521.426,146.182L212.72,146.182Z" style="fill:rgb(255,77,74);"/>
</g>
<g transform="matrix(1,0,0,1,-168.926,12.6064)">
<text x="235.411px" y="98.782px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:84.043px;">Cr<tspan x="314.076px " y="98.782px ">e</tspan>at<tspan x="435.517px " y="98.782px ">e</tspan>s</text>
</g>
</g>
<g transform="matrix(1,0,0,1,0,-15)">
<g transform="matrix(1,0,0,1,-168.926,1110.98)">
<text x="235.411px" y="98.782px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:84.043px;">P<tspan x="282.559px " y="98.782px ">e</tspan>rmanent</text>
</g>
<g transform="matrix(1.75342,0,0,0.430769,335.83,655.838)">
<rect x="101.876" y="1143.29" width="184.054" height="163.884" style="fill:rgb(255,193,74);stroke:rgb(62,62,62);stroke-width:3.05px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,-1507.73,1026.16)">
<path d="M1841.87,401.515C1861.04,401.559 1876.53,417.076 1876.53,436.182L1876.53,505.518C1876.53,524.651 1861,540.185 1841.87,540.185L1632.2,540.185L1632.2,401.515L1841.87,401.515Z" style="fill:rgb(255,73,27);stroke:rgb(255,5,5);stroke-width:4.07px;"/>
</g>
<g transform="matrix(1,0,0,1,-326.049,1208.17)">
<text x="503.152px" y="302.395px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;fill:white;">Driv<tspan x="592.852px " y="302.395px ">e</tspan>r</text>
</g>
<g transform="matrix(0.960543,0,0,1,84.2035,0)">
<path d="M89.27,1672.76L1407.47,1672.76" style="fill:none;stroke:rgb(62,62,62);stroke-width:3.97px;stroke-dasharray:39.71,39.71,0,0;"/>
</g>
<g transform="matrix(1,0,0,1,-260,37)">
<text x="409.473px" y="1589.56px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">As<tspan x="460.973px " y="1589.56px ">y</tspan>nc</text>
</g>
<g transform="matrix(1,0,0,1,-260,153.713)">
<text x="409.473px" y="1589.56px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">S<tspan x="435.723px " y="1589.56px ">y</tspan>nc</text>
</g>
<g transform="matrix(1,0,0,1,-257.171,22.6916)">
<g transform="matrix(0.724138,0,0,0.724138,223.721,413.46)">
<ellipse cx="829.267" cy="1498.79" rx="134.889" ry="73.117" style="fill:rgb(255,193,74);stroke:rgb(62,62,62);stroke-width:5.38px;"/>
</g>
<g transform="matrix(1,0,0,1,10.0851,37.8193)">
<text x="762.453px" y="1473.58px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">C<tspan x="789.953px 819.153px 837.953px " y="1473.58px 1473.58px 1473.58px ">ore</tspan></text>
</g>
</g>
<g transform="matrix(1,0,0,1,-47.9044,-158.841)">
<g transform="matrix(0.724138,0,0,0.724138,223.721,413.46)">
<ellipse cx="829.267" cy="1498.79" rx="134.889" ry="73.117" style="fill:rgb(255,193,74);stroke:rgb(62,62,62);stroke-width:5.38px;"/>
</g>
<g transform="matrix(1,0,0,1,-12.6064,37.8193)">
<text x="762.453px" y="1473.58px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">Ev<tspan x="813.303px " y="1473.58px ">e</tspan>nts</text>
</g>
</g>
<g transform="matrix(1,0,0,1,0,264.735)">
<g transform="matrix(0.724138,0,0,0.724138,223.721,413.46)">
<ellipse cx="829.267" cy="1498.79" rx="134.889" ry="73.117" style="fill:rgb(255,193,74);stroke:rgb(62,62,62);stroke-width:5.38px;"/>
</g>
<g transform="matrix(1,0,0,1,4.54747e-13,40.3406)">
<text x="762.453px" y="1473.58px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">Mix<tspan x="839.603px " y="1473.58px ">e</tspan>r</text>
</g>
</g>
<g transform="matrix(1,0,0,1,-320.203,332.81)">
<g transform="matrix(0.924892,0,0,0.924892,52.9138,113.02)">
<ellipse cx="829.267" cy="1498.79" rx="134.889" ry="73.117" style="fill:rgb(255,193,74);stroke:rgb(62,62,62);stroke-width:4.21px;"/>
</g>
<g transform="matrix(1,0,0,1,-3,40.3406)">
<text x="725.078px" y="1473.58px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">Disposer</text>
</g>
</g>
<g transform="matrix(0.234011,0.0406263,-0.10801,0.622149,635.72,1439.47)">
<path d="M212.72,146.182L212.72,132.063L489.811,132.063L489.811,103.825L540.487,139.123L489.811,174.421L489.811,146.182L212.72,146.182Z" style="fill:rgb(255,77,74);"/>
</g>
<g transform="matrix(0.942841,-0.272086,0.175081,0.606697,445.215,1481.7)">
<path d="M212.72,146.182L212.72,132.063L528.222,132.063L528.222,103.825L540.487,139.123L528.222,174.421L528.222,146.182L212.72,146.182Z" style="fill:rgb(255,77,74);"/>
</g>
<g transform="matrix(1.39485,-2.12445e-16,-9.76394e-16,0.631455,377.024,1435.17)">
<path d="M212.72,146.182L212.72,132.063L531.858,132.063L531.858,103.825L540.487,139.123L531.858,174.421L531.858,146.182L212.72,146.182Z" style="fill:rgb(255,77,74);"/>
</g>
<g transform="matrix(1,0,0,1,57.9896,47.9044)">
<g transform="matrix(1.01835,0,0,1.01835,-11.9813,-27.0542)">
<ellipse cx="829.267" cy="1498.79" rx="134.889" ry="73.117" style="fill:white;stroke:rgb(62,62,62);stroke-width:3.82px;"/>
</g>
<g transform="matrix(1,0,0,1,9,40.3406)">
<text x="702.378px" y="1473.58px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">W<tspan x="742.178px " y="1473.58px ">e</tspan>bsock<tspan x="900.928px " y="1473.58px ">e</tspan>t</text>
</g>
</g>
<g transform="matrix(1,0,0,1,284.905,-123.543)">
<g transform="matrix(1.01835,0,0,1.01835,-11.9813,-27.0542)">
<ellipse cx="829.267" cy="1498.79" rx="134.889" ry="73.117" style="fill:white;stroke:rgb(62,62,62);stroke-width:3.82px;"/>
</g>
<g transform="matrix(1,0,0,1,9,40.3406)">
<text x="743.378px" y="1473.58px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">UDP Rx</text>
</g>
</g>
<g transform="matrix(1,0,0,1,438.704,63.0321)">
<g transform="matrix(1.01835,0,0,1.01835,-11.9813,-27.0542)">
<ellipse cx="829.267" cy="1498.79" rx="134.889" ry="73.117" style="fill:white;stroke:rgb(62,62,62);stroke-width:3.82px;"/>
</g>
<g transform="matrix(1,0,0,1,9,40.3406)">
<text x="747.078px" y="1473.58px" style="font-family:'FiraSans-Regular', 'Fira Sans', sans-serif;font-size:50px;">UDP T<tspan x="877.528px " y="1473.58px ">x</tspan></text>
</g>
</g>
<g>
<g transform="matrix(-0.266822,0.110146,-0.240947,-0.583678,811.395,1831.03)">
<path d="M212.72,146.182L212.72,132.063L498.791,132.063L498.791,103.825L540.487,139.123L498.791,174.421L498.791,146.182L212.72,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
<g transform="matrix(0.675184,-0.370199,0.303584,0.553689,739.208,1743.48)">
<path d="M212.72,146.182L212.72,132.063L524.856,132.063L524.856,103.825L540.487,139.123L524.856,174.421L524.856,146.182L212.72,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
<g transform="matrix(0.0764172,-0.232117,0.599787,0.197461,745.524,1728.62)">
<path d="M212.72,146.182L212.72,132.063L491.234,132.063L491.234,103.825L540.487,139.123L491.234,174.421L491.234,146.182L212.72,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
<g transform="matrix(-0.09184,-0.226458,0.585165,-0.237313,776.07,1552.03)">
<path d="M212.72,146.182L212.72,132.063L491.234,132.063L491.234,103.825L540.487,139.123L491.234,174.421L491.234,146.182L212.72,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
<g transform="matrix(-0.242347,-0.0314007,0.0811391,-0.62622,1007.44,1453.94)">
<path d="M212.72,146.182L212.72,132.063L491.234,132.063L491.234,103.825L540.487,139.123L491.234,174.421L491.234,146.182L212.72,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
<g transform="matrix(0.331589,0.464216,-0.513833,0.36703,645.231,1416.91)">
<path d="M251.791,146.182L251.791,174.421L212.72,139.123L251.791,103.825L251.791,132.063L519.389,132.063L519.389,103.825L540.487,139.123L519.389,174.421L519.389,146.182L251.791,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
<g transform="matrix(-0.238092,0.276193,-0.478275,-0.412296,812.148,1376.42)">
<path d="M246.95,146.182L246.95,174.421L212.72,139.123L246.95,103.825L246.95,132.063L507.48,132.063L507.48,103.825L540.487,139.123L507.48,174.421L507.48,146.182L246.95,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
</g>
<g transform="matrix(0.268623,0.0378223,-0.0880408,0.625287,331.337,1404.06)">
<path d="M212.72,146.182L212.72,132.063L496.118,132.063L496.118,103.825L540.487,139.123L496.118,174.421L496.118,146.182L212.72,146.182Z" style="fill:rgb(62,62,62);"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB