天天看點

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

編輯語:

晶片開放社群(OCC)面向開發者推出RISC-V系列内容,通過多角度、全方位解讀RISC-V,系統性梳理總結相關理論知識,建構RISC-V知識圖譜,促進開發者對RISC-V生态全貌的了解。

在前幾期内容中,我們為大家介紹了YoC基礎軟體平台及其五大元件對RISC-V生态開發的支援。RISC-V生态的成長與發展還需要更多開發者的參與,YoC基礎軟體平台也亟待更多開發者加入開發并開源。是以,本期内容我們将為大家具體介紹如何上傳元件到OCC進行開源。

# 修改曆史

  • 更改product元件為産品元件
  • 更新元件添加頁面為最新頁面

# 開源須知

開發者和廠商貢獻産品解決方案或元件,需要明确以下事項:

  • 以郵件的方式明确平頭哥YoC管理者需要開源的元件群組件管理者資訊。
  • 産品解決方案不放在OCC上,需要發郵件給平頭哥管理者進行審批, 通過後以通用元件的方式開源 。
  • 明确元件代碼是否涉及GPL等協定,如果涉及GPL等協定,不接收該元件。但可通過文檔說明的方式,確定利用該元件做産品的開發者或廠商能找到元件管理者。
  • 針對内部開發者貢獻的新元件和新解決方案,開發者自行走集團開源方案,通過後郵件通知平頭哥YoC管理者。
  • 平頭哥YoC管理者負責把元件和解決方案推到GITEE或GITHUB官網。

注意:平頭哥YoC管理者郵箱為: [email protected], [email protected]

01 元件組成

所有元件名字不可重複,名字規範為C語言變量的命名規則,不可超過64位元組長度。原則上都采用小寫。

  • chip元件

至少包括include, src, package.yaml,README.md

命名規則:xxxx_chip (xxxx為晶片名字/型号), 位于components下。

  • board元件

至少包括include, src, config, package.yaml,README.md

命名規則:xxxx_[cpuX]_evb(xxxx為晶片名字/型号;在多核的情況下,X為序号,從0開始), 位于board下。

  • drv元件(common元件類型)

命名規則:drv_[xxxx]_yyyy (xxxx為IP名字,比如wifi,  yyyy為晶片名字/型号), 位于components下。

  • solution元件

至少包括app, Makefile, SCconstruct, package.yaml,README.md

命名規則:一般能指明這是個solution即可。

  • 如果是demo,一般命名為xxx_[cpuX]_demo,比如wifi_demo。在多核的情況下,X為序号,從0開始
  • 如果是平台方案實作,一般命名為xxxx_[cpuX]_function, 比如sc5654_boot。在多核的情況下,X為序号,從0開始
  • common元件

命名規則:唯一, 位于components下。

  • 虛拟元件

虛拟元件本身沒有代碼實作,隻是用于把相關的元件歸類在一起。

至少包括 package.yaml,README.md

目前YoC裡支援的虛拟元件有:

  • sdk_chip_xxxx

晶片SDK虛拟元件包括晶片驅動,基本核心,常用的功能CLI, KV等元件。開發者可以直接在此基礎之上進行二次開發。

  • sys_ble

BLE子系統,包括藍牙協定棧和藍牙服務等功能

  • sys_wifi

WiFi子系統,包括無線協定棧和WiFi服務等功能

  • sys_voice

語音子系統,包括播放器,MIC, RECORD等功能

  • sys_security

本機安全性授權包括密鑰管理、SSL協定棧,算法庫等功能

  • sdk_app_xxxx

解決方案虛拟元件包括晶片所有的解決方案和DEMO

一般情況下,一個解決方案由晶片SDK虛拟元件、子系統以及第三方SDK組成。

02 元件開發

開發者可以利用劍池CDK和yoctools進行元件開發,通過下列方式進行安裝劍池CDK或yoctools

  • 通過劍池CDK安裝包進行安裝
  • sudo pip install yoctools

2.1 劍池CDK開發

2.1.1 擷取解決方案

