LabVIEW Open Source – NI Ikon-Editoren

NI (National Instruments) har, efter overtagelsen af Emerson, lagt en ny strategi for at åbne dele af LabVIEW og udvikle det som open-source software. Dette blev præsenteret i deres keynote på NI Connect 2024 af Elijah Kerry og Jim Kring. Det betyder helt kort, at vi i community’et har muligheden for at forbedre LabVIEW. Det første projekt af denne slags er Ikon-Editoren og dens kildekode, som er lagt op på Github. Hvis du godt kunne tænke dig at vide mere om processen og status på projektet, så læs med her.

Ikon-editoren

Valget faldt på Ikon-editor–projektet, da det allerede er modulært, og har været det i mange år. Vejen til succes var derfor kortere, end hvis man skulle starte forfra. Ikon-editor-softwaren er skrevet i LabVIEW. Det vil sige, at hver gang du laver ikoner, starter du et lille LabVIEW-program inde i LabVIEW. Ikon-editoren har eksisteret siden begyndelsen, så koden er gammel. Den blev omskrevet til LabVIEW 2009 grundet introduktionen af object-orienteret kode, som der er skrevet en god artikel om på LabVIEW Wiki omkring den generelle brug af Ikon-editoren samt de forskellige værktøjer.

Ikon-editor-projektet som open source

Selve projektet som open source er et forgangsprojektet, hvor NI lærer og tilpasser processerne for at kunne tage kildekode ind fra community’et. Det omhandler både, hvordan man udvikler koden, styrer projektet, samt hvordan NI R&D kan integrere det resulterende produkt til næste LabVIEW-version. Dertil kommer, hvordan NI sikrer sig brugsret over den kode, som bliver til i forbindelse med projektet. Dette betyder også, at Nis fremtidige open source-projekter er afhængige af, at Ikon-editor-projektet bliver en succes, for at disse kan blive åbnet op til forbedringer.

Ikon-editor-styringskomitéen ledes af Sergio Velderrain fra NI sammen med mange andre fra communityet og jeg. Komitéens formål er at diskutere og revidere processerne for, hvordan projektet modtager kode udefra, samt at processere udefrakommende forbedringer til ikon-editoren. Dette har også betydet, at processen er blevet omskrevet en del gange siden gruppen startede. Udviklingsprocessen for projektet er Git Flow, hvor der er en stabil main branch og en mere omskiftelig udviklingsbranch. Fordelen ved at lægge sig op ad denne proces er,at hvis man allerede kender til Git Flow, er det nemt at komme i gang. Alle nye tilføjelser til projektet starter som en “Diskussion”, hvilket kan blive til et “Issue”, som så kan blive implementeret og komme med i en senere version af LabVIEW.

Hvad er der sket indtil videre?

Det første, som projektet har løst, er et LabVIEW-baseret “Continuous Integration (CI)” System til at afvikle alle unittests og lave nye byg af softwaren. Unittests er en nødvendighed inden for softwareudvikling, for at sikre, at eksisterende features stadig virker, selvom man ændrer på koden. Inden for LabVIEW-miljøet er det ikke normalt at bruge testdrevet udvikling (TDD), hvor man skriver testen, før man skriver koden. Derefter udvikler man koden, indtil testen kan passere. I ikon-editor-projektet bruges LUnit til at skrive unittests med. Unittests er en god indgangsvinkel til at komme i gang med at deltage i et open-source-projekt.

En anden læring, som hurtigt dukkede frem i projektet for styrekomitéen, var, at det umiddelbart ikke var simpelt at skifte Ikon-editoren ud, så man hurtigt kunne teste noget af. Dette er dog blevet løst skrivende stund og løsningen letter arbejdet med at kunne teste sin code og sine rettelser inde fra LabVIEW. Du kan holde dig opdateret her på projektet her.

Yderligere har vi lagt en stor indsats i at få dokumentationen op på et niveau, hvor det er nemt at gå til som ny udvikler.

Hvad får man ud af det som udvikler?

Det at deltage i eller oprette et open –source-projekt er et godt læringsprojekt for dig selv i forhold til god softwareudvikling. I dette projekt er det NI, som stiller kravene til udviklingen, så det er ligesom taget ud af ligningen. Der er behov for udvikling af nye features eller løsning af fejl, men der er også brug for dokumentation og tests, som dækker de implementerede features og bugs.

En anden god læring er, at man skal begrænse sine rettelser til kun at omhandle den enkelte feature, som man arbejder på, og dermed reducere scope for rettelsen. Det kan være fristende at fikse flere problemer på samme branch, men det kan få konsekvenser, hvis for eksempel man skal rulle den givne branch tilbage. I det tilfælde går man fra at fjerne en enkelt løsning på det givne problem til også at fjerne de to andre løsninger på problemer, som er implementeret på samme branch.

Derudover bliver man bekendt med, hvordan LabVIEW er opbygget modulært, hvordan man bruger de nye LabVIEW Add-on features og meget mere. Helt generelt vil jeg sige, at du bliver en bedre udvikler ved at arbejde med open-source-projekter. Hvis ikke LabVIEW’s Ikon-editor er din kop te, så er der masser af andre projekter, du kan kaste dig over. Det koster ikke noget, og du må gerne bruge LabVIEW Community Edition til formålet, så længe det er et gratis open –source-projekt.

Vi ses derinde 😉

/Jesper Kjær Sørensen, Systems Engineer – GPower

Del:

LinkedIn
Facebook
Email
#blog

Tidligere indlæg