若是你有逛GitHub的習慣,應該就已經發現,許多知名的開源項目的README上都有着花花綠綠的各式徽章。好比說這個:node
五光十色的徽章一如遊園會攤位上的飾件,吸引着人們駐足欣賞。本來平白單調的頁面,裝扮上這些徽章後,顯得豐富多彩,給人留下了更爲深入的印象。沒有這些點綴,README可能就只是一張乾澀的佈告。git
固然,這些徽章的做用並不只僅是裝飾。大部分徽章會是某個開源項目周邊服務的入口。github
我第一次見到這些徽章的時候,仍是在幾年前。web
那時候GitHub正高速發展,頻頻出如今各大IT媒體的報道中,圍繞着它的生態圈也開始出現。正如GitHub它本身聲稱的,GitHub是一個同性交友social programming的平臺,漸漸地各類開發者相關的業務開始在它這個平臺上紮根生長。npm
TravisCI就是這麼一家作GitHub平臺生意的商家。爲了推廣它收費的私有倉庫CI服務,TravisCI宣佈,公有倉庫上的CI,一概免費!酒香還怕巷子深,僅僅免費是不夠的,還要宣傳到衆人皆知的程度。因此TravisCI想了一招,派發Travis認證徽章。凡有着下面的徽章:vim
就表示該項目的程序存在單元測試且所有經過了。api
這是一個共贏的決策,經過貼上徽章,開源項目能夠證實本身是擁有測試的,並且可以經過全部的單元測試;同時TravisCI也借這些徽章,登上了各大開源項目的首頁。如今你只要打開某個知名開源項目的GitHub頁面,就能看到TravisCI的小廣告徽章;再進一步點進去就到了TravisCI的網站了。到了這一步,你可能就會停下來看看TravisCI的服務,畢竟他家的服務,對於公有倉庫但是免費哦!ruby
雖然TravisCI在公有倉庫上持免費策略,不過這份在線CI的生意顯然是有利可圖的。由於咱們能夠找到許多一樣也是作CI的公司,如 codeship、CircleCI、shippable、appveyor 等等。能夠這麼說,這一塊的生意已是個紅海了。這些後來者也跟TravisCI採起了一樣的策略,來自GitHub或BitBucket的開源項目免費,而且派發瞭如出一轍的徽章小廣告。因此如今看到相似於的徽章,也有可能來自於其餘公司的。鑑於本文僅侃侃開源項目上的那些徽章,因此就不講述如何給開源項目作CI了。有這個需求的請點進相關公司的主頁。強調下,這裏只談徽章,無意軟廣。對於本文中提到的任何公司或服務,本人既不對其服務質量作任何保證,亦不對其服務效果作任何評價。app
給開源項目貼徽章的熱潮,就這麼被TravisCI帶起來了。後來除了各周邊業務公司會派發徽章小廣告,開發者們也會製做各類徽章,既起到吸引眼球的做用,也能給本身的項目貼貼金。svg
除了CI徽章,出現得最多的徽章莫過於release/version類的徽章了。
這些徽章是由開發者本身定製的。shields.io提供了自定義徽章的服務,你能夠自制各類release/version徽章,在填數據的時候填上項目當前的版本號,而後就能生成一個svg圖像。接下來你所要作的,就是把這個圖像的連接加到README上。這樣別人訪問你的項目主頁時,就能看到一個漂亮的徽章了,感受上了個檔次呢。反正README開頭那麼大一塊空白,除了給別人打小廣告,也應該給本身留多幾個位置。
還有一部分徽章上寫明瞭該項目在pypi/npm/rubygems上的下載量。這些徽章的定製服務一樣也由shields.io所提供。你所需的,只是在填寫項目連接時,把本身寫的庫的名字填上去,shields.io天然就可以獲取你的庫的下載量,生成對應的徽章:
對於npm包,除了可使用shields.io的服務,也能夠經過nodei.co來生成對應的下載量徽章:
看上了GitHub開發者這塊蛋糕的,不止作CI的公司。各家作團隊協做的公司也接踵而來。GitHub自身就提供了issue和pull request的管理面板,不過有些時候這些面板是不夠的,你可能以爲還須要更加豐富的項目管理工具。waffle.io就打算作這方面的生意。其實它提供的服務相對比較簡單。它會提供個項目面板給你,這個面板會以可視化的形式顯示issue和pr列表上打了不一樣標籤的事項的狀況,還有對issue/pr的處理進度,等等。這樣一來,整個項目的大致狀況能夠更加一目瞭然。它一樣提供了徽章,命名規律是https://badge.waffle.io/$REPO/$REPO.svg
。
跟waffle.io類似的還有一個叫issuestats的網站。你能夠在這個網站上查到某個GitHub上的項目對issue和pr的平均處理時間和處理用時的分佈。當你想知道某個項目的開發是否活躍,能夠在這個網站上查一下;當你想聲明本身的項目很活躍,也能夠貼上這個網站提供的徽章,用數聽說話。
項目管理所不能或缺的,除了任務列表,另外一個恐怕是即時溝通工具了。雖然比起商業公司中的項目,開源項目對即時溝通協做的需求並不很大,但仍是有的。一些傳統的開源項目,可能會使用IRC;不過一些新潮的開源項目,可能會使用 gitter.im。gitter.im的用法就像是個QQ羣,你能夠給本身的項目建立一個聊天室,並在項目頁面上添加這個徽章: 和對應的gitter.im聊天室連接。別人一點進去,就能夠加入到你的聊天室,問你各類問題了。因此要想作個勤勞的開源項目維護者真不容易啊,除了要解決隨時而來的issue和pr,若是開了gitter.im,還要掛在那裏蹲守,解決各類問題。不過據我親身體會,實際上到gitter.im問問題的人並很少。也許須要即時溝通工具更多的是使用私有倉庫的開發者。
若是你更喜歡用irc,kiwiirc 提供了個web頁面的irc客戶端,你一樣也能夠找到關於它的徽章。
若是有在公司項目中作CI的經驗,你應該會理解CI可不只僅是運行單元測試那麼簡單。一個完整的CI,還包括對代碼複雜度的分析,對常見缺陷的掃描等等。有些複雜的CI系統還會按期進行性能迴歸測試。對比之下,TravisCI提供的僅能運行單元測試的CI真是弱爆了。不過「市場厭惡真空」,凡是出現了真空而又有利可圖的地方,天然會出現其餘商家。codeclimate就是這麼一家公司,它會分析項目代碼的三個指標(複雜度、冗餘和規範),並計算出一個最終的GPA:。你能夠把這個GPA作成徽章,貼到項目主頁,就跟三好學生獎狀同樣。固然,若是分析出來的結果很難看,就不用貼出來丟人現眼了。另一家公司coveralls則主打覆蓋率統計。它可以統計項目代碼的行覆蓋率,而後你能夠在shields.io上製做對應的徽章。通常來講,覆蓋率在70%以上就已經算是能夠拿出來曬了。在shields.io上也能夠看到,一樣提供代碼掃描/覆蓋率統計服務的公司還有很多。
假如你還有什麼特別的需求,徹底能夠在shields.io直接定製一個徽章,好比下面這個就是:
或者更霸氣一點的: