Re: GSoC 2026 Proposal - Hardware in the loop CI
Joseph George <[email protected]> Tue, 31 Mar 2026 18:52:44 +0530
| Newsgroups | gmane.comp.gnu.radio.general |
|---|---|
| Message-ID | <CAGv1_4XCA4G=OQQOZownmTEFXc-iZ4-Owi1NTt2E6S2TP9s+=A@mail.gmail.com> |
--000000000000858f91064e51dd35 Content-Type: multipart/alternative; boundary="000000000000858f91064e51dd34" --000000000000858f91064e51dd34 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi everyone, *(Apologies to Cyrille for the double email in your inbox=E2=80=94I acciden= tally hit 'Reply' instead of 'Reply All' on my first attempt! Posting my response here for the community.)* Thank you *Cyrille * for taking the time to read the proposal and for the specific, actionable feedback it made the revision much cleaner. I have updated the proposal to address both points directly: *On the integration test complexity:* The test scenarios are now structured as a three-tier progressive complexity ladder. Tier 1 (UHD streaming stability no RF link, no synchronisation blocks) enters CI first and independently. Tier 2 (BER loopback, FM) follows once Tier 1 is stable. Tier 3 (OFDM, multi-node, advanced sync) is explicitly scoped as stretch goals that do not block the project's core CI deliverable. The timeline milestones reflect this CI integration is never waiting on the most complex tests. *On labgrid vs. Minus:* I have added a dedicated section that answers precisely where labgrid adds capability Minus does not natively provide for automated CI: (1) a blocking reservation queue so concurrent PR jobs don't collide, (2) crash-safe orphan detection via heartbeat so a killed runner doesn't hold a node locked indefinitely, and (3) hardware-agnostic YAML environment files so test scripts aren't coupled to CorteXlab node identifiers. The proposed architecture layers labgrid on top of Minus .Minus continues to handle CorteXlab's native scheduling, while labgrid handles the CI-side locking and queuing. I've also noted that I'll assess the exact Minus integration points during Community Bonding and will fall back to a thin custom shim if the labgrid exporter integration proves more complex than expected. I'm attaching the revised proposal: Hardware in the Loop CI <https://drive.google.com/file/d/1-MeOUqJjFajEY3WxGaCTRGH5u5tcyMLY/view?usp= =3Dsharing> Please let me know if there is anything else you'd like clarified before the deadline. Best regards, Joseph P George On Mon, 30 Mar 2026 at 14:46, Cyrille Morin <[email protected]> wrote: > Hello Joseph, > > I read trough your document. > Overall, it looks good, it appears to have everything required of the > proposal document. > > A couple of thoughts: > > The proposed integrated tests look good and feel like what we would like > to head towards, but being integration tests, they involve a lot of movin= g > parts, so they might require a lot of tweaking and debugging time to work > reliably, which might push back the integration into the CI pipeline. > > I've never used Labgrid so I don't know much about what it can or cannot > help with. But it does sound in your proposal to perform many task alread= y > done by the platform's systems (booking, health check, ...) You might wan= t > to detail where specifically Labgrid would offer new and required > capabilities > > Best > *Cyrille MORIN* > *Ing=C3=A9nieur SED* > *=C3=89quipe MARACAS* > > [image: Logo Inria] > Centre Inria de Lyon > > Laboratoire CITI > Campus La Doua - Villeurbanne > 6 avenue des Arts > F-69621 Villeurbanne > > https://team.inria.fr/maracas/ > Le 28/03/2026 =C3=A0 14:49, Joseph George a =C3=A9crit : > > Hi Cyrille, > > I have completed the first draft of my GSoC 2026 proposal for the > "Hardware in the Loop CI" project. > > Draft : Hardware in the Loop CI > <https://drive.google.com/file/d/1ATLOxq_bvPpG7fizTQtZK-8w_BwadVeF/view?u= sp=3Ddrive_link> > > A huge thank you to Larry and Philip for the insights. I have explicitly > integrated the LBNL Node Health Check paradigm to isolate hardware failur= es > from software regressions, and I've adopted Labgrid as the core hardware > orchestration layer to manage the CorteXlab USRPs. > > I would greatly appreciate any feedback from the community, > > Thanks for your time and guidance! > > Best, Joseph George > > On Thu, 26 Mar 2026 at 22:23, Cyrille Morin <[email protected]> > wrote: > >> Hi Joseph, >> >> Welcome! >> >> Feel free to share your draft here on the mailing list, for feedback by >> members of the community, that's the right place >> >> I don't have a specific format for the tests scenarios, choose what you >> think is best/more readable/most relevant. >> But do look at the GSoC Student info on the wiki if you haven't already: >> https://wiki.gnuradio.org/index.php?title=3DGSoCStudentInfo >> <https://wiki.gnuradio.org/index.php?title=3DGSoCStudentInfo> >> *Cyrille MORIN* >> Le 26/03/2026 =C3=A0 15:56, Joseph George a =C3=A9crit : >> >> Hi Cyrille, >> I=E2=80=99m Joseph, an ECE student and the Chair of the IEEE Signal Proc= essing >> Society at my college. I=E2=80=99m putting together a GSoC proposal for = the >> "Hardware in the loop CI" project and wanted to quickly say hello. >> >> I have a strong background in bridging DSP theory with physical hardware= . >> I recently placed 7th globally in the ICASSP 2026 ALS challenge by build= ing >> domain-driven acoustic biomarker pipelines, and I regularly build hardwa= re >> projects (like ESP32 navigation systems using Kalman filtering for senso= r >> fusion). I'd love to help bring GNU Radio's CI tests out of software onl= y >> simulation and onto the physical CorteXlab hardware. >> >> I am drafting my 12-week timeline right now. Is there a specific format >> you prefer for the test scenarios, or a good place to drop a link to my >> draft for a quick sanity check before Tuesday's deadline? >> >> --000000000000858f91064e51dd34 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><p>Hi everyone,</p><p><i>(Apologies to Cy= rille for the double email in your inbox=E2=80=94I accidentally hit 'Re= ply' instead of 'Reply All' on my first attempt! Posting my res= ponse here for the community.)</i></p><p>Thank you=C2=A0 <i>Cyrille=C2=A0</i>=C2=A0for taking the time to read the proposal and for = the specific, actionable feedback=C2=A0 it made the revision much cleaner.<= br>I have updated the proposal to address both points directly:</p><p><stro= ng>On the integration test complexity:</strong>=C2=A0The test scenarios are= now structured as a three-tier progressive complexity ladder. Tier 1 (UHD = streaming stability no RF link, no synchronisation blocks) enters CI first = and independently. Tier 2 (BER loopback, FM) follows once Tier 1 is stable.= Tier 3 (OFDM, multi-node, advanced sync) is explicitly scoped as stretch g= oals that do not block the project's core CI deliverable. The timeline = milestones reflect this=C2=A0 CI integration is never waiting on the most c= omplex tests.</p><p><strong>On labgrid vs. Minus:</strong>=C2=A0I have adde= d a dedicated section that answers precisely where labgrid adds capability = Minus does not natively provide for automated CI: (1) a blocking reservatio= n queue so concurrent PR jobs don't collide, (2) crash-safe orphan dete= ction via heartbeat so a killed runner doesn't hold a node locked indef= initely, and (3) hardware-agnostic YAML environment files so test scripts a= ren't coupled to CorteXlab node identifiers. The proposed architecture = layers labgrid on top of Minus .Minus continues to handle CorteXlab's n= ative scheduling, while labgrid handles the CI-side locking and queuing. I&= #39;ve also noted that I'll assess the exact Minus integration points d= uring Community Bonding and will fall back to a thin custom shim if the lab= grid exporter integration proves more complex than expected.</p><p>I'm = attaching the revised proposal:=C2=A0<a href=3D"https://drive.google.com/fi= le/d/1-MeOUqJjFajEY3WxGaCTRGH5u5tcyMLY/view?usp=3Dsharing" target=3D"_blank= ">Hardware in the Loop CI</a></p><p>Please let me know if there is anything= else you'd like clarified before the deadline.</p><p>Best regards,<br>= Joseph P George</p></div></div><br><div class=3D"gmail_quote gmail_quote_co= ntainer"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, 30 Mar 2026 at 14:46= , Cyrille Morin <<a href=3D"mailto:[email protected]">cyrille.morin= @inria.fr</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style= =3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding= -left:1ex"><u></u> =20 =20 =20 <div> <p>Hello Joseph,</p> <p>I read trough your document.<br> Overall, it looks good, it appears to have everything required of the proposal document.</p> <p>A couple of thoughts:=C2=A0</p> <p>The proposed integrated tests look good and feel like what we would like to head towards, but being integration tests, they involve a lot of moving parts, so they might require a lot of tweaking and debugging time to work reliably, which might push back the integration into the CI pipeline.</p> <p>I've never used Labgrid so I don't know much about what it c= an or cannot help with. But it does sound in your proposal to perform many task already done by the platform's systems (booking, health check, ...) You might want to detail where specifically Labgrid would offer new and required capabilities</p> <p>Best</p> <div> =20 =20 <strong>Cyrille MORIN</strong><br> <div> <em>Ing=C3=A9nieur SED</em><br> <em>=C3=89quipe MARACAS</em></div> <div><br> <img src=3D"cid:ii_19d440ed269f8cdc8ae1" alt=3D"Logo Inria" width= =3D"200" height=3D"59"><br> <span style=3D"color:rgb(255,0,0)">Centre Inria de Lyon</span></div= > <div><br> Laboratoire CITI<br> Campus La Doua - Villeurbanne<br> 6 avenue des Arts<br> F-69621 Villeurbanne</div> <div><br> </div> <div> <a href=3D"https://team.inria.fr/maracas/" target=3D"_blank">ht= tps://team.inria.fr/maracas/</a><br> </div> </div> <div>Le 28/03/2026 =C3=A0 14:49, Joseph George a =C3=A9crit=C2=A0:<br> </div> <blockquote type=3D"cite"> =20 <div dir=3D"ltr"> <p>Hi Cyrille,</p> <p>I have completed the first draft of my GSoC 2026 proposal for the "Hardware in the Loop CI" project.</p> <p>Draft :=C2=A0<a href=3D"https://drive.google.com/file/d/1ATLOxq_= bvPpG7fizTQtZK-8w_BwadVeF/view?usp=3Ddrive_link" target=3D"_blank">Hardware= in the Loop CI</a></p> <p>A huge thank you to Larry and Philip for the insights. I have explicitly integrated the LBNL Node Health Check paradigm to isolate hardware failures from software regressions, and I've adopted Labgrid as the core hardware orchestration layer to manage the CorteXlab USRPs.</p> <table cellpadding=3D"0" role=3D"presentation" style=3D"border-coll= apse:collapse;margin-top:0px;width:auto;font-family:"Google Sans"= ,Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:14px;display:block= ;color:rgb(119,119,119)"> </table> <p>I would greatly appreciate any feedback from the community,</p> <p>Thanks for your time and guidance!</p> <p>Best, Joseph George</p> </div> <br> <div class=3D"gmail_quote"> <div dir=3D"ltr" class=3D"gmail_attr">On Thu, 26 Mar 2026 at 22:23, Cyrille Morin <<a href=3D"mailto:[email protected]" targe= t=3D"_blank">[email protected]</a>> wrote:<br> </div> <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex= ;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <p>Hi Joseph,</p> <p>Welcome!</p> <p>Feel free to share your draft here on the mailing list, for feedback by members of the community, that's the righ= t place</p> <p>I don't have a specific format for the tests scenarios, choose what you think is best/more readable/most relevant.<br= > But do look at the GSoC Student info on the wiki if you haven't already:<a href=3D"https://wiki.gnuradio.org/inde= x.php?title=3DGSoCStudentInfo" target=3D"_blank">=C2=A0https://wiki.gnuradi= o.org/index.php?title=3DGSoCStudentInfo</a></p> <div> <strong>Cyrille MORIN</strong></div> <div>Le 26/03/2026 =C3=A0 15:56, Joseph George a =C3=A9crit=C2= =A0:<br> </div> <blockquote type=3D"cite"> <div dir=3D"ltr">Hi Cyrille,=C2=A0 <div>I=E2=80=99m Joseph, an ECE student and the Chair of th= e IEEE Signal Processing Society at my college. I=E2=80=99m putting together a GSoC proposal for the "Hardware i= n the loop CI" project and wanted to quickly say hello= .=C2=A0</div> <div><br> </div> <div>I have a strong background in bridging DSP theory with physical hardware. I recently placed 7th globally in the ICASSP 2026 ALS challenge by building domain-driven acoustic biomarker pipelines, and I regularly build hardware projects (like ESP32 navigation systems using Kalman filtering for sensor fusion). I'd love to help bring GNU Radio's CI te= sts out of software only simulation and onto the physical CorteXlab hardware.=C2=A0</div> <div><br> </div> <div>I am drafting my 12-week timeline right now. Is there a specific format you prefer for the test scenarios, or a good place to drop a link to my draft for a quick sanity check before Tuesday's deadline?</= div> </div> </blockquote> </div> </blockquote> </div> </blockquote> </div> </blockquote></div> --000000000000858f91064e51dd34-- --000000000000858f91064e51dd35 Content-Type: image/png; name="Inria_signature_mail_200px.png" Content-Disposition: inline; filename="Inria_signature_mail_200px.png" Content-Transfer-Encoding: base64 Content-ID: <ii_19d440ed269f8cdc8ae1> X-Attachment-Id: ii_19d440ed269f8cdc8ae1 iVBORw0KGgoAAAANSUhEUgAAAMgAAAA7CAYAAAA+XsUpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2 MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOklu c3RhbmNlSUQ9InhtcC5paWQ6NDVFRUQzNzlDQjA3MTFFOThEQTNDMkE4RjU0NUEzRTgiIHhtcE1N OkRvY3VtZW50SUQ9InhtcC5kaWQ6NDVFRUQzN0FDQjA3MTFFOThEQTNDMkE4RjU0NUEzRTgiPiA8 eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NUVFRDM3N0NCMDcx MUU5OERBM0MyQThGNTQ1QTNFOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NUVFRDM3OENC MDcxMUU5OERBM0MyQThGNTQ1QTNFOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8 L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjlpLn4AAAh5SURBVHja7F3dceM2EIZu9B5N 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 RK5CYII= --000000000000858f91064e51dd35--