打開劍池CDK進入主界面,選擇Project->New IoT Project根據提示, 選擇對應開發闆的解決方案。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

2.1.2 擷取目标元件

單擊home工具圖示進入"show welcome page",輸入目标元件名字搜尋,找到元件後選擇下載下傳,添加完成後,在工程視窗package節點下可以看到添加的元件。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

2.1.3 建立開發倉庫

開發者擷取解決方案或元件代碼後,可以根據自身的需求在代碼托管平台上建立元件開發倉庫,進行元件開發。

2.1.4 開發元件功能

開發者在開發過程中送出代碼到元件開發倉庫,直到元件功能完成。

2.1.5 貢獻釋出元件

開發者将元件貢獻合入YoC,需要按照以下章節3進行操作。

2.2 yoctools開發

2.2.1 擷取解決方案

根據已經釋出的解決方案版本,開發者可以根據以下指令擷取解決方案, 比如開發者想利用v7.4.0版本helloworld解決方案進行開發,可以通過以下指令擷取:

yoc init
yoc install helloworld -b v7.4.0      

2.2.2 擷取目标元件

根據已經釋出的元件版本,開發者可以根據以下指令擷取目标元件, 比如開發者想利用v7.4.0版本kv解決方案進行開發,可以通過以下指令擷取:

yoc install kv -b v7.4.0      

2.2.3 建立開發倉庫

2.2.4 開發元件功能

2.2.5 貢獻釋出元件

03 元件送出

開發者貢獻元件給YoC,需要根據新增元件和現有元件分别處理。

對于需要建立新元件倉庫,分為兩種情況:

  • 送出元件開發者郵箱、元件功能描述等資訊給平頭哥管理者,由管理者進行統一建立GITEE元件倉庫。
  • 可以自行建立元件GITEE倉庫,但需要将組建倉庫位址送出給平頭哥管理者進行倉庫管理。

為了滿足産品釋出需要,如果遇到YoC公共元件修改的情況,可以先建立元件分支,先進行釋出,釋出後需要群組件Owner進行讨論溝通,确認合入元件主幹的計劃。

3.1 新增元件

  • 内部開發者向YoC倉庫管理者申請AONE元件新倉庫(預設建立倉庫包含master分支, 釋出分支需要元件管理者自行建立)。
  • 外部開發者向YoC倉庫管理者申請GITEE元件新倉庫(預設建立倉庫包含master分支,釋出分支需要元件管理者自行建立)。
  • 外部開發者向YoC倉庫管理者提供已經申請好的新倉庫位址(預設建立倉庫包含master分支,釋出分支需要元件管理者自行建立)。

開發者将元件代碼送出到新元件倉庫的master分支和DEV分支,然後将代碼上傳到master分支和dev分支,打上标簽進行釋出,标簽遵循vX.Y.Z版本規則,初始版本号元件管理者自己定義。

3.2 現有元件

  • 内部開發者送出元件代碼到AONE現有元件倉庫開發分支上,元件管理者根據需要評估合入方式,測試通過後,直接打上标簽進行釋出。
  • 外部開發者送出元件代碼到GITEE現有元件倉庫DEV分支上,元件管理者根據需要評估合入方式,測試通過後,打上标簽進行釋出。

04 元件測試

開發者送出元件代碼到元件倉庫,會觸發元件CI測試,根據新增元件和現有元件,元件CI測試用例處理不同。

元件CI系統在測試完成後會自動發郵件給元件管理者,元件管理者可以登入代碼托管元件倉庫檢視測試結果。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

4.1 新增元件

  • 内部開發者送出元件代碼到AONE的元件開發分支前,需要群組件測試管理者讨論新元件自動化測試用例,保證新組建送出到元件開發分支上會觸發CI元件自動化測試
  • 外部開發者送出元件代碼到GITEE的元件開發分支
  • 如果元件管理者是外部開發者,元件管理者自行保證元件功能測試。
  • 如果元件管理者有平頭哥内部人員,需要群組件測試管理者讨論新元件自動化測試用例,保證新元件送出到元件開發分支上會觸發CI元件自動化測

