天天看點

微軟牌包管理器vcpkg更新及路線圖計劃 微軟牌包管理器vcpkg更新及路線圖計劃 vcpkg三月活動2020.04 釋出更新vcpkg的路線圖1. vcpkg将通過緩存來減少庫在一台新機器上的安裝時間。2. vcpkg安裝的時候支援指定庫的版本。3. vcpkg将會提供一個清單檔案,這個檔案可以用來指定所有的依賴,并且可以CheckIn到源碼控制系統中。4. vcpkg将會更容易的從多個源中安裝代碼庫。5. vcpkg将會随Visual Studio和Visual Studio Code一起釋出。總結

微軟牌包管理器vcpkg更新及路線圖計劃 

vcpkg是一套跨平台,開源的C/C++庫管理器,今天的這篇文章是有關vcpkg主題的2020年4月博文更新。在這篇文章中,我們将分享有關vcpkg 2020.04釋出版本的一些資訊以及vcpkg的路線圖(roadmap),我們會在這裡持續地釋出有關vcpkg的最新消息。

vcpkg三月活動

首先我們想感謝所有vcpkg項目的貢獻者們。在過去的三月份裡,下面的所有人貢獻了PR并被合并到項目的主分支中,這些貢獻者中有微軟的vcpkg核心開發團隊成員,也有我們的合作夥伴Beyondsoft的團隊成員。

微軟牌包管理器vcpkg更新及路線圖計劃 微軟牌包管理器vcpkg更新及路線圖計劃 vcpkg三月活動2020.04 釋出更新vcpkg的路線圖1. vcpkg将通過緩存來減少庫在一台新機器上的安裝時間。2. vcpkg安裝的時候支援指定庫的版本。3. vcpkg将會提供一個清單檔案,這個檔案可以用來指定所有的依賴,并且可以CheckIn到源碼控制系統中。4. vcpkg将會更容易的從多個源中安裝代碼庫。5. vcpkg将會随Visual Studio和Visual Studio Code一起釋出。總結

目前我們總共有826名貢獻者,非常感謝你們投入寶貴的時間來開發并完善一個更好的庫管理工具。同時,我們非常期待着你也能加入到貢獻者的隊伍中來。

2020.04 釋出更新

在四月份,我們釋出了vcpkg 2020.04更新。這次的更新包含了一些文檔内容的更新,一些産品上的優化改進,新增了5個新的庫(我們稱之為”ports”),以及對現有的69個ports的更新。

所有重大更新清單如下:

> vcpkg_from_git: 添加git over ssh功能。

> 安卓支援:導出到安卓Archive。

> Make configure meson sane and work for all targets。

> 添加新的政策:SKIP_ARCHITECTURE_CHECK。

> 首次添加iOS支援。

> 添加x-set-installed指令。

> 首次添加JSON支援。

下面列出的是5個新添加的代碼庫:

1. skyr-url (v1.5.1)

2. boringssl (v2020-04-07)

3. quadtree (v2020-04-13)

4. avisynthplus (v3.5.0)

5. c4core (v2020-04-12)

總的來說,我們目前在vcpkg主倉庫目錄中一共支援1322個代碼庫。如果根據編譯配置(我們稱之為”triplets”)來彙總,具體數量請參見下表:

微軟牌包管理器vcpkg更新及路線圖計劃 微軟牌包管理器vcpkg更新及路線圖計劃 vcpkg三月活動2020.04 釋出更新vcpkg的路線圖1. vcpkg将通過緩存來減少庫在一台新機器上的安裝時間。2. vcpkg安裝的時候支援指定庫的版本。3. vcpkg将會提供一個清單檔案,這個檔案可以用來指定所有的依賴,并且可以CheckIn到源碼控制系統中。4. vcpkg将會更容易的從多個源中安裝代碼庫。5. vcpkg将會随Visual Studio和Visual Studio Code一起釋出。總結

vcpkg的路線圖

