{"id":30452,"date":"2022-04-22T01:35:05","date_gmt":"2022-04-22T01:35:05","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=30452"},"modified":"2024-04-01T17:55:32","modified_gmt":"2024-04-01T17:55:32","slug":"vcpkg-april-2022-release-is-now-available","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/vcpkg-april-2022-release-is-now-available\/","title":{"rendered":"vcpkg April 2022 Release: artifacts merged to tool repo, tar.exe in Windows 10, GIT_ASKPASS, vcpkg in Arch Linux instructions, and more"},"content":{"rendered":"<p>The <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2022.04.12\">April 2022 release of the vcpkg package manager is available<\/a>. This blog post summarizes changes from March 1<sup>st<\/sup>, 2022 to March 30<sup>th<\/sup>, 2022 for the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2022.04.12\">microsoft\/vcpkg<\/a> and <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/441\">microsoft\/vcpkg-tool<\/a> GitHub repos.<\/p>\n<p>Some stats for this period:<\/p>\n<ul>\n<li><strong>24 new ports<\/strong> were added to the open-source registry. If you are unfamiliar with the term \u2018port\u2019, they are packages that are built from source and are typically C\/C++ libraries.<\/li>\n<li><strong>272 updates<\/strong> were made to existing ports. As always, we validate each change to a port by building all other ports that depend on or are depended by the library that is being updated for our nine main triplets.<\/li>\n<li>There are now <strong>1,926 total libraries<\/strong> available in the vcpkg public registry. When including all available versions, there are <strong>9,431 versioned ports<\/strong>. Vcpkg continues to maintain the largest C\/C++ open-source catalog on the market.<\/li>\n<li>The <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2022.04.12\">April release of the main vcpkg repo<\/a> includes <strong>281 merged PRs<\/strong> by <strong>83 people<\/strong>.<\/li>\n<li>The main vcpkg repo has <strong>4.5k forks<\/strong> and <strong>15.5k stars<\/strong> on GitHub.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Notable Changes<\/h3>\n<h4>vcpkg artifacts merged into Microsoft\/vcpkg-tool repo<\/h4>\n<p>vcpkg artifacts is our preview experience for acquiring binary packages, intended for developer tools like compilers, platform SDKs, and debuggers. This is a major step towards accepting external contributions for the vcpkg artifacts feature.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/428\">Microsoft\/vcpkg-tool#428<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>vcpkg can use tar.exe from Windows 10<\/h4>\n<p>To reduce our external dependency count for better reliability and performance, vcpkg now uses the Windows 10 in-box copy of tar to unzip our core dependencies. This removes the need for msiexec.exe during core operation on Windows 10 (though certain ports may still require it).<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/406\">Microsoft\/vcpkg-tool#406<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Anonymous AWS S3 access added for binary caching experience<\/h4>\n<p>This works via a new x-aws-config option in vcpkg.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/434\">Microsoft\/vcpkg-tool#434<\/a> (thank you <a href=\"https:\/\/github.com\/AenBleidd\">@AenBleidd<\/a>!)<\/p>\n<p>&nbsp;<\/p>\n<h4>Improved port installation error logging in vcpkg CI system<\/h4>\n<p>When modifying a port, vcpkg builds not only the port itself, but all other ports depending on it or that are dependencies of the port. This is handled by our CI system, which must successfully complete this operation to accept PRs. We have improved the logging of which ports are being broken by a PR so that port maintainers have an easier time diagnosing what went wrong.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/468\">Microsoft\/vcpkg-tool#468<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>General object storage interface for binary caching<\/h4>\n<p>Provides a consistent interface for using binary caching with different cloud providers.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/456\">Microsoft\/vcpkg-tool#456<\/a> (thank you <a href=\"https:\/\/github.com\/day253\">@day253<\/a>!)<\/p>\n<p>&nbsp;<\/p>\n<h4>Progress with Visual Studio integration experience<\/h4>\n<p>We have not yet finished our improved Visual Studio integration experience for vcpkg, but progress was made this release, including signed PowerShell scripts and a packaging step that was added to the tool.<\/p>\n<p>PRs: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/451\">Microsoft\/vcpkg-tool#451<\/a> &amp; <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/399\">Microsoft\/vcpkg-tool#399<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>vcpkg tool no longer depends on ninja<\/h4>\n<p>Ninja is no longer a dependency of the vcpkg tool, reducing the overhead of installing 3<sup>rd<\/sup> party tools for vcpkg to function. Some individual ports may still require Ninja and it will be acquired in these circumstances as part of their build scripts.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/372\">Microsoft\/vcpkg-tool#372<\/a> (thank you <a href=\"https:\/\/github.com\/Neumann-A\">@Neumann-A<\/a>!)<\/p>\n<p>&nbsp;<\/p>\n<h4>GIT_ASKPASS support<\/h4>\n<p>An environment variable has been added for GIT_ASKPASS. This is used to point git toward a binary that implements git\u2019s credential manager interface and can be used for private repository authentication.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/441\">Microsoft\/vcpkg-tool\/#441<\/a> (thank you <a href=\"https:\/\/github.com\/horenmar\">@horenmar<\/a>!)<\/p>\n<p>&nbsp;<\/p>\n<h4>Removed many uses of std::regex in the vcpkg code<\/h4>\n<p>We\u2019ve been removing uses of <code>std::regex<\/code> throughout the code to improve vcpkg performance.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/427\">Microsoft\/vcpkg-tool\/#427<\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>Instructions for using vcpkg in Arch Linux<\/h4>\n<p>Added user <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/pull\/23676\">instructions for Arch Linux<\/a> during vcpkg bootstrap.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/pull\/23676\">Microsoft\/vcpkg\/#23676<\/a> (thank you <a href=\"https:\/\/github.com\/bwrsandman\">@bwrsandman<\/a>!).<\/p>\n<p>&nbsp;<\/p>\n<h4>vcpkg works again with CMake versions &lt;= 3.19<\/h4>\n<p>Fixed a bug that was breaking the vcpkg CMake toolchain file for CMake versions 3.19 and earlier.<\/p>\n<p>PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/pull\/23410\">Microsoft\/vcpkg\/#23410<\/a> (thank you <a href=\"https:\/\/github.com\/dg0yt\">@dg0yt<\/a>!)<\/p>\n<p>&nbsp;<\/p>\n<h3>Total Ports Available for Tested Triplets<\/h3>\n<table>\n<tbody>\n<tr>\n<td><strong>triplet<\/strong><\/td>\n<td><strong>ports available<\/strong><\/td>\n<\/tr>\n<tr>\n<td>x86-windows<\/td>\n<td>1,731<\/td>\n<\/tr>\n<tr>\n<td>x64-windows<\/td>\n<td>1,776<\/td>\n<\/tr>\n<tr>\n<td>x64-windows-static<\/td>\n<td>1,667<\/td>\n<\/tr>\n<tr>\n<td>x64-windows-static-md<\/td>\n<td>1,691<\/td>\n<\/tr>\n<tr>\n<td>x64-uwp<\/td>\n<td>880<\/td>\n<\/tr>\n<tr>\n<td>arm64-windows<\/td>\n<td>1,315<\/td>\n<\/tr>\n<tr>\n<td>arm-uwp<\/td>\n<td>826<\/td>\n<\/tr>\n<tr>\n<td>x64-osx<\/td>\n<td>1,641<\/td>\n<\/tr>\n<tr>\n<td>x64-linux<\/td>\n<td>1,713<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>While vcpkg supports a much larger variety of target platforms x architectures, the list above is routinely tested to ensure updated ports don\u2019t break other ports in the catalog.<\/p>\n<p><em>Fun fact:<\/em> we have so many x64-windows ports now that it takes over 24 hours to build them as part of our package testing process. We had to <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/pull\/23601\">increase the timeout on these builds<\/a> to compensate for the added time.<\/p>\n<p>&nbsp;<\/p>\n<h3>Documentation<\/h3>\n<p>Minor documentation changes were made for several vcpkg functions. We also want to thank our community contributor <a href=\"https:\/\/github.com\/zhangfuwen\">@zhangfuwen<\/a> for <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/pull\/23690\">updating our Android usage documentation<\/a> as well.<\/p>\n<p>&nbsp;<\/p>\n<h3>Thank you to our contributors<\/h3>\n<p>vcpkg couldn\u2019t be where it is today without contributions from our open-source community. Thank you for your continued support! The following people contributed to the vcpkg and vcpkg-tool repos between March 1 \u2013 March 30, 2022:<\/p>\n<ul>\n<li>autoantwort (22 commits)<\/li>\n<li>dg0yt (17 commits)<\/li>\n<li>Thomas1664 (12 commits)<\/li>\n<li>Neumann-A (11 commits)<\/li>\n<li>coryan (4 commits)<\/li>\n<li>horenmar (3 commits)<\/li>\n<li>Ryan-rsm-McKenzie (3 commits)<\/li>\n<li>RT222 (3 commits)<\/li>\n<li>chausner (3 commits)<\/li>\n<li>Pospelove (2 commits)<\/li>\n<li>hkaiser (1 commit)<\/li>\n<li>ZeeWanderer (1 commit)<\/li>\n<li>cenit (1 commit)<\/li>\n<li>Hoikas (1 commit)<\/li>\n<li>mathisloge (1 commit)<\/li>\n<li>day253 (1 commit)<\/li>\n<li>xvitaly (1 commit)<\/li>\n<li>bhardwajs (1 commit)<\/li>\n<li>AenBleidd (1 commit)<\/li>\n<li>mprather (1 commit)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Learn More<\/h3>\n<p>You can find the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2022.04.12\">full April release notes on GitHub<\/a> for the main repo. Recent updates to the vcpkg tool can be viewed on the <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/releases\">vcpkg-tool Releases page<\/a>. If you\u2019re new to vcpkg or curious about how a package manager can make your life easier as a C\/C++ developer, check out the <a href=\"https:\/\/vcpkg.io\/en\/index.html\">vcpkg website \u2013 vcpkg.io<\/a>.<\/p>\n<p>If you would like to contribute to vcpkg and its library catalog, or want to give us feedback on anything, check out our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\">GitHub repo<\/a>. Please report bugs or request updates to ports in our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/issues\">issue tracker<\/a>, or join more general discussion in our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/discussions\">discussion forum<\/a>. For an overview of our top priorities and backlog, take a look at our <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/wiki\/Roadmap\">roadmap page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The April 2022 release of the vcpkg package manager is available. This blog post summarizes changes from March 1st, 2022 to March 30th, 2022 for the microsoft\/vcpkg and microsoft\/vcpkg-tool GitHub repos. Some stats for this period: 24 new ports were added to the open-source registry. If you are unfamiliar with the term \u2018port\u2019, they are [&hellip;]<\/p>\n","protected":false},"author":1063,"featured_media":28096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,272],"tags":[273],"class_list":["post-30452","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-vcpkg","tag-vcpkg"],"acf":[],"blog_post_summary":"<p>The April 2022 release of the vcpkg package manager is available. This blog post summarizes changes from March 1st, 2022 to March 30th, 2022 for the microsoft\/vcpkg and microsoft\/vcpkg-tool GitHub repos. Some stats for this period: 24 new ports were added to the open-source registry. If you are unfamiliar with the term \u2018port\u2019, they are [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/30452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/1063"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=30452"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/30452\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/28096"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=30452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=30452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=30452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}