4.2 現有元件

  • 更新元件功能代碼
  • 内部開發者送出元件到AONE的元件開發分支或新增分支,會觸發CI元件自動化測試。
  • 外部開發者送出元件到GITEE的元件開發分支或新增分支,會觸發CI元件自動化測試。
  • 擴充元件功能代碼
  • 内部開發者送出元件代碼到AONE的元件分支或新增分支前,需要群組件測試管理者讨論擴充元件功能自動化測試用例,保證元件送出到元件開發分支上會觸發CI元件完整自動化測試
  • 外部開發者送出元件代碼到GITEE的元件分支或新增分支,
  • 如果元件管理者有平頭哥内部人員,需要群組件測試管理者讨論擴充元件功能自動化測試用例,保證元件送出到元件開發分支上會觸發CI元件完整自動化測試

05 元件合入

  • 送出元件測試通過,則開發者通過pull request 請求合入元件倉庫開發分支,元件管理者決定何時釋出。具體pull request流程請參考 https://gitee.com/help/articles/4133
  • 送出元件測試不通過,則元件管理者拒絕合入和取消請求,郵件通知開發者測試結果,要求修改後重新送出。

新元件合入元件倉庫後,需要通知倉庫管理者在manifest倉庫加入該新組建,確定外部能夠正确擷取。

06 元件釋出

6.1 通過劍池CDK釋出

注意:通過劍池CDK釋出的元件是以ZIP包的方式上傳到OCC上,并非上傳到元件倉庫。

6.1.1 添加common元件

  • 步驟一    進入我的釋出

單擊home工具圖示進入"show welcome page",進入我的釋出,

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟二    上傳common元件

點選右上角的"上傳本地元件"按鈕,選擇本地的需要釋出的common元件,上傳成功。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟三    檢視釋出common元件

點選左側的"元件資源",可以看到釋出的元件已在其中。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

6.1.2 添加産品元件

  • 步驟一    登入OCC賬戶

隻有具備企業資質認證的賬戶才能釋出産品元件,否則無權限釋出。

  • 步驟二    進入我的釋出
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟三    上傳産品元件

點選右上角的"上傳本地元件"按鈕,選擇本地的需要釋出的産品元件,上傳成功。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟四    檢視釋出産品元件

點選左側的"我的釋出"->我的方案,可以看到釋出的産品元件已在其中。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

6.2 通過控制台釋出

6.2.1 添加Common元件

  • 步驟一    登入OCC,進入OCC控制台
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟二    點選左側元件管理菜單,點選右側新增按鈕
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟三    點選選擇GITEE添加方式,依次填寫元件名稱和倉庫元件位址,最後确定即可
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

6.2.2 添加産品元件

  • 步驟一 登入OCC,進入OCC控制台
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟二    點選晶片管理,進入晶片管理頁面
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟三    選擇産品,點選編輯按鈕,進入産品詳細頁
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟四    選擇元件TAB,點選上傳元件
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
  • 步驟五    點選選擇GITEE添加方式,依次填寫元件名稱和倉庫元件位址,最後确定即可
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

6.2.3 元件倉庫資訊同步

一旦元件的倉庫發生變動,比如新的版本釋出,新的分支建立,新的TAG添加等,OCC的元件管理服務不會主動去拉取元件倉庫資訊(原因是GITEE對元件的倉庫重新整理次數有日限制), 需要元件管理者人為的在OCC控制台的元件管理項對更新的元件進行重新整理。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

07 元件倉庫消息設定

7.1 關注倉庫

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

點選右上角的Starred圖示來關注該倉庫。

7.2 消息設定

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

添加個人賬戶裡的郵箱設定填寫你的郵箱位址。

7.3 通知設定

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

在通知設定裡把郵箱通知的相關内容打上勾。具體參考

https://gitee.com/profile/notifications

08 注意事項

分支或者TAG名稱和package.yaml中的version字段要比對。

RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南
RISC-V生态全景解析(十六):YoC元件釋出開源操作指南

繼續閱讀