完全免費(fèi)!GitHub發(fā)布軟件包管理服務(wù):NPM瑟瑟發(fā)抖
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
GitHub 發(fā)布了全新的軟件包管理服務(wù),叫GitHub Package Registry,完全免費(fèi)。
有了它,用戶可以把自己的軟件包傳上 GitHub,就像發(fā)布源碼那樣。
官方介紹說,這項(xiàng)服務(wù)和NPM、Maven等許多現(xiàn)有的包管理器都兼容。并且,今后還會(huì)支持更多。
消息一出,網(wǎng)友紛紛感受到了一統(tǒng)天下的趨勢(shì)。
有人表示開心:
“好事啊,我現(xiàn)在同時(shí)用著好幾個(gè)包管理器,都能放到一起來搞的話,真是誘人。”
也有不少人擔(dān)心:
“我的 NPM 是不是藥丸?”“看到 GitHub 壟斷就不高興。”
那么,這到底是一項(xiàng)怎樣的服務(wù)?會(huì)給包管理工具的世界,帶來怎樣的震蕩?
大一統(tǒng)的包管理服務(wù)
首先,Package Registry 是和 GitHub 完全集成起來的。所以,搜索、瀏覽、管理工具都和從前沒差別。
軟件包可以和源碼并肩發(fā)布,也可以使用和源碼一樣的權(quán)限。
團(tuán)隊(duì)說,下載快速穩(wěn)定,是由 GitHub 全球 CDN 加持的。
現(xiàn)在,來具體介紹一下。
都有什么功能
在 Package Registry 上,你可以迅速查找公開的軟件包,或者你團(tuán)隊(duì)內(nèi)部的私有軟件包。
它兼容了許多包管理應(yīng)用兼容,所以可以自由選擇工具,來發(fā)布自己的軟件包:
JavaScript (npm) ,Java (Maven) ,Ruby (RubyGems) ,.Net (NuGet) 以及 Docker images 都支持。未來還會(huì)支持更多,比如 Python 已經(jīng)在路上了。
△ 網(wǎng)友焦急:下個(gè)支持 Go 啊
GitHub 說,如果你的 repo 很復(fù)雜,可以發(fā)布成好幾個(gè)不同類型的軟件包。
以及,通過 webhooks 或者 GitHub Actions,能夠完全定制發(fā)布中和發(fā)布后的 Workflow。
軟件可以發(fā)布成私有,也可以公開:
大多數(shù)開源項(xiàng)目,源碼都在 GitHub 上??梢园杨A(yù)發(fā)行版本 (Prerelease Versions) 的軟件包公布出來,在社區(qū)里做測(cè)試,也可以把某個(gè)版本放到公開的 Registry 里去。
統(tǒng)一的身份和權(quán)限
如果,你用了許多不同的系統(tǒng)來發(fā)布代碼和軟件包,那就需要許多套不同的 (身份認(rèn)證用的) 用戶憑據(jù)和權(quán)限。
但現(xiàn)在在 GitHub 上,代碼和包可以用一套用戶憑據(jù),也可以用同樣的工具來管理訪問權(quán)限。
GitHub 上的軟件包,延用了 Repo 的可見性 (Visibility) 和權(quán)限 (Permissions) ,這樣團(tuán)隊(duì)就不用再跨系統(tǒng)去維護(hù)一個(gè)單獨(dú)的 Registry,以及鏡像的權(quán)限了。
詳細(xì)信息,知己知彼
GitHub 上托管的軟件包,都有詳細(xì)信息、下載統(tǒng)計(jì),以及完整的歷史記錄可以查看。
用戶能明晰地了解包里都有些什么。這樣一來,就更容易找到適合自己的依賴項(xiàng)。
而包的主人查看數(shù)據(jù)統(tǒng)計(jì),便可以詳細(xì)了解,其他人/其他項(xiàng)目都是怎樣使用了自己的軟件包。
你要試試么
現(xiàn)在,測(cè)試版已經(jīng)上線了。
注冊(cè)一下就可以用:
https://github.com/features/package-registry/signup
GitHub Package Resgistry 是免費(fèi)的。不過,團(tuán)隊(duì)也在周圍開發(fā)一些附加功能,比如針對(duì)安全性 (Security) 和合規(guī)性 (Compliance) ,打算日后為商業(yè)用戶提供。
要變天了
軟件包管理器,在開發(fā)者的世界里舉足輕重。它們整合了自動(dòng)安裝、配制、卸載、升級(jí)等等各種環(huán)節(jié)的工具。
比如,在開發(fā)應(yīng)用的過程中,可能用到許多別人寫的軟件包。有了包管理器,就可以直接安裝軟件包,省去繁復(fù)的搜索、下載代碼、解壓……這一系列步驟。
如今,軟件包管理系統(tǒng)百花齊放。不同的開發(fā)環(huán)境,都有自己的包管理器。
每個(gè)管理器,有各自忠實(shí)的用戶。在 GitHub 發(fā)布了“大一統(tǒng)”的服務(wù)之后,他們都十分關(guān)心這些管理器的將來。
比如,Maven Central就是一個(gè)重量級(jí)倉(cāng)庫。
Hacker News 評(píng)論區(qū)的頂樓說,Package Registry 出現(xiàn)了,表示 Maven 就要死了。
他還說,自己內(nèi)心百感交集:
一方面,這個(gè)庫已經(jīng)免費(fèi)存在了很長(zhǎng)時(shí)間,心生感激。
但另一方面,Key Registries 非常緩慢,幾個(gè)小時(shí)才能拿到自己的 Private Key。除此之外,開發(fā)用服務(wù)器 (Staging Server) 也很緩慢,總是超時(shí)。
而 GitHub 的新服務(wù),是把 Registry 和存儲(chǔ) (Artifact Storage) 分開的。
這樣是對(duì)的,因?yàn)?strong>Registry需要快速更新。而存儲(chǔ)就在我自己的控制范圍了。
另外,NPM 的用戶也在擔(dān)心它的命運(yùn):
這個(gè)服務(wù),可以解決 NPM 的信任問題:你永遠(yuǎn)不會(huì)知道,自己下載的這個(gè)包,來源是不是真像頁面上寫的那樣。
畢竟,NPM 現(xiàn)在內(nèi)外交困:
NPM 這巨大的 Registry 人見人愛,可是已經(jīng)快花光投資人的錢了,靠著私有 Registry 產(chǎn)品支撐?,F(xiàn)在,又換了個(gè)奇怪的 CEO,投資人的耐心可能要消磨殆盡了。
不過,即便 GitHub 服務(wù)強(qiáng)勢(shì)來襲,依然有許多人保持懷疑的態(tài)度。比如:
兼容的意思是,兩邊的 Registry 可以一起用么?那如果名稱沖突了怎么辦呢?
有人回復(fù)了這條評(píng)論:
這才是真正的問題所在,可能對(duì) JS 的生態(tài)系造成嚴(yán)重的破壞。要看 GitHub 怎么處理了。