Contents
軟件選集 SIG
SIG 狀況:已獲批准
協助啟動程序的委員會成員:JimPerrin
軟件選集 SIG 將會為上游提供空間開發各種軟件選集及相關工具。開發者可以建基於及延伸現有的 SCL,這樣他們便無須重蹈覆轍,或不必要地負起包裝依賴性套件的責任。
1. 目標
為 SoftwareCollections.org 充當上游的 git 程式庫。
- 與開發者合作,接納針對新軟件選集的貢獻。
- 訂立發行用的管理機制,成為建立/簽署/發行的關閘。
建立,並透過 centos.org 及 SoftwareCollections.org 發行軟件選集。
與 OpenShift Origin 及 foreman 等上游機構合作,提供兼容性。
2. 資源需求
全權接管 http://git.centos.org 上的計劃空間 —— sig-sclo 或類同。
為建設者提供存取/操控的權限,授權在 http://git.centos.org 的 /rpms 路徑下發行 SIG 套件
http://cbs.centos.org/koji 及相關目標的建設權限
為發行版本簽署套件的能力(https://bugs.centos.org/view.php?id=9819 等要求出現後便有必要)
或許利用 http://bugs.centos.org 追踪錯誤
3. 郵件列表及通訊
有關 CentOS 資源的工作及相關討論將會在 centos-devel 郵件列表上進行。所有將於 SCL、用戶之間的互動及上游的開發將會在現有的軟件選集郵件列表上進行。
此 SIG 一般亦會在 irc.freenode.net 的 #centos-devel 頻道上出現。
3.1. 同步會議
- 至少在開始時我們會(差不都)每週在 irc.freenode.net 的 #centos-meeting 頻道上舉行會議
- 現時會議在星期三 4pm UTC 舉行
- irc 會議的請柬一般會於一天前同時發送到上述的兩個郵件列表
4. 特別興趣小組內容
有關所有組合及停止支援期請參閱 選集清單。
如欲進一步獲取某軟件選集的資料,請在 http://softwarecollections.org 搜尋該選集。
我們會針對套件進行 CI:https://ci.centos.org/view/SCLo-pkgs-cbs/
5. 特別興趣小組成員
軟件選集 SIG 將會有一個督導委員會及多名軟件提交者。督導委員會最初計有:
- Brian Gollaher
- Radek Vokal
- Joe Orton
- Adam Miller
- Thomas Oulevey
其它成員的清單已收錄於 https://accounts.centos.org/group/members/sig-sclo 。
督導委員會有權增加軟件提交者及成員。督導委員會將會透過啟動程序的委員會成員與 CentOS 委員會接口。
軟件提交者的權限,一經獲取便不會到期,除非由督導委員會所撤消。
6. 投身參與
- 簡單的參與無須存取 dist-git 或 CentOS 建設系統(CBS)
要是你要提交錯誤報告,貢獻修正,討論其他事情,請利用 sclorg@redhat.com 郵件列表直至有更好的方法(工作仍在進行中)
6.1. 給多產貢獻者的提示
- 在上述郵件列表發送自我介紹(分享一些基本個人資料、你參與軟件選集 SIG 的意向、你打算協助哪個選集)
若要存取 CentOS 建設系統,請遵照 http://wiki.centos.org/HowTos/CommunityBuildSystem 內的指引
7. 路線圖及啟動程序
- 初步定義套件集及發行二元檔
- 訂立 git 工作程序
- 定義接納貢獻的條件
- 為社群的用戶及貢獻者提供文檔
- 訂立提交錯誤報告的政策/慣例
- 設立發行週期及升級政策
8. 項目清單
待辦清單內有下列項目:
為 RHEL 準備發行套件,好讓 RHEL 用戶能從 sclo 命名空間安裝軟件選集
- 實施 authtag 以便能配合 dist-git 儲存軟件選集的 SRPM
直至開始實施為止,我們計劃按照這裡的要求以手動方式匯入套件:https://www.redhat.com/archives/sclorg/2015-September/msg00005.html
- 預備好 dist-git 後,我們想利用 SCM 建立 SRPM,但在 sclo/ 名稱空間下是不可能的,因此我們需要建立一些工具,省卻手動匯入 rpms/ 名稱空間的步驟
- 為建基於軟件選集的 docker 映像建立子網頁
9. 新增軟件選集的步驟
熟集包裝 SCL 套件的 包裝守則
自我介紹,然後在郵件列表建議新增一個軟件選集 sclorg@redhat.com
遵照 「投身參與」步驟 申請成為特別興趣小組成員
遵照 下文 申請標籤
遵從 建立套件 的步驟
考慮為你的選集編寫測試並將它們放入 CI
更新 SCL 清單頁 上的軟件選集清單
首先在 centos-devel 郵件列表 宣佈在 buildlogs 上收錄了新的軟件選集,然後當鏡站準備好後,再在 centos-announce 郵件列表 上宣佈
- 在網誌、相關的(上游)郵件列表或社交媒體上推廣你的選集
(若要在任何步驟取得協助,請與特別興趣成員聯絡)
10. 申請 CBS 標籤及目標
假若你要為新的軟件選集建立標籤及目標,請遵從以下步驟:
檢查該標籤是否已被建立:http://cbs.centos.org
遵從範例申請標籤/目標:https://bugs.centos.org/view.php?id=9661
11. 繼承 CBS 標籤
有時候某個 SCL 需要(於建立或執行時)採用來自另一個 SCL 的套件。建立 SCL 用的目錄內一般不會含有該 SCL 以外的套件,因此我們須要申請繼承特定的標籤(例如當建立 MongoDB SCL 的某些套件時需要採用 Maven SCL,MongoDB 的標籤須要繼承 Maven SCL 的套件)。若要申請繼承標籤,維護者必須遞交這樣的申請:https://bugs.centos.org/view.php?id=10525
個別標籤的繼承清單已收錄於: https://git.centos.org/blob/sig-core!cbs-tools.git/master/scripts!sigs!sclo!sclo-inheritance.sh
12. 為軟件選集建立套件
12.1. 源代碼軟件庫
軟件選集暫時仍未有 dist-git 源碼庫,但不少套件的源碼已收錄於 https://github.com/sclorg-distgit
12.2. 建立套件
我們可如此直接建立套件:
cbs add-pkg sclo7-rh-mariadb100-rh-candidate --owner=sclo rh-mariadb100-mariadb cbs build sclo7-rh-mariadb100-rh-el7 rh-mariadb100-mariadb-10.0.18-1.el7.src.rpm
建成後,CI(持續整合流程)將會為我們測試完整性,接著我們可以為它們加上 -testing 軟件庫的標籤:
cbs add-pkg sclo7-rh-mariadb100-rh-testing --owner=sclo rh-mariadb100-mariadb cbs tag-build sclo7-rh-mariadb100-rh-testing rh-mariadb100-mariadb-10.0.18-1.el7
12.3. 發放套件至 testing 軟件庫
http://buildlogs.centos.org/centos/7/sclo/x86_64/ 有一個工作流程會自動把所有標籤為 -testing 的套件放進 testing 軟件庫內。
若要採用這方法,每個軟件集在頭一次都必須被加進該工作流程內,做法就是建立這樣的申請:https://bugs.centos.org/view.php?id=10260 。然後,用戶便可透過安裝及啟用以下其中一個軟件庫來安裝套件:
yum-config-manager --enable centos-sclo-rh-testing yum-config-manager --enable centos-sclo-sclo-testing
12.4. 發行套件
當我們要發行套件時,步驟就如發放至 testing 軟件庫一般。 這些套件必須在 -testing 標籤/軟件庫內逗留最少一至兩個星期才可以發行。
- 為套件加上 -release 標籤:
cbs add-pkg sclo7-rh-mariadb100-rh-release --owner=sclo rh-mariadb100-mariadb cbs tag-build sclo7-rh-mariadb100-rh-release rh-mariadb100-mariadb-10.0.18-1.el7
以下步驟只適用於首次發行的選集,更新選集時應被省略:
簽署並發行套件至 http://mirror.centos.org(如 https://bugs.centos.org/view.php?id=9838 般申請)
在 https://lists.centos.org/pipermail/centos-announce/ 上發出公佈(例如 https://lists.centos.org/pipermail/centos-announce/2015-December/021577.html )
- 我們須要為 CentOS 6 及 CentOS 7 個別發出公佈
- 我們必須測試公佈內的步驟是可行的
12.5. 在SCLo 採用 EPEL 的套件
這只限於 sclo- 名稱空間,即是那些並非源於 RHSCL 的軟件選集。
SCLo 的建設過程是無法直接採用 EPEL 套件的,因為 CBS 只提供 CentOS 套件。因此,EPEL 套件必須在 CBS 下重建。然而,重建這些套件有很多方法(現時的建議):
我們想避免 SCLo 與 EPEL 套件之間的衝突而引發的依賴性惡夢(不同套件依賴同一套件的不同版本)。
1. 把 EPEL 套件轉變成某個軟件選集的一部份
- 此技術確保能避開 EPEL
2. 包裝為正常套件
- 我們必須確保版本與 EPEL 一致
- 如果要 EPEL 6 及 7 提供同一版本或許會有難度(見下文「混合方案」)
- 收錄在 sclo-common 標籤下(sclo7-common-el7 目標)
3. 在 SCLo 軟件庫內把 EPEL 套件重新命名
- 透過重新命名,能避免與 EPEL 套件發生衝突
- 套件依然通用於各軟件選集
- 所有軟件選集必須只採用單一版本
4. 混合方案(例如:為 EPEL 6 重新命名,保留 EPEL 7 的正常套件)
13. 軟件選集名稱解構
軟件選集的名稱是由作者選取的慣用識別碼,亦不應該被分拆為個別部件。
然而,由於多數名稱是根據某些指引而制定,下面就以 scol-vagrant1 軟件選集為例:
<sclo>:選集名稱的前置並非用來局限它於特定發行版本,而是作為它的「名稱空間」。來由 Red Hat Software Collections 的軟件選集採用 rh- 這個前置;而由社群所建立的軟件選集以 sclo- 作為前置。
選集名稱的前置:
- 容許「其他人」(尤其是用戶)按他們的需要設立特定的名稱
- SCL 作者能在選集出現之處採用單一個「選集名稱」
- 用戶(是開源計劃好、是付款者也好)不論在哪一個平台都能針對單一個選集名稱
更多有關前置的資料:https://www.redhat.com/archives/sclorg/2015-February/msg00022.html
<vagrant>:這是主要附帶的應用程式。一個選集很多時包含大量的支援元件。譬如說:php 選集內含有大量 php 延伸組件和 pear 模組,它們都在同一個軟件選集下以相同名稱發行。
<1>:這是主要版本編號,也作追踪 abi 之用。例子包括 ruby197、ruby200 等
14. 更多資訊
Translation of revision 54