接下來是我們對于vcpkg的路線圖計劃。我們将繼續支援新的代碼庫并增加庫在Linux和macOS上的數量,同時,我們會基于你的使用回報和建議來添加新的産品特性。下面是我們計劃添加的一些特性:

1. vcpkg将通過緩存來減少庫在一台新機器上的安裝時間。

目前,vcpkg會下載下傳源代碼到你的機器上并進行本機編譯。這個過程可以生成一個比對你所指定的編譯配置的二進制檔案,并和你的項目保持相容性。但是有一些庫需要以相同的方式編譯到多台機器上。還有一些例子包含一套運作在多台編譯伺服器上的持續內建的設定,或者有多個開發者在他們自己的開發機上為同一個項目上工作。接下來,vcpkg将可以使你僅做一次本機編譯并緩存生成的二進制輸出到一個檔案或者一個二進制檔案宿主服務(例如,Azure Artifact Storage)。下一次在另一台機器上執行”vcpkg install”命名的時候,vcpkg将能夠從緩存中下載下傳預編譯好的二進制檔案,而不再需要執行另一次的本機編譯。這個功能特性可以顯著的節省時間,尤其是當你的項目是跨越多個編譯伺服器的大型項目的時候。

2. vcpkg安裝的時候支援指定庫的版本。

在預設情況下,vcpkg提供了一個大概有1300個庫的目錄,這些庫在指定的快照環境下都經過了與其他庫的相容性測試.這意味着,你可以随意選擇安裝一個庫而不用擔心其版本沖突的問題,但這也限制了它的靈活性,因為你可能希望使用某個庫的特定版本。我們相信,一個好的庫管理器應該對進階使用者具備足夠的靈活性,我們将允許使用者在庫安裝階段指定一個特定的版本。如果你明白庫的依賴性圖表并願意承擔相容性測試的責任,則你可以選擇安裝庫的舊一點的版本,隻要你願意的話。你依舊可以在我們的目錄中運作我們提供的測試項目,就算對于不同的庫使用到了一些不同的版本,但是因為這其中海量的排列組合的可能性,我們也不能保證有100%的覆寫率。

3. vcpkg将會提供一個清單檔案,這個檔案可以用來指定所有的依賴,并且可以CheckIn到源碼控制系統中。

這個想法非常直接:你可以在一個叫做vcpkg.json的檔案中指明庫的依賴項,版本以及從何處可以擷取到這個依賴。這個檔案可以成為你的源碼倉庫的一部分,并且vcpkg可以在你需要的時候讀取這個檔案并按需下載下傳所有需要的東西。

4. vcpkg将會更容易的從多個源中安裝代碼庫。

目前,vcpkg主要用來下載下傳一些比較流行的開源代碼庫。在我們的目錄中,已經有1300個庫可用了,但是在企業環境中還有許多私有庫和一些比較小的庫沒有在我們的目錄中。想法是:提供一種可能性,可以在vcpkg中制定庫的源位址,這樣就可以下載下傳它。通過這個方法,vcpkg可以管理你項目中的所有依賴,而不僅僅是開源代碼庫的部分。盡管在一開始開發團隊可能需要針對他們的環境做一些設定,但從長遠來看,這可以在項目環境搭建和持續內建階段節省很多時間。

5. vcpkg将會随Visual Studio和Visual Studio Code一起釋出。

在Visual Studio中,vcpkg将會包含在C++工作集中,而對于Visual Studio Code,它會被作為C++的一個擴充來釋出。這兩套開發環境都已經包含了一些對vcpkg的支援,我們将會持續改進開發環境的整合性。目标是,在你使用這些開發環境時,可以更加流暢的下載下傳你需要的代碼庫。是以,我們需要做的第一步就是将庫管理器內建到開發環境中,這樣當你需要使用到它的時候,它就已經在那裡了。

總結

vcpkg作為庫管理器的後起之秀,在大微軟開發隊伍的努力工作下,假以時日,應該會成為其OneWindows生态系統中開發者這一側不可或缺的角色。雖然我不怎麼用,但還是祝:越辦越好吧!