包栗子 發自 凹非寺
量子位 出品 | 公眾號 QbitAI
今天,GitHub發布了全新的套裝軟體管理服務,叫GitHub Package Registry,完全免費。
有了它,用戶可以把自己的套裝軟體傳上GitHub,就像發布源碼那樣。
官方介紹說,這項服務和NPM、Maven等許多現有的包管理器都兼容。並且,今後還會支持更多。
消息一出,網友紛紛感受到了一統天下的趨勢。
有人表示開心:
“好事啊,我現在同時用著好幾個包管理器,都能放到一起來搞的話,真是誘人。”
也有不少人擔心:
“我的NPM是不是藥丸?”“看到GitHub壟斷就不高興。”
那麽,這到底是一項怎樣的服務?會給包管理工具的世界,帶來怎樣的震蕩?
大一統的包管理服務
首先,Package Registry是和GitHub完全集成起來的。所以,搜索、瀏覽、管理工具都和從前沒差別。
套裝軟體可以和源碼並肩發布,也可以使用和源碼一樣的權限。
團隊說,下載快速穩定,是由GitHub全球CDN加持的。
現在,來具體介紹一下。
都有什麽功能
在Package Registry上,你可以迅速查找公開的套裝軟體,或者你團隊內部的私有套裝軟體。
它兼容了許多包管理應用兼容,所以可以自由選擇工具,來發布自己的套裝軟體:
JavaScript (npm) ,Java (Maven) ,Ruby (RubyGems) ,.Net (NuGet) 以及Docker images都支持。未來還會支持更多,比如Python已經在路上了。
網友交集:下個支持Go啊
GitHub說,如果你的repo很複雜,可以發布成好幾個不同類型的套裝軟體。
以及,通過webhooks或者GitHub Actions,能夠完全定製發布中和發布後的Workflow。
軟體可以發布成私有,也可以公開:
大多數開源項目,源碼都在GitHub上。可以把預發行版本 (Prerelease Versions) 的套裝軟體公布出來,在社區裡做測試,也可以把某個版本放到公開的Registry裡去。
統一的身份和權限
如果,你用了許多不同的系統來發布代碼和套裝軟體,那就需要許多套不同的 (身份認證用的) 用戶憑據和權限。
但現在在GitHub上,代碼和包可以用一套用戶憑據,也可以用同樣的工具來管理訪問權限。
GitHub上的套裝軟體,延用了Repo的可見性(Visibility) 和權限(Permissions) ,這樣團隊就不用再跨系統去維護一個單獨的Registry,以及鏡像的權限了。
詳細信息,知己知彼
GitHub上託管的套裝軟體,都有詳細信息、下載統計,以及完整的歷史記錄可以查看。
用戶能明晰地了解包裡都有些什麽。這樣一來,就更容易找到適合自己的依賴項。
而包的主人查看數據統計,便可以詳細了解,其他人/其他項目都是怎樣使用了自己的套裝軟體。
你要試試麽
現在,測試版已經上線了。
注冊一下就可以用:
https://github.com/features/package-registry/signup
GitHub Package Resgistry是永久免費的。不過,團隊也在周圍開發一些附加功能,比如針對安全性 (Security) 和合規性 (Compliance) ,打算日後為商業用戶提供。
要變天了
套裝軟體管理器,在開發者的世界裡舉足輕重。它們整合了自動安裝、配製、卸載、升級等等各種環節的工具,對開源軟體的環境也功勳卓著。
比如,在開發應用的過程中,可能用到許多別人寫的套裝軟體。有了包管理器,就可以直接安裝套裝軟體,省去繁複的搜索、下載代碼、解壓……這一系列步驟。
如今,套裝軟體管理系統百花齊放。不同的開發環境,都有自己的包管理器。
每個管理器,有各自忠實的用戶。在GitHub發布了“大一統”的服務之後,他們都十分關心這些管理器的將來。
比如,Maven Central就是一個重量級倉庫。
Hacker News評論區的頂樓說,Package Registry出現了,表示Maven就要死了。
他還說,自己內心百感交集:
一方面,這個庫已經免費存在了很長時間,心生感激。
但另一方面,Key Registries非常緩慢,幾個小時才能拿到自己的Private Key。除此之外,開發用伺服器 (Staging Server) 也很緩慢,總是超時。
而GitHub的新服務,是把Registry和存儲 (Artifact Storage) 分開的。
這樣是對的,因為Registry需要快速更新。而存儲就在我自己的控制範圍了。
另外,NPM的用戶也在擔心它的命運:
這個服務,可以解決NPM的信任問題:你永遠不會知道,自己下載的這個包,來源是不是真像頁面上寫的那樣。
畢竟,NPM現在內外交困:
NPM這巨大的Registry人見人愛,可是已經快花光投資人的錢了,靠著私有Registry產品支撐。現在,又換了個奇怪的CEO,投資人的耐心可能要消磨殆盡了。
不過,即便GitHub服務強勢來襲,依然有許多人保持懷疑的態度。比如:
兼容的意思是,兩邊的Registry可以一起用麽?那如果名稱衝突了怎麽辦呢?
有人回復了這條評論:
這才是真正的問題所在,可能對JS的生態系造成嚴重的破壞。要看GitHub怎麽處理了。
—完—
小程序|get更多AI學習乾貨
加入社群
量子位AI社群開始招募啦,量子位社群分:AI討論群、AI+行業群、AI技術群;
歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字“微信群”,獲取入群方式。(技術群與AI+行業群需經過審核,審核較嚴,敬請諒解)
喜歡就點「在看」吧 !