前言
開源之夏是什么
?先來簡單介紹?下開源之夏。
開源之夏是開源軟件供應(yīng)鏈點亮計劃下的?個暑期活動,由中國科學(xué)院軟件研究所與openEuler社區(qū)聯(lián)合主辦,旨在?勵在校學(xué)?積極參與開源軟件的開發(fā)維護,促進優(yōu)秀開源軟件社區(qū)的蓬勃發(fā)展。
活動聯(lián)合各?開源社區(qū),針對開源項?的開發(fā)與維護提供 mini 任務(wù),開放給全球?校學(xué)?報名申請。學(xué)?可?主選擇感興趣的項?進?申請,并在中選后獲得社區(qū)資深開發(fā)者親?指導(dǎo)的機會。項?成功結(jié)項并貢獻給社區(qū)后,參與者將獲得開源之夏活動獎?和結(jié)項證書。
學(xué)?可?主選擇感興趣的項?進?申請,中選后在項?開發(fā)者(社區(qū)導(dǎo)師)的指導(dǎo)下進?開發(fā)。根據(jù)項?的難易程度和完成情況,結(jié)項者將獲取開源之夏活動獎?和結(jié)項證書。開源之夏官?:https://summer-ospp.ac.cn/我參與開源之夏的?些契機
?先介紹?下我的情況,我是?名研究?,今年的下半年就要找?作。?般來說應(yīng)該在這個暑期找?份實習(xí),來為后?的找?作做準備,但是很可惜,因為某些不可抗?,我?法實現(xiàn)這?計劃。不過這個時候我有同學(xué)給我分享了開源之夏(在這?我要?常感謝分享給我這個活動的同學(xué))。由于開源活動、開源實習(xí)基本是全程線上,適合因為某些原因?法實習(xí)的同學(xué)參與,剛剛好可以稍微替代?下暑期實習(xí)。
開源之夏的申請過程
RT-Thread算是最早?批的加?開源之夏的社區(qū),在?絡(luò)上也可以搜到前?年的開源之夏相關(guān)的信息。
今年的開源之夏RT-Thread社區(qū)同樣也準備不少可選的項?。
在這個??可以看到RT-Thread社區(qū)今年的項?列表。
https://summer-ospp.ac.cn/org/orgdetail/8bce77cd-7c54-48b8-a3e6-f816338692cb
我選擇的項?是:rt-thread上?CI來驗證軟件包的編譯情況(基礎(chǔ))
對于主流和常?的軟件包,添加CI編譯機制,結(jié)合官?給出的pkgs-test,構(gòu)建?個CI機器?,能夠在master提交和修改代碼的時候,能夠知道哪些軟件包編譯不過,并且能夠?成編譯結(jié)果報告,并且將?些可以在qemu上運?的?些程序在qemu上運?并且輸出結(jié)果。先以qemu-vexpress-a9為基準測試軟件包
因為我在之前剛好?過CI?具測試過zepherRTOS的項?,因此我看到這個就?上添加到待選列表??了。
開源之夏的申請?法是需要提交項?的申請書和個?簡歷(申請書在開源之夏?站上會有模版提供)。于是我在了解整個項?過后完成了這兩份材料。
完成材料之后,我根據(jù)導(dǎo)師的聯(lián)系?式,向?qū)熖峁┝松暾垥⒏鶕?jù)項?的?些內(nèi)容介紹了??的相關(guān)經(jīng)驗,?概確定了意向(其實這?我看了項?倉庫的fork和star感覺沒有其他?申請,因此我就沒有再準備申請其他的項?)。
在項?確定下來之后我就開始進?開源之夏的活動了。
項目內(nèi)容
倉庫主?https://github.com/RT-Thread/pkgs-test
項目介紹
官?的項?說明可以在這?查看
https://summer-ospp.ac.cn/org/prodetail/238bc0128
關(guān)于這個項??先需要了解?下什么是RT-Thread的軟件包,RT-Thread軟件包是運?在RT-Thread系統(tǒng)上?的?套通?的代碼庫。相當(dāng)于提供了很多模塊,?如各種外設(shè)的驅(qū)動、?具等等,只要使?的是RT-Thread操作系統(tǒng),就都可以導(dǎo)?并使?。RTThread軟件包和RT-Thread操作系統(tǒng)?樣是?個開源的平臺,任何?都可以制作??的軟件包,也可以去幫助維護別?的軟件包。
因為這種?由、開放的特性,軟件包社區(qū)??會遇到某些軟件包?法使?、不能編譯通過的問題。
-
版本迭代造成的編譯問題(內(nèi)核?件改動后,軟件包沒有去做版本控制)
- 架構(gòu)沖突以及 bsp 依賴問題(某些軟件包只在特定的架構(gòu)或 bsp 中可?)
因此需要?個?具來暴露出社區(qū)軟件包的相關(guān)編譯問題。
使用場景
下?是軟件包測試?具的使?場景。1.本地使用
A. 對特定的軟件包,在?些指定的bsp、rt-thread版本上進?測試。
B. 指定某?個特定的版本或所有版本。
C. 指定的軟件包集合。
2. 作為Github Action使?,測試軟件包是否?持?些rtt版本和bsp。
a.軟件包開發(fā)者
-
軟件包測試:更新軟件包的代碼之后,?動對軟件包進?測試。
-
rt-thread的master測試:定時對軟件包進?測試,檢查是否?持rt-thread的master版本。
b.rt-thread社區(qū)維護?員
-
所有軟件包測試:定時對全部軟件包在master 分?或指定的?些版本上進?測試,并發(fā)布測試結(jié)果到github pages。
-
軟件包索引更新測試:軟件包索引發(fā)?改動時,對改動的部分軟件包進?測試,在github pages上面更新這部分測試結(jié)果。
-
rt-thread版本發(fā)布測試:rt-thread版本發(fā)布后對全部的軟件包進?測試。
-
精品軟件包集合測試(TODO):對?些制定的精品軟件包集合進?測試,?如當(dāng)rt-thread的master分?改動時,測試這些軟件包。
對于?些更具體的介紹,可以來看這?篇?章。
https://club.rt-thread.org/ask/article/9c05fc7fcc0223fe.html
項目工作我在接?這個項?的時候,已經(jīng)完成了本地測試的使?和軟件包索引倉庫使?的?些基本功能,我是在此基礎(chǔ)上進?開發(fā)的。
截止到目前,我完成的內(nèi)容?概如下:
-
將測試的?些參數(shù)(如內(nèi)核版本,測試的bsp等)通過程序運?的參數(shù)傳?。之前是通過修改配置?件來實現(xiàn)的,如果是作為ci?具使?不是很?便。
-
將軟件包的測試結(jié)果?成json并發(fā)布到github pages,主要是提供?個獲取軟件包可?性的?式。完成了對新舊測試結(jié)果的合并,以及上傳沖突的解決?案。
https://rt-thread.github.io/packages/pkgs_res.json
-
從json?成了?個html??也發(fā)布到了githubpages,這?原來是有?個html報告的,主要是從直接?成html改成了從json?成,然后增加了測試時有每個版本有多少個軟件包通過了測試等信息。
https://rt-thread.github.io/packages/
-
然后就是在軟件包索引倉庫添加了這個?具,完成了定期對全部軟件包進?測試。
接下來主要的?作,就是去在RT-Thread倉庫??去集成這個?具,對rt-thread倉庫的每次代碼在?些精選的套裝軟體上?進?測試。以及去完善?下?動測試后的回響,每次測試結(jié)果都不是很?便查看,需要通過actions?動在pr??回復(fù)相關(guān)的?些信息,讓開發(fā)者能夠更?便的了解到哪?出了問題,為什么沒通過檢查。
———————End———————
點擊閱讀原文進入官網(wǎng)
?
原文標(biāo)題:【開源之夏2023】聊?聊開源之夏以及項目的進展(rt-thread上用CI來驗證軟件包的編譯情況)
文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
RT-Thread
+關(guān)注
關(guān)注
31文章
1261瀏覽量
39839
原文標(biāo)題:【開源之夏2023】聊?聊開源之夏以及項目的進展(rt-thread上用CI來驗證軟件包的編譯情況)
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論