一起玩轉Linux內核之旅開源社區吧
大家好,Linux內核之旅開源社區已經上線,想必大家對如何參與開源社區比較感興趣吧。下面小編就來詳細介紹一下,開源社區的參與方式。
Linux內核之旅開源社區是一個完全自由和開放的平臺,甚至我們的網站都是開源的,開源社區的建設是在西郵陳莉君教授和在騰訊工作十多年的許振文師兄的指導下完成的,我們的運作方式與國際開源社區一樣,所有人都可以共建Linux內核之旅開源社區,我們都是貢獻者,也是受益者。
具體參與方式如下:
1、Linux內核之旅開源社區網站
您可以在我們開源社區網站上進行投稿,我們網站是使用hugo搭建的靜態網站,您可以先配置好hugo和git這兩個環境,將我們網站的git倉庫fork到您的github,git pull 到本地後,您可以添加您的博客文章,添加您閱讀陳老師出版書的讀書筆記,甚至您還可以優化我們的網站,git push到您的git倉庫後,再向我們的主倉庫提交 pull requests,我們的管理員看到後會 review 您的提交,如果沒有問題的話,就可以 merge 到我們的git主倉庫啦。
Linux內核之旅開源社區網站git倉庫地址:
https://github.com/linuxkerneltravel/website
2、內核學習實驗代碼
您可以學習和分享開源社區中的內核試驗代碼,提交 Issues,可以將我們內核試驗代碼的git倉庫fork到您的github,git pull 到本地後,您可以修改我們的內核試驗代碼,或者添加您的內核試驗代碼,需要按分類提交內核實驗代碼,也請給出對代碼的簡要說明,然後git push到您的git倉庫後,再向我們的git主倉庫提交 pull requests,我們的管理員看到後會 review 您的提交,如果沒有問題的話,就可以 merge 到我們的git主倉庫。
Linux內核之旅開源社區內核試驗代碼倉庫地址:
https://github.com/linuxkerneltravel/xyLinuxer
3、Linux內核之旅微信公衆號
您可以向我們的微信公衆號 “ Linux內核之旅”進行投稿,或者申請轉載我們的文章。
4、內核慕課
您可以免費報名學習陳莉君教授的課程《Linux內核分析與應用》,您還可以在討論區拋出您的疑問,有機會獲得陳老師的親自答疑哦。報名方式如下:
手機掃描下方二維碼,或電腦訪問下方鏈接,開始Linux內核之旅吧!
https://next.xuetangx.com/course/XIYOU08091001441/1516763
5、Linux內核之旅開源社區建設
Linux內核之旅開源社區剛剛上線,很多制度和規則都不是很完善,您也可以參與我們的社區管理,給我們提一些建議,或幫助我們完善開源社區的文檔,您可以提交任何改善開源社區的 patch ,貢獻者也有機會成爲開源社區管理員哦,感謝大家的關注和參與。
Linux內核之旅開源社區 管理倉庫:
https://github.com/linuxkerneltravel/community
投稿祕籍
我們的許振文大師兄很貼心地貢獻了參與Linux內核之旅開源社區的操作步驟,這是開源社區網站投稿的步驟,其他git倉庫的參與步驟都是大同小異,一起來來看看吧!
前言
Linux 內核之旅的網站我們重構了,這次使用了 github 管理,hugo 作爲站點管理工具。目標是能夠讓更多的同學參與進來,學習,分享,共同建設,讓大家更方便高效的走 Linux 內核之旅。
“Linux內核之旅”網站的大幅度改版,更是爲熱愛開源的Linuxer提供更廣的舞臺,大家的週報告,分享視頻,相關代碼,點點滴滴都將會通過Linux內核之旅網站,公衆號,學堂在線,Github 以及B 站等平臺全面的分享出來。Open,Free&Share,不僅僅是一個口號,落地生花之時,也是一個人從內而外的成長之際。-- 陳莉君教授。
所以這裏也歡迎大家參與分享,這篇文章主要介紹怎麼參與投稿。
投稿內容
我們是《Linux 內核之旅》開源社區,所以一切投稿還是以 Linux 內核爲主,另外在軟件開發理論,開源代碼分享,社區文化方面也可以投稿。
投稿方式
目前我們是 github 的倉庫來做管理,所以投稿的方式也是在 github 的倉庫中直接提交 pr。具體提交 pr 的流程如下:
詳細步驟說明
1.fork 我們的站點項目到自己的倉庫
站點倉庫:https://github.com/linuxkerneltravel/website
fork 項目過程相對比較簡單,在 https://github.com/linuxkerneltravel/website 頁面右上角點擊 fork 按鈕即可, fork 到自己的空間。
我的 fork 後是這樣的地址,因爲我的空間已經有一個 website
的倉庫了,所以這裏就加了一個後綴來區別。https://github.com/helight/website-linuxkerneltravel
2.clone 主倉庫到本地
https://github.com/linuxkerneltravel/website
helightxu$ git clone https://github.com/linuxkerneltravel/website helightxu$ cd website
3.設置自己的倉庫開發代碼提交上游關鍵
helightxu$ git remote add dev https://github.com/helight/website-linuxkerneltravel
4.新建分支,並且在新分支上修改提交代碼
4.1 代碼更新
在每次新建分支之前一定要執行 git pull,使得 master 分支保持最新。
helightxu$ git pull helightxu$ git checkout -b pr_intro Switched to a new branch 'pr_intro' helightxu$
4.2 編輯開發
社區站點是使用 hugo 搭建管理,所以大家需要在本地搭建使用 hugo 來預覽稿件效果。這裏有箇中文幫助站點大家可以學習。(https://hugo.aiaide.com/)
這裏以 hugo 新建一個博文爲例進行介紹。首先使用下面的命令新建一個 markdown 文件。
helightxu$ hugo new blog/2020/submit_pr/index.md /Users/helightxu/helight_doc/website-linuxkerneltravel/content/blog/2020/submit_pr/index.md created helightxu$
然後進行博文撰寫,撰寫格式要求:
1. 必須按照 `/blog/20xx/英文文章名稱/index.md` 的路徑格式創建文章。英文文章名稱使用英文字母、下劃線、連字符和數字,其它字符不接受。 2. 要求的內容格式一定是 markdown 的,其它格式內容暫時不接受。 3. 使用的圖片一律保存在和 markdown 文件同級目錄下的 imgs 文件夾中,如:`/blog/2020/submit_pr/imgs/pr.png`。 4. 圖片的名稱也一律使用英文命名,規則和上面一致。圖片寬度不要超過900的寬度。 5. 圖片大小在500k以內。
4.3 編輯完成之後進行本地驗證
這一步 非常重要 ,一定要進行本地驗證,避免文章有 markdown 語法、圖片格式、文字錯誤等。所以一定要驗證。
helightxu$ hugo server | ZH -------------------+------ Pages | 18 Paginator pages | 0 Non-page files | 5 Static files | 121 Processed images | 0 Aliases | 6 Sitemaps | 1 Cleaned | 0 Built in 132 ms Watching for changes in /Users/helightxu/helight_doc/website/{archetypes,content,data,static,themes} Watching for config changes in /Users/helightxu/helight_doc/website/config.toml Environment: "development" Serving pages from memory Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender Web Server is available at http://localhost:1313/ (bind address 127.0.0.1) Press Ctrl+C to stop
看到上面信息就可以在本地瀏覽器中預覽站點,看撰寫的文字是否符合自己的預期。如果有問題可以修改後直接刷新看效果。
4.4 編輯本 機 驗證沒有問題之後做本地提交。
helightxu$ git add content/blog/2020/submit_pr helightxu$ git commit -m "add new blog submit_pr" -a [pr_intro 7607f03] add new blog submit_pr 2 files changed, 101 insertions(+) create mode 100644 content/blog/2020/submit_pr/imgs/pr.png create mode 100644 content/blog/2020/submit_pr/index.md helightxu$
5.提交代碼到 dev 上游倉庫
這個 dev 上游就是上面設置的哈:git remote add dev https://github.com/helight/website-linuxkerneltravel
這種設置方式是可以把本地的修改按照 dev
標籤提交到指定的另外一個倉庫。我們一般是以主倉庫作爲我們工作目錄,但是從主倉庫的 master
分支創建出來的開發分支是不可以提交主倉庫的,所以個人倉庫就是這個分支提交的地方,提交之後在在個人倉庫的分支和主倉庫的 master
分支創建 pr
。
helightxu$ git push dev Enumerating objects: 13, done. Counting objects: 100% (13/13), done. Delta compression using up to 12 threads Compressing objects: 100% (7/7), done. Writing objects: 100% (9/9), 376.97 KiB | 19.84 MiB/s, done. Total 9 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. remote: remote: Create a pull request for 'pr_intro' on GitHub by visiting: remote: https://github.com/helight/website-linuxkerneltravel/pull/new/pr_intro remote: To https://github.com/helight/website-linuxkerneltravel * [new branch] pr_intro -> pr_intro helightxu$
接下來就可以在這裏查看代碼了:https://github.com/helight/website-linuxkerneltravel。這裏 pr_intro
這個分支就是剛剛提交的。
6.創建pr
在自己的個人倉庫 https://github.com/helight/website-linuxkerneltravel 上面可以直接看到創建 pr 的按鈕,直接創建就好了。
創建 pr之後,後面有修改直接提交到這個個人分支上就可以了,不用重複創建。
7.等待 reviewer 反饋和合併到主幹
社區的管理員會對你提交的 pr 進行 review,review 後會提出修改點,或者 review 沒有問題直接合到主幹中。
另外如果提出問題,大家可以在這裏討論,並修改達成一致,並提交到這個分支上,最後再合到主幹中。
總結
以上簡單說了我們社區文章投稿的過程。希望大家多多參與共建《Linux 內核之旅》社區。