開源軟體創作貢獻者:參與國際開源社群經驗分享 - 楊峻豪, 鄭志軒

教育部智慧創新跨域人才培育計畫(ITSA)為提升學生資訊技術能力,積極成立主題式跨校開源系統軟體創作團隊,引入開源軟體與社群的力量,讓學生透過「運用開源軟體」、「參與開發開源軟體」及「與開源社群互動」的過程,培育系統軟體人才。

本議程邀請兩位開源貢獻者分享參與國際開源社群(Apache Ozone、Jenkins)的歷程,希望讓更多人認識開源貢獻者,並一同加入跨校團隊共同創作。

目標聽眾

對參與國際開源專案貢獻有興趣的新手

先備知識

歡迎大家來到SITCON 2021 ヽ(✿゚▽゚)ノ
共筆入口:https://hackmd.io/@SITCON/2021
手機版請點選上方 按鈕展開議程列表。

請從這裡開始

Apache Ozone

  • Hadoop 社群新一代分散式儲存系統

新手上路

  • 瀏覽文件
    • 詳盡說明架構
    • 貢獻指南
  • 開始貢獻
    • Apache Ozone use Jira as issue tracker
    • 找 newbie 議題
      • 避免擔心語言不通
      • 避免擔心程式碼寫爛
      • 避免擔心不小心玩壞專案
  • 語言不通問題
    • 通常使用英文
    • 有很多線下聚會
  • 不用擔心把專案玩壞
    • 需 2 個 reviewer review

可以注意的部份

  • 小就是力量
    • 語句上的錯誤 (文法、錯字等)
    • coding convention
    • 冗餘程式
    • 專注某功能也可以
  • 學習如何描述問題

概述 Ozone 社群管道

  • Mailing list
    • 面向開發者
    • 面向使用者
  • Messaging Software
    • Slack #ozone (191 member)
    • 快速討論議題
    • 大神分享技術面文件
  • Online Call
    • 01:00 AM
    • 03:05 PM
    • 任何人都可參加
  • 以上這些的功用都不限於開發

融入社群

  • Become Ozone Committer
    • 持續貢獻
    • 參與社群
    • 協助審查
  • Committer
    • 國際認可頭銜
    • merge permission
    • apache postfix mail
    • jetbrain 全家桶

Jenkins

自動化工具

  • 建置
  • 測試
  • 佈署
    CI / CD

屬於歷史悠久的大專案

How to contribute

Contributing guide

  • CONTRIBUTING.md
    • Jenkins Jira
    • newbie-friendly tag

type of issue

  • bug
    • 功能有洞
    • 程式運作不如預期
  • improvement
    • 功能改進
    • 基於現有的功能
  • new feature
    • 新功能
    • 完全全新的程式機能

找出自己可以解的 issue (此處舉了個例子)

範例

加上輸入欄位中,設定最大、最小值,超出範圍就給 error 通知 user

  • 構想使用 HTML & JS 驗證
  • 找出 code 的位置
    • 以舉例:使用 Browser Developer Tool
    • 找出檔案的關鍵字
    • grep / findstr 搜尋關鍵字
    • 定位出要修改的檔案路徑

PR

  • 說明修改
  • 社群回饋意見
    • 加點文件
    • 加點 testcase
    • 找出自己 PR 的不足
  • 社群接納 PR
    • 成就感
    • 貢獻社群

Q/A

台灣跟國外的資訊社群差異

  • 國外比較嚴肅
    • 比較嚴謹?
    • 較多提問
      • 非母語者多
      • 來取經求解
  • 台灣比較歡樂?
    • 討論資訊無關的話題

資訊社群的年齡層比較低

  • 台灣有很強的年輕人
  • 國外不清楚

使用 Jenkins 做 OOP 上機考怎麼看?

  • 你是說老師使用 Jenkins 的測試功能來評測嘛?
  • 講者認為可以阿
  • 講者聽過使用 CI 來做教學中的測試
    • 老師公開測試腳本
      • 學生可能 exploit 測試
    • Jenkins 可以額外寫測資
      • 保密測資
      • 筆者認為是不錯的想法

有出現因為語言溝通的問題嘛?

  • 多為英文
  • 少數公司使用當地母語
    • 中國
  • 多線下交流
    • 免除時區差異
    • 降低語言隔閡
  • 還是會有看不懂的狀況
    • 較口語化的說法可能看不懂
    • 文化隔閡
      • 網路用語
      • 縮寫 (IDK等)

Ozone 改進了 hadoop 的缺陷?但會不會之後又遇到與 Hadoop 相同的問題?

原問題:

Ozone 是因為hadoop不夠使用,那ozone有極限嗎?會不會又出現hadoop現在面對的問題?

  • Ozone設計上避免了HDFS的一些缺陷,並汲取他的優點,像是分離了namespace和block layer。
  • 第一個GA版本(1.0.0)針對10億個小檔案(~10kb)的資料,進行過測試和優化。

講者總結

  • 參與多元社群類型
    • 得到不同的文化與好處
  • 可以結識大公司的開發者
    • 小米
    • Google
    • 可以認識更多大神
Select a repo