Page MenuHomeFreeBSD

freebsd-ci-github-action-pr-quick-code-checker.drawio.svg

Authored By
igor.ostapenko_pm.me
May 25 2023, 3:30 PM
Size
68 KB
Referenced Files
None
Subscribers
None

freebsd-ci-github-action-pr-quick-code-checker.drawio.svg

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than diagrams.net -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="831px" height="3044px" viewBox="-0.5 -0.5 831 3044" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2023-05-25T15:09:57.261Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.10 Chrome/106.0.5249.199 Electron/21.3.5 Safari/537.36&quot; etag=&quot;r4J0m_diR5jbYLlTs-NV&quot; version=&quot;20.8.10&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;hq0vGtqvRUCynK4GQUn_&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 75 1148 C 75 1139.72 113.06 1133 160 1133 C 182.54 1133 204.16 1134.58 220.1 1137.39 C 236.04 1140.21 245 1144.02 245 1148 L 245 1298 C 245 1306.28 206.94 1313 160 1313 C 113.06 1313 75 1306.28 75 1298 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 245 1148 C 245 1156.28 206.94 1163 160 1163 C 113.06 1163 75 1156.28 75 1148" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="95" y="1323" width="130" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1338px; margin-left: 160px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">freebsd/freebsd-src</div></div></div></foreignObject><text x="160" y="1342" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">freebsd/freebsd-src</text></switch></g><rect x="465" y="1353" width="140" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1373px; margin-left: 535px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">contributor/freebsd-src<br />fork</div></div></div></foreignObject><text x="535" y="1377" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">contributor/freebsd-src...</text></switch></g><rect x="20" y="833" width="390" height="90" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 388px; height: 1px; padding-top: 840px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>Owner side cases</b><br />A branch has been pushed directly to freebsd/freebsd-src.<br /><br />I guess, direct pushes are related to automated mirroring processes only. And for now the reasoning is about PRs only.</div></div></div></foreignObject><text x="22" y="852" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Owner side cases...</text></switch></g><rect x="20" y="503" width="390" height="310" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 388px; height: 1px; padding-top: 510px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>Contributor side cases</b><br />A branch has been pushed to contributor/freebsd-src fork.<br /><br /><b>C1</b> This is an orphan branch, no common history with any project branch.<br />SolutionA: Unexpected contributor's behavior.<br /><br /><b>C2</b> This is the only branch within a fork repo.<br />For instance, others are intentionally removed.<br />SolutionA: Unexpected contributor's behavior.<br /><br /><b>C3</b> The branch was forked from a missing now branch.<br />Again, some intentional action.<br />SolutionA: Unexpected contributor's behavior.<br /><br /><b>C4</b> The branch was forked from existing PARENT branch.<br />It's obvious to use PARENT..the-branch revision list, then.<br />Q: How to determine what PARENT is?<br />SolutionA: As long as we configure this style checker for PRs only then we can ignore this case for now, this CI job won't be launched.</div></div></div></foreignObject><text x="22" y="522" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Contributor side cases...</text></switch></g><rect x="420" y="503" width="390" height="280" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 388px; height: 1px; padding-top: 510px; margin-left: 422px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>PR cases</b><br />A contributor proposes a merge from contributor/freebsd-src/src-branch to freebsd/freebsd-src/dst-branch.<br /><br /><b>P1</b> For some reason the branches do not have a common ancestor.<br />Is it even possible or logical within GitHub PR process?<br />SolutionA: Unexpected contributor's behavior.<br /><br /><span style="background-color: rgb(230, 255, 204);"><b style="">P2</b> A usual Pull Request -- the branches do have a common ancestor.</span><br />Some official GitHub terms:<br />  - base branch - target branch, e.g. freebsd/freebsd-src/main<br />  - head branch - source branch, e.g. contributor/freebsd-src/fix<br />We would like to fetch enough data to reach $(git merge-base baseb headb) and use baseb..headb rev list for style checking.<br /><span style="background-color: rgb(230, 255, 204);">SolutionA: It could be done with guessing that a single N depth fetch is enough.</span><br />SolutionB: Iteratively fetch until merge base is found.</div></div></div></foreignObject><text x="422" y="522" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">PR cases...</text></switch></g><rect x="250" y="23" width="310" height="110" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 308px; height: 1px; padding-top: 78px; margin-left: 251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>FreeBSD CI with GitHub Actions: PR <b>quick code checker<br /></b><p><span style="font-weight: normal;">thinking out loud...</span></p></h2></div></div></div></foreignObject><text x="405" y="82" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">FreeBSD CI with GitHub Actions: PR quick code check...</text></switch></g><rect x="20" y="163" width="760" height="200" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 170px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">I suppose it's better to start from the very top to make sure we are looking at the same picture. Just in case.<br /><br />Ideally, I would think of code style check for the whole source code. Then it would be straightforward from CI perspective. But, I guess, it may consume a lot of resources and time, plus, probably, the existing code does not conform to the expected style (i.e. the check would always fail), and there is integrated third-party software with their own style, and so on. Also, we want to check not only code style but other non-code things like author email of new commits, and something else can be added in future like commit log msg format etc.<br /><br />So, we ended up with the feeling that we want to focus the checker on all the new commits provided by the change. In order to do that we need to compare contributor's branch with PR's target branch. Git can easily do that if we have all the commits in question fetched. But GitHub actions/checkout fetches only a single grafted commit by default (git fetch --depth=1), because of the focus usually is on the content only. The project repo is big and we also like the idea not to fetch the whole repo to keep it optimal way, to save time and resources.<br /><br />As a result, the open question is: <span style="background-color: rgb(230, 255, 204);">How to determine a respective rev list for a PR?</span></div></div></div></foreignObject><text x="22" y="182" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">I suppose it's better to start from the very top to make sure we are looking at the same picture. Just in case....</text></switch></g><rect x="20" y="463" width="760" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 470px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">I've started to outline all the cases I can quickly imagine:</div></div></div></foreignObject><text x="22" y="482" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">I've started to outline all the cases I can quickly imagine:</text></switch></g><rect x="245" y="403" width="320" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 423px; margin-left: 246px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>Digging into the details</h2></div></div></div></foreignObject><text x="405" y="427" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Digging into the details</text></switch></g><rect x="245" y="953" width="320" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 318px; height: 1px; padding-top: 973px; margin-left: 246px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>P2 case -- A usual Pull Request</h2></div></div></div></foreignObject><text x="405" y="977" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">P2 case -- A usual Pull Request</text></switch></g><rect x="20" y="1023" width="760" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 1030px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Fortunately, GitHub helps us with the fact that a CI job runs against an already cooked merge commit. Let's see the details.<br /><br />Assume, we have the following picture where a contributor created two new commits first:</div></div></div></foreignObject><text x="22" y="1042" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Fortunately, GitHub helps us with the fact that a CI job runs against an already cooked merge commit. Let's see the details....</text></switch></g><path d="M 180 1203 L 180 1223 L 180 1203 L 180 1216.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 180 1221.88 L 176.5 1214.88 L 180 1216.63 L 183.5 1214.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="180" cy="1188" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1188px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">B</div></div></div></foreignObject><text x="180" y="1192" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">B</text></switch></g><path d="M 180 1253 L 180 1273 L 180 1253 L 180 1266.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 180 1271.88 L 176.5 1264.88 L 180 1266.63 L 183.5 1264.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="180" cy="1238" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1238px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">A</div></div></div></foreignObject><text x="180" y="1242" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">A</text></switch></g><ellipse cx="180" cy="1288" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1288px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">...</div></div></div></foreignObject><text x="180" y="1292" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">...</text></switch></g><path d="M 95 1178 L 155 1178 L 155 1178 L 165 1188 L 155 1198 L 155 1198 L 95 1198 L 105 1188 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1188px; margin-left: 130px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">main</div></div></div></foreignObject><text x="130" y="1192" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">main</text></switch></g><path d="M 365 1118 C 365 1109.72 441.11 1103 535 1103 C 580.09 1103 623.33 1104.58 655.21 1107.39 C 687.09 1110.21 705 1114.02 705 1118 L 705 1328 C 705 1336.28 628.89 1343 535 1343 C 441.11 1343 365 1336.28 365 1328 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 705 1118 C 705 1126.28 628.89 1133 535 1133 C 441.11 1133 365 1126.28 365 1118" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 505 1228 L 505 1248 L 505 1228 L 505 1241.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 505 1246.88 L 501.5 1239.88 L 505 1241.63 L 508.5 1239.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="505" cy="1213" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1213px; margin-left: 491px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">B</div></div></div></foreignObject><text x="505" y="1217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">B</text></switch></g><path d="M 505 1278 L 505 1298 L 505 1278 L 505 1291.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 505 1296.88 L 501.5 1289.88 L 505 1291.63 L 508.5 1289.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="505" cy="1263" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1263px; margin-left: 491px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">A</div></div></div></foreignObject><text x="505" y="1267" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">A</text></switch></g><ellipse cx="505" cy="1313" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1313px; margin-left: 491px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">...</div></div></div></foreignObject><text x="505" y="1317" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">...</text></switch></g><path d="M 420 1203 L 480 1203 L 480 1203 L 490 1213 L 480 1223 L 480 1223 L 420 1223 L 430 1213 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1213px; margin-left: 455px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">main</div></div></div></foreignObject><text x="455" y="1217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">main</text></switch></g><path d="M 570 1178 L 570 1198 L 570 1178 L 570 1191.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 570 1196.88 L 566.5 1189.88 L 570 1191.63 L 573.5 1189.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="570" cy="1163" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1163px; margin-left: 556px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2</div></div></div></foreignObject><text x="570" y="1167" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><path d="M 555 1213 L 535 1213 L 540 1213 L 526.37 1213" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 521.12 1213 L 528.12 1209.5 L 526.37 1213 L 528.12 1216.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="570" cy="1213" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1213px; margin-left: 556px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1</div></div></div></foreignObject><text x="570" y="1217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><path d="M 585 1153 L 645 1153 L 645 1153 L 655 1163 L 645 1173 L 645 1173 L 585 1173 L 595 1163 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(620,0)scale(-1,1)translate(-620,0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1163px; margin-left: 620px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">fix</div></div></div></foreignObject><text x="620" y="1167" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">fix</text></switch></g><rect x="20" y="1413" width="760" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 1420px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Then a contributor creates a PR against mainstream repo's main branch, and GitHub creates a respective merge commit within the mainstream repo. And main branch has evolved meanwhile: </div></div></div></foreignObject><text x="22" y="1432" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Then a contributor creates a PR against mainstream repo's main branch, and GitHub creates a respective merge commit within the...</text></switch></g><rect x="280" y="1783" width="130" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1798px; margin-left: 345px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">freebsd/freebsd-src</div></div></div></foreignObject><text x="345" y="1802" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">freebsd/freebsd-src</text></switch></g><path d="M 240 1488 C 240 1479.72 287.01 1473 345 1473 C 372.85 1473 399.55 1474.58 419.25 1477.39 C 438.94 1480.21 450 1484.02 450 1488 L 450 1758 C 450 1766.28 402.99 1773 345 1773 C 287.01 1773 240 1766.28 240 1758 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 450 1488 C 450 1496.28 402.99 1503 345 1503 C 287.01 1503 240 1496.28 240 1488" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 338 1658 L 338 1678 L 338 1658 L 338 1671.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 338 1676.88 L 334.5 1669.88 L 338 1671.63 L 341.5 1669.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="338" cy="1643" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1643px; margin-left: 324px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">B</div></div></div></foreignObject><text x="338" y="1647" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">B</text></switch></g><path d="M 338 1708 L 338 1728 L 338 1708 L 338 1721.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 338 1726.88 L 334.5 1719.88 L 338 1721.63 L 341.5 1719.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="338" cy="1693" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1693px; margin-left: 324px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">A</div></div></div></foreignObject><text x="338" y="1697" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">A</text></switch></g><ellipse cx="338" cy="1743" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1743px; margin-left: 324px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">...</div></div></div></foreignObject><text x="338" y="1747" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">...</text></switch></g><path d="M 253 1583 L 313 1583 L 313 1583 L 323 1593 L 313 1603 L 313 1603 L 253 1603 L 263 1593 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1593px; margin-left: 288px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">main</div></div></div></foreignObject><text x="288" y="1597" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">main</text></switch></g><path d="M 418 1608 L 418 1628 L 418 1608 L 418 1621.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 418 1626.88 L 414.5 1619.88 L 418 1621.63 L 421.5 1619.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="418" cy="1593" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1593px; margin-left: 404px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2</div></div></div></foreignObject><text x="418" y="1597" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><path d="M 403 1643 L 359.37 1643" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 354.12 1643 L 361.12 1639.5 L 359.37 1643 L 361.12 1646.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="418" cy="1643" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1643px; margin-left: 404px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1</div></div></div></foreignObject><text x="418" y="1647" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><path d="M 433 1583 L 493 1583 L 493 1583 L 503 1593 L 493 1603 L 493 1603 L 433 1603 L 443 1593 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(468,0)scale(-1,1)translate(-468,0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1593px; margin-left: 468px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">fix</div></div></div></foreignObject><text x="468" y="1597" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">fix</text></switch></g><path d="M 393 1538 L 418 1538 L 418 1571.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 418 1576.88 L 414.5 1569.88 L 418 1571.63 L 421.5 1569.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 363 1538 L 338 1538 L 338 1571.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 338 1576.88 L 334.5 1569.88 L 338 1571.63 L 341.5 1569.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="378" cy="1538" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1538px; margin-left: 364px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PR</div></div></div></foreignObject><text x="378" y="1542" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">PR</text></switch></g><path d="M 338 1608 L 338 1621.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 338 1626.88 L 334.5 1619.88 L 338 1621.63 L 341.5 1619.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="338" cy="1593" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 1593px; margin-left: 324px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">C</div></div></div></foreignObject><text x="338" y="1597" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">C</text></switch></g><path d="M 395 1523 L 595 1523 L 595 1523 L 605 1533 L 595 1543 L 595 1543 L 395 1543 L 405 1533 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(500,0)scale(-1,1)translate(-500,0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1533px; margin-left: 500px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">refs/remotes/pull/&lt;PRID&gt;/merge</div></div></div></foreignObject><text x="500" y="1537" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">refs/remotes/pull/&lt;PRID&gt;/merge</text></switch></g><rect x="20" y="1833" width="760" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 1840px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">"PR" merge commit is what actions/checkout fetches to run our CI job against. If we ask git to fetch with depth=2 then we will have commits "PR", "C", and "2" locally. It's not enough to determine correct main..fix rev list. It will yield "2" as the only commit we are interested in. But if we fetch deeper down to "B", then common ancestor will be around (it's "B") and main..fix rev list will yield the expected result: "2", "1".<br /><br />So, this fact how GitHub runs CI job for PRs <span style="background-color: rgb(230, 255, 204);">allows us not to guess the destination branch to compare with</span>.<br /><br />Now we have another question: <span style="background-color: rgb(230, 255, 204);">How to determine required fetch depth?</span></div></div></div></foreignObject><text x="22" y="1852" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">"PR" merge commit is what actions/checkout fetches to run our CI job against. If we ask git to fetch with depth=2 then we will...</text></switch></g><rect x="203" y="1973" width="405" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 403px; height: 1px; padding-top: 1993px; margin-left: 204px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>P2.SolutionA -- A hard coded depth</h2></div></div></div></foreignObject><text x="406" y="1997" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">P2.SolutionA -- A hard coded depth</text></switch></g><rect x="20" y="2033" width="760" height="170" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 2040px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">I think we could research and play with GitHub API in order to make their server side answer our question "what is a common ancestor", their server side has all the commits in place to easily do that. It would allow us to know how deep the fetch should be. But, even if it's possible, I guess it will be additional complexity and dependency. Anyway, alternatives research is an open topic.<br /><br />As Warner suggests we could go ahead with some hard-coded depth for now, e.g. N=500. Not to complicate the things with iterative approaches etc, e.g. <a href="https://github.com/ihoro/freebsd-src/commit/93ae793749ff06ed3ee03f368bedb1fc31687434">https://github.com/ihoro/freebsd-src/commit/93ae793749ff06ed3ee03f368bedb1fc31687434</a>.<br /><br />Assuming that N is enough to reach a common ancestor, we could <span style="background-color: rgb(230, 255, 204);">simply ask actions/checkout to do its job with fetch-depth=N and get the wanted rev list as HEAD^..HEAD^2</span>. The first "PR" commit's parent (HEAD^) is our destination branch, and the second parent (HEAD^2) is the source. And Git would fetch with depth=N for both parents. It looks to be our solution, e.g. it's tested here: <a href="https://github.com/freebsd/freebsd-src/actions/runs/5081239774">https://github.com/freebsd/freebsd-src/actions/runs/5081239774</a>. The commit itself: <a href="https://github.com/ihoro/freebsd-src/commit/3b6d00f7bbb9e239e5e50687986852b849fd6492">https://github.com/ihoro/freebsd-src/commit/3b6d00f7bbb9e239e5e50687986852b849fd6492</a>.</div></div></div></foreignObject><text x="22" y="2052" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">I think we could research and play with GitHub API in order to make their server side answer our question "what is a common an...</text></switch></g><rect x="208" y="2223" width="405" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 403px; height: 1px; padding-top: 2243px; margin-left: 209px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>What if N is not deep enough?</h2></div></div></div></foreignObject><text x="411" y="2247" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">What if N is not deep enough?</text></switch></g><rect x="20" y="2283" width="760" height="140" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 2290px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">It can be if the source (e.g. fix) was forked a long time ago comparing to current state of the destination (e.g. main). Thus, N is enough for digging the source branch (it's not expected to have a lot of commits per PR), but it's not enough to reach a common ancestor from the destination branch's head.<br /><br />I have not researched the internals of checkstyle9.pl, but I suppose it's going to have a hard time when it faces a grafted commit -- it will be like checking the whole source code. This is what I meant as a "disaster" in my tweet. That's why I expect that the CI job will fail or time out if N is not enough. I tested it before and cancelled the job manually after ~20 min of checkstyle9.pl run. In such situation, I think we could suggest a contributor to simply rebase their branch against the latest state of the destination one. If it sounds important, we could mention it in the ./CONTRIBUTING.md.</div></div></div></foreignObject><text x="22" y="2302" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">It can be if the source (e.g. fix) was forked a long time ago comparing to current state of the destination (e.g. main). Thus,...</text></switch></g><rect x="203" y="2453" width="405" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 403px; height: 1px; padding-top: 2473px; margin-left: 204px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>Isn't it too heavy to fetch N=500?</h2></div></div></div></foreignObject><text x="406" y="2477" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Isn't it too heavy to fetch N=500?</text></switch></g><rect x="20" y="2513" width="760" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 2520px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Anyway, git has to fetch a lot even with depth=1 in order to checkout the full state of the source code. Today It's around 100k objects and ~300MiB to download for main branch. And going deeper after that is expected to be easier and depends on weight of the past commits. Of course, some commit may bring a big change, but I don't think its size is comparable to the whole source base. For instance, I moved deeper with depth=500 and got additional 14MiB transferred (I have not checked, but I wonder whether llvm upgrade was in between or something else which is big).</div></div></div></foreignObject><text x="22" y="2532" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Anyway, git has to fetch a lot even with depth=1 in order to checkout the full state of the source code. Today It's around 100...</text></switch></g><rect x="208" y="2623" width="405" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 403px; height: 1px; padding-top: 2643px; margin-left: 209px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>Could we cover C4 case?</h2></div></div></div></foreignObject><text x="411" y="2647" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Could we cover C4 case?</text></switch></g><rect x="20" y="2683" width="760" height="180" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 2690px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Probably, it will be useful to warn a contributor as soon as possible about style issues etc. Then it should be checked upon usual pushes to their own fork repo. But it gets us back to PARENT branch guessing question. Well, probably, we could have some hard-coded fallback to "main" in case it's a usual push, not a PR. But it may not help if it's about stable/X or another branch which has less in common with main, due to MFC process based on cherry picking and other reasons.<br /><br />Ones practice it such way that they create PR in a draft mode first and then continue their work by adding commits -- then I expect C4 case to be covered by P2 case, i.e. GitHub CI would react on each new commit added to update PR state.<br /><br />Maybe, it's too much for these days and we can ignore this case for now, e.g. Warner has configured it for pull requests only for now. But, current configuration for ci-* branch pushes is expected to fail then. If we are interested in such fallback workaround then it could be like this: <a href="https://github.com/ihoro/freebsd-src/commit/b7e752a18f7740e97eb8feaf95328441408b4104">https://github.com/ihoro/freebsd-src/commit/b7e752a18f7740e97eb8feaf95328441408b4104</a><span style="text-align: center;">.</span></div></div></div></foreignObject><text x="22" y="2702" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Probably, it will be useful to warn a contributor as soon as possible about style issues etc. Then it should be checked upon u...</text></switch></g><rect x="203" y="2883" width="405" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 403px; height: 1px; padding-top: 2903px; margin-left: 204px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><h2>Further thoughts</h2></div></div></div></foreignObject><text x="406" y="2907" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Further thoughts</text></switch></g><rect x="20" y="2943" width="760" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 758px; height: 1px; padding-top: 2950px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Probably we could have a single entry point for a commit checking (style, email, log msg, etc) as a single shell script. And it could be re-used the same way for different types of dev processes, not only for GitHub PR case, but also for project internal dev processes built around the original repo. I'm not aware of those internal agreements and processes, maybe this idea makes no sense. Anyway, this is for future.</div></div></div></foreignObject><text x="22" y="2962" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Probably we could have a single entry point for a commit checking (style, email, log msg, etc) as a single shell script. And i...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>

File Metadata

Mime Type
image/svg+xml
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5938313
Default Alt Text
freebsd-ci-github-action-pr-quick-code-checker.drawio.svg (68 KB)

Event Timeline