OSCVPass 開源貢獻者
OSCVPass (Open Source Contributor VIP Pass) 開源貢獻者快速通關計畫,是讓貢獻者提出近一年在開源領域貢獻的證明申請,申請核准後取得一年的 OSCVPass 資格,可在合作的研討會活動參與取得回饋。
每年約有 150 - 230 位有效資格,其貢獻類型不僅止於程式碼的貢獻,也有來自開源推廣的努力。
申請資格
請提供實際針對開源專案提供開發、推廣、或其他有助專案進展之貢獻相關證明,開源專案與您的參與須符合下列幾種情況:
- 申請者請提出近一年內(月份區間)開源貢獻。(例如此時為 2023/08/15,則可以為 2022/08/01 之後的貢獻申請)
- 開源專案意指專案成果以 FSF 或 OSI 認同之公眾授權條款釋出者。
- 您的開源專案的貢獻可以包含但不限是:寫/修 Code 的、寫/修文件的、發 ISSUE 的、籌劃推廣活動的、釋出 non-code 作品的。
- 所提出之貢獻,必須可以經由公開途徑查證(例如提供 GitHub、GitLab、Bitbucket 等公開專案平台上的討論紀錄、網址、commit log、信件文本、公開釋出之演講投影片紀錄等。)
Note: 如何申請請參考說明。
社群
目前 OSCVPass 持續招募社群志工協助申請流程、審核平台、後台管理等基礎建設的建製,歡迎參與!
- OCF.tw 的 slack #oscvpass 頻道。
其他連結
- 專案說明頁面:https://ocf.tw/p/oscvpass/
- 申請表單:https://forms.gle/j62bUmTy1hKKGm7n6
- 已申請者專案列表:https://oscvpass.ocf.tw/
授權條款
本文件內容以 Creative Commons 姓名標示 4.0 國際 (CC BY 4.0) 釋出。
如何申請 OSCVPass
如何申請 OSCVPass
申請 OSCVPass 的資格與申請前的確認。
申請流程
- ➊ 申請 OSCVPass:透過申請表單提交證明文件送出。
- ➋ 審核委員:由志工組成的審核委員,每月排班協助審核申請案件。
- ➌ 審核方式(通過):恭喜,將寄送認證合格通知信。
- ➍ 審核方式(補件、不通過):審核委員會依基本審核標準與建議其補件方式,可參考常見問題。
- ➎ 寄送審核結果通知信:將寄送通知信告知審核結果。
- ➏ 收錄開源貢獻者資料庫:收錄審核通過名單,以利後續回饋方案的寄送。
- ➐ 合作研討會:每年與 OSCVPass 合作的年會與研討會。
- ➑ 專案貢獻頁面:將申請通過的貢獻成果呈現在計畫首頁。
- ➒ 研討會宣傳:持續宣傳讓更多人知道計畫與申請。
申請資格
請提供實際針對開源專案提供開發、推廣、或其他有助專案進展之貢獻相關證明,開源專案與您的參與須符合下列幾種情況:
- 申請者請提出近一年內(月份區間)開源貢獻。(例如此時為 2023/08/15,則可以為 2022/08/01 之後的貢獻申請)
- 開源專案意指專案成果以 FSF 或 OSI 認同之公眾授權條款釋出者。
- 您的開源專案的貢獻可以包含但不限是:寫/修 Code 的、寫/修文件的、發 ISSUE 的、籌劃推廣活動的、釋出 non-code 作品的。
- 所提出之貢獻,必須可以經由公開途徑查證(例如提供 GitHub、GitLab、Bitbucket 等公開專案平台上的討論紀錄、網址、commit log、信件文本、公開釋出之演講投影片紀錄等。)
申請前確認事項
常見問題
申請、補件、退件時常遇到的問題集合,預先閱讀可避免往返申請時程。
申請
不是程式貢獻是否可以申請
可以,只要是開源領域相關的貢獻、不論方式為何,都歡迎提出申請!
申請人與證明文件不相符合
可先透過證明文件上的信箱發送到 oscvpass@ocf.tw 並提及申請人的信箱來建立關聯。
例如在 git-commit
所使用 github@example.com
提交,而申請人使用 gmail@example.com
提出申請,建議使用由 github@example.com
發出的郵件並提及 gmail@example.com
來建立關聯聲明。
或使用在 Github 上 sign-off commits 的 PGP Key 直接簽署證明提交關聯聲明。
聲明範本
證明文件上所使用的郵件信箱:github@example.com
申請時所用的郵件信箱:gmail@example.com
申請後未收到結果通知
可能有幾種狀況:
- 由於審核委員皆為志工協助,目前並無固定的審核時間,請耐心等候。
- 近期有大量申請案件需要處理,也請耐心等候。
- 申請時所填寫的郵件信箱錯誤。
如果等待時間超過申請時間約 14 天或以上,建議直接寄信到 oscvpass@ocf.tw 詢問!
申請表單 Google Forms
目前我們已有計畫重構基礎建設,如果有興趣參與加入志工,歡迎喊聲、寄信或直接開票給我們也行!
退件、補件
常見的退件或補件情況
- 所建立或所貢獻的專案沒有授權條款宣告,專案不是設定公開就代表 Open!
- 提交的證明文件與申請人找不到關聯,郵件信箱不同或是無法模糊比對為同一人!
- 重複申請或是自我專案重複貢獻(鼓勵多多踏出舒適圈或努力曝光專案的推廣)!
社群
如何貢獻
目前 OSCVPass 計畫是由一群志工協助日常的申請、審核、通知與研討會接洽合作。
流程現況
- ➊ 申請表單:目前是使用 Google Forms 作為申請表使用,但申請項目越來越多元,無法涵蓋表單的欄位定義與申請類型的情況。
- ➋ 審核委員:目前審核委員由社群夥伴參與,一個月一名委員負責審核,但會因為當月其他因素無法在原定時間內審核完畢。
- ➌➍ 審核方式(通過、補件、不通過):目前審核的方式採取比較寬送的標準,無標準量化的機制。
- ➎ 寄送審核結果通知信:通知信透過 AWS SES 大量寄送樣板信件。
- ➏ 收錄開源貢獻者資料庫:目前是使用 Google Forms 表單標記已通過。
- ➐ 合作研討會:每年參與的研討會。
- ➑ 專案貢獻頁面:目前是使用靜態網頁呈現,問題在於整理與分類方式為人工手動方式進行。
- ➒ 研討會宣傳:在各研討會宣傳申請計畫。
招募志工
計畫目前有兩種類型的志工需要協助,審核委員與專案志工。如有意願參與此計畫,歡迎直接來信到 oscvpass@ocf.tw,我們將協助建立相關設定。
審核委員
主要協助審核申請案件是否有達到基本的審核標準,簡單的審定標文件可以參考。目前每月會有一位值日生負責該月的申請案件,如該月份申請數量眾多,也可提出救援請求讓大家一起幫忙消化申請案件。
專案志工
主要負責改善審核流程、平台基礎工程、規劃宣傳或是其他概念的發想。參與的範圍不侷限流程圖上的項目,也可開拓新的領域來嘗試!
Note: 目前 OSCVPass 專案也在招募實習夥伴,請參考 OCF 的實習佈告。
規劃藍圖
計畫緣起
OSCVPass 原來自 COSCUP 開源貢獻方案,但因為 COSCUP 不再需要報名入場,因此將此方案貢獻給開放文化基金會 OCF 繼續規劃與執行。
不論是在 COSCUP 期間所執行的計畫或是移交給 OCF 的規劃,都是希望可以多多鼓勵大家參與開源文化的貢獻,不論是在程式碼的貢獻或是以開源精神、開放文化的方式產出的作品都會是 OSCVPass 所希望能回饋的貢獻者!
流程說明
計畫流程大致上整理如下表,依運作流程項目解說,目前計畫面臨的問題與希望可以改善的下一步。
- ➊ 申請表單:目前是使用 Google Forms 作為申請表使用,但申請項目越來越多元,無法涵蓋表單的欄位定義與申請類型的情況。
- ➋ 審核委員:目前審核委員由社群夥伴參與,一個月一名委員負責審核,但會因為當月其他因素無法在原定時間內審核完畢。
- ➌➍ 審核方式(通過、補件、不通過):目前審核的方式採取比較寬送的標準,無標準量化的機制。
- ➎ 寄送審核結果通知信:通知信透過 AWS SES 大量寄送樣板信件。
- ➏ 收錄開源貢獻者資料庫:目前是使用 Google Forms 表單標記已通過。
- ➐ 合作研討會:每年參與的研討會。
- ➑ 專案貢獻頁面:目前是使用靜態網頁呈現,問題在於整理與分類方式為人工手動方式進行。
- ➒ 研討會宣傳:在各研討會宣傳申請計畫。
基礎工程
由於專案申請流程目前存在大量的手工操作程序,而累積的申請案件越來越多、也漸漸影響到每一次通知前的準備。因此在 2023 下半年度開始計畫重構目前計畫的基礎建設,優化其流程!
近期進度:
- 2023/08/01 目前 ➊ 已開始測試使用 Pretalx 來解決 ➋➌➍ 的流程優化問題。
工程進度
秉持著開放的精神,我們將目前重構的工程進度都回報在 Project 上,歡迎持續追蹤並給予我們建議,感謝!
Note: 可參考如何參與加入我們一起改善!
開發流程
若要直接在docker上啟動環境,可以直接參見在 Docker 上執行 OSCVPass。
Pretalx 建置 (用於 Pretalx 核心開發)
本章節主要說明如何建置官方 Pretalx 的程式碼。
完整建置流程可以參照官方說明
前置作業
需要先安裝以下工具:
工具 | Debian 套件名稱 |
---|---|
python 3.6+ | |
pip 3 | python3-pip |
python-dev 3 | python3-dev |
python-venv 3 | python3-venv |
libffi | libffi-dev |
gettext | gettext |
git | git |
- 部分套件需要編譯器建置,若安裝失敗可先確認套件
build-essential
是否安裝。
開啟虛擬 Python 環境
python3 -m venv env
source env/bin/activate
- Ubuntu/Debian
由於部分套件版本較舊,建議可先執行以下指令更新必要套件:
sudo pip3 install -U pip setuptools wheel
複製原始碼
git clone https://github.com/pretalx/pretalx.git
cd pretalx/
初始環境建置
首先安裝主程式所需要的相依函式庫:
(env)$ cd src
(env)$ pip3 install --upgrade-strategy eager -Ue ".[dev]"
接著,複製靜態檔案至 STATIC_ROOTS
資料夾中,並初始化本地資料庫:
(env)$ python manage.py collectstatic --noinput
(env)$ python manage.py migrate
為了能夠登入並操作,您需要創建至少一位具有管理員權限的帳號:
(env)$ python manage.py init
此外,若您開發上即刻需要一個用於測試的活動,您可以執行以下指令來創建:
(env)$ python manage.py create_test_event
語言檔案 (可選)
由於 Pretalx 預設僅有英文語文檔案已經事前編譯完成,若您需要使用其他語言,您需要執行以下指令:
(env)$ python manage.py compilemessages
啟動環境
(env)$ python manage.py runserver
在 Docker 上執行 OSCVPass
本章節主要說明如何在本地端的 docker 上運行 OSCVPass。
詳細執行流程可以參照 pretalx-docker 官方說明
複製原始碼
$ git clone -b pretalx https://github.com/ocftw/OSCVPass.git
$ cd OSCVPass/
直接執行
- 運行測試環境
$ cd pretalx/
$ docker compose -f ./docker-compose.yml up
- 運行生產環境
$ cd pretalx/
$ docker compose -f ./docker-compose_prod.yml up
文件開發
本章節主要說明如何貢獻 OSCVPass 的說明文件。
OSCVPass 採用 mdbook 和 html 撰寫: mdbook 主要負責用來撰寫說明文檔,用於技術說明; html 則用於撰寫宣傳 OSCVPass 的參考範例。
文檔皆位於 src/docs
資料夾底下:
roadmap.md
:主要紀錄本專案的工程進度以及未來展望。README.md
:為說明文件的入口文件。SUMMARY.md
:用於渲染說明文件上左側的文章樹。
建議工作流
-
若要新增頁面,請先參考
SUMMARY.md
中現有的文章大分類,若無再自行新增,並將 新增之頁面放入該大分類中。 -
中英文單字間請一律添加空格(不論連接之字詞是否為全形字),以維護文檔的流暢度。
雜項
- 關於 GitHub 上的分支
- main - 用於 Github Pages 上託管說明文檔
- docs - 用於暫存新版的說明文檔。
- pretalx - 用於儲存 OSCVPass 所使用的 pretalx docker 設定檔
2023 intern
2024 intern
實習紀錄
ChAoS-UnItY
- GitHub
- OSCVPass 實習後記
- 實習時間:2023/07 ~ 2023/08
關於我
我是 ChAoS ,於 2023 的暑期中在 OCF 實習,很榮幸地能夠被分配到 OSCVPass 的專案整治,也很感謝 Toomore 在實習期間指導。
目前進度
目前 OSCVPass 移植到 Pretalx 。已正式上線於該網站。
GitHub
GitHub 的部分已經大致上整治完成:
且新增了 project 和 tracking issue 的機制: project 用於追蹤各 issue / pull request 的進度及影響範圍,讓團隊成員及社群可以更方便的檢閱感興趣的 issue / pull request 的進度 ; tracking issue 則用於整合各 issue 到一個大項目 (issue) 中,方便檢閱該大項目中的進度是否有其他問題。
每個分支都有不同的作用:
- main 主要用於主持 OSCVPass 的靜態網頁並固定同步至 GitHub Pages , 包括介紹頁以及文檔。
- docs 要用來擺放暫存的靜態網頁和文檔,完善後透過 pull request 的機制合併至 main 分支中。 (需要注意的是如果其他成員有暫存的進度在 docs 分支上,請另外開一個分支防止進度衝突,並在 pull request 被合併後自行刪除,當然我會更建議這樣做。)
- pretalx 用於存放pretalx docker設定檔。
關於 issue 和 pull requests 工作流程的機制,詳見關於工作流程。
Pretalx
已完成問卷和email寄送的部分,詳細的 remote control 可以參考這裡。
- 問卷
-
Email寄送
- 手動
- 自動 (參考 Issue 9)
給後續完善 OSCVPass 的成員
截至 8/29/23 , Pretalx 尚未發布 2.3.2 後的正式版本,目前該版本存在以下幾個問題:
- 無法將 Additional Speaker 選項隱藏 Additional Speaker 在 OSCVPass 的申請表單是無效的資訊/欄位。
- Api 尚未研究完全 串接的部分目前是規劃使用 COSCUP SecretaryKit 裡面的 python 腳本,但由於 COSCUP 端的說明文檔尚未完善,且實習也接近尾聲,故目前暫緩轉移腳本。
- 自動化流程缺失 目前尚未實作自動化流程,無法自動定期將年會資訊寄送給合格的 OSCVPass 會員。
- 權限不明 根據 Pretalx 官方的文檔,雖然可以創建 superuser 作為初始管理員,但針對新創用戶的權限提拔目前尚未找到正確的流程,可能需要詢問官方或是對 COSCUP pretalx 有經驗之人員。
關於工作流程
若您是社群貢獻者,可以直接創建 issue / pull request ,後續團隊會自動幫你處理 issue / pull request 的分類以及 issue tracking 和 pull request review。
Issue
Issue 創建後,若 issue 具有一定大小,需要後續追蹤,請在 OSCVPass 的 project 中的 tracking 類別裡面找最相似的類別,於該 tracking issue 中編輯新增你的 issue ;也請順道將創建的 issue 分類在 project 的對應狀態分類中。
若沒有編輯 tracking issue 的權限的話,請通知 Toomore 協助處理權限。
Pull request
至後續完善 OSCVPass 的團隊成員,我建議本地端的進度放在自己的 fork 上,防止進度衝突和保持 OSCVPass 專案庫的分支整潔。
Pull requests 創建後,請待其他 OSCVPass 的成員分配分類標籤,並請等待至少 1 位成員 review 變更後再合併進去。
若該 pull request 是為了關閉 issue 的話,請在說明主旨中寫出 Fixes #[...] ,方便後續合併之後能夠自動關閉 issue ,詳細用語(法)與關閉機制請參考官方說明文檔。