{"id":34878,"date":"2024-11-07T06:06:12","date_gmt":"2024-11-07T06:06:12","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=34878"},"modified":"2024-11-07T06:06:57","modified_gmt":"2024-11-07T06:06:57","slug":"whats-new-in-vcpkg-october-2024","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/whats-new-in-vcpkg-october-2024\/","title":{"rendered":"What\u2019s New in vcpkg (October 2024)"},"content":{"rendered":"<p>This blog post summarizes changes to the <a href=\"https:\/\/vcpkg.io\/\">vcpkg package manager<\/a> as part of the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\/tag\/2024.10.21\">2024.10.21<\/a> registry release, <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/releases\/tag\/2024-10-18\">2024-10-18<\/a> tool release, as well as changes to <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/\">vcpkg documentation<\/a> throughout October. This release adds support for Azure universal packages as a binary caching provider and other minor improvements.<\/p>\n<h1>CppCon Talk on Managing C++ Dependencies<\/h1>\n<p>I also gave a talk at CppCon about 10 Problems Large Companies Have with Managing C++ Dependencies and How to Solve Them. Here is a video recording of the talk:<\/p>\n<p><iframe title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/kOW74IUH7IA?si=d3m6GfotXA5EKBTG\" width=\"784\" height=\"441\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>In particular, I talked about several vcpkg features that can help:<\/p>\n<ol>\n<li>Supporting <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/concepts\/ports\">build from source<\/a> as a fallback without sacrificing the build-time savings of <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/users\/binarycaching\">binary dependency acquisition<\/a>.<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/vcpkg\/users\/versioning.concepts\">Upgrading dependencies<\/a> as a set using baselines, rather than managing them individually, to avoid version conflicts \/ diamond problems.<\/li>\n<li>How to continue working in an offline build environment using <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/concepts\/asset-caching\">asset caching<\/a>.<\/li>\n<li>Getting any open-source libraries installed and working with your project with minimal effort, while also automatically resolving transitive dependencies.<\/li>\n<\/ol>\n<p>Some stats for this period:<\/p>\n<ul>\n<li>There are now <strong>2,490 total ports <\/strong>available in the vcpkg curated registry. A <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/concepts\/ports\">port is a versioned recipe<\/a> for building a package from source, such as a C or C++ library.<\/li>\n<li><strong>7 new ports<\/strong> were added to the curated registry.<\/li>\n<li><strong>422 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 13 main <a href=\"https:\/\/learn.microsoft.com\/en-us\/vcpkg\/concepts\/triplets\">triplets<\/a>.<\/li>\n<li><strong>53 <\/strong>contributors made commits (not counting the vcpkg maintainers).<\/li>\n<li>The main vcpkg repo has over <strong>6,400 forks<\/strong> and <strong>23,200 stars<\/strong> on GitHub.<\/li>\n<\/ul>\n<h1>vcpkg changelog (2024.10.21 release)<\/h1>\n<p>The following changes were made in October:<\/p>\n<ul>\n<li>Added support for Azure universal packages as a <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/users\/binarycaching\">binary caching<\/a> provider (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\/pull\/1491\">Microsoft\/vcpkg-tool#1491<\/a>).<\/li>\n<li>Other minor improvements.<\/li>\n<\/ul>\n<h1>Documentation changes<\/h1>\n<ul>\n<li>Added reference documentation for <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/reference\/binarycaching#azuniversal\">binary caching with Azure universal packages<\/a> as a back-end (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/pull\/414\">Microsoft\/vcpkg-docs#414<\/a>).<\/li>\n<li>Updated links, fixed typos, and added some clarifications to usage examples for vcpkg maintainer functions (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/pull\/381\">Microsoft\/vcpkg-docs#381<\/a>, thanks @Thomas1664!).<\/li>\n<li>Clarified how default features should be used for vcpkg ports in <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/contributing\/maintainer-guide\">maintainer guide<\/a> (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/pull\/410\">Microsoft\/vcpkg-docs#410<\/a>).<\/li>\n<li>Updated docs for vcpkg <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/concepts\/supported-hosts\">supported host environments<\/a> (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/pull\/415\">Microsoft\/vcpkg-docs#415<\/a>).<\/li>\n<li>Improvements to example for packaging GitHub repos in vcpkg (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/pull\/405\">Microsoft\/vcpkg-docs#405<\/a>, thanks @andre-nguyen!).<\/li>\n<li>Fixed <code>nuget<\/code> command for <code>setapikey<\/code> in <a href=\"https:\/\/learn.microsoft.com\/vcpkg\/consume\/binary-caching-nuget\">Set up a vcpkg binary cache using a NuGet feed<\/a> tutorial (PR: <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/pull\/381\">Microsoft\/vcpkg-docs#381<\/a>, thanks @Thomas1664!).<\/li>\n<\/ul>\n<p>If you have any suggestions for our documentation, please <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\/issues\">submit an issue in our GitHub repo<\/a> or see the box at the bottom of a particular article.<\/p>\n<p><img decoding=\"async\" class=\"wp-image-34879\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/11\/word-image-34878-1.png\" width=\"735\" height=\"216\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/11\/word-image-34878-1.png 1099w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/11\/word-image-34878-1-300x88.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/11\/word-image-34878-1-1024x301.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2024\/11\/word-image-34878-1-768x226.png 768w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/p>\n<h1>Total ports available for tested triplets<\/h1>\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>x64-windows<\/td>\n<td>2,361<\/td>\n<\/tr>\n<tr>\n<td>x86-windows<\/td>\n<td>2,261<\/td>\n<\/tr>\n<tr>\n<td>x64-windows-static<\/td>\n<td>2,261<\/td>\n<\/tr>\n<tr>\n<td>x64-windows-static-md<\/td>\n<td>2,281<\/td>\n<\/tr>\n<tr>\n<td>arm64-windows<\/td>\n<td>1,960<\/td>\n<\/tr>\n<tr>\n<td>x64-uwp<\/td>\n<td>1,307<\/td>\n<\/tr>\n<tr>\n<td>arm64-uwp<\/td>\n<td>1,276<\/td>\n<\/tr>\n<tr>\n<td>x64-linux<\/td>\n<td>2,336<\/td>\n<\/tr>\n<tr>\n<td>x64-osx<\/td>\n<td>2,209<\/td>\n<\/tr>\n<tr>\n<td>arm64-osx<\/td>\n<td>2,132<\/td>\n<\/tr>\n<tr>\n<td>arm-neon-android<\/td>\n<td>1,635<\/td>\n<\/tr>\n<tr>\n<td>x64-android<\/td>\n<td>1,713<\/td>\n<\/tr>\n<tr>\n<td>arm64-android<\/td>\n<td>1,685<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>While vcpkg supports a much larger variety of target platforms and architectures (as <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/tree\/master\/triplets\/community\">community triplets<\/a>), the list above is validated exhaustively to ensure updated ports don\u2019t break other ports in the catalog.<\/p>\n<h1>Thank you to our contributors<\/h1>\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 <a href=\"https:\/\/github.com\/microsoft\/vcpkg\">vcpkg<\/a>, <a href=\"https:\/\/github.com\/microsoft\/vcpkg-tool\">vcpkg-tool<\/a>, or <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\">vcpkg-docs<\/a> repos in this release (listed alphabetically by GitHub username):<\/p>\n<ul>\n<li>ADKaster<\/li>\n<li>AenBleidd<\/li>\n<li>Al17OTON<\/li>\n<li>andre-nguyen<\/li>\n<li>autoantwort<\/li>\n<li>braindigitalis<\/li>\n<li>c8ef<\/li>\n<li>cenit<\/li>\n<li>ComputerKing12<\/li>\n<li>dbolduc<\/li>\n<li>dg0yt<\/li>\n<li>fran6co<\/li>\n<li>GabeRundlett<\/li>\n<li>Gastineau<\/li>\n<li>hansingt<\/li>\n<li>HappySeaFox<\/li>\n<li>Hosseinmoein<\/li>\n<li>lrineau<\/li>\n<li>JAicewizard<\/li>\n<li>jandupej<\/li>\n<li>jeremy-rifkin<\/li>\n<li>jiayuehua<\/li>\n<li>johnwason<\/li>\n<li>kadirlua<\/li>\n<li>kwsp<\/li>\n<li>lemourin<\/li>\n<li>lukasberbuer<\/li>\n<li>miyanyan<\/li>\n<li>m-kuhn<\/li>\n<li>Neumann-A<\/li>\n<li>nickdademo<\/li>\n<li>nlogozzo<\/li>\n<li>Olli1080<\/li>\n<li>Osyotr<\/li>\n<li>plevy<\/li>\n<li>Poldraunic<\/li>\n<li>RealTimeChris<\/li>\n<li>redboltz<\/li>\n<li>rmisev<\/li>\n<li>RT2Code<\/li>\n<li>rtzoeller<\/li>\n<li>Shadowrom2020<\/li>\n<li>SHIINASAMA<\/li>\n<li>siukosev<\/li>\n<li>starfishmod<\/li>\n<li>SunBlack<\/li>\n<li>SuperCodeHero<\/li>\n<li>sweemer<\/li>\n<li>talregev<\/li>\n<li>teo-tsirpanis<\/li>\n<li>Thomas1664<\/li>\n<li>waywardmonkeys<\/li>\n<li>winsoft666<\/li>\n<\/ul>\n<h1>Learn more<\/h1>\n<p>You can find the <a href=\"https:\/\/github.com\/microsoft\/vcpkg\/releases\">main release notes<\/a> on GitHub. 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>. To contribute to vcpkg documentation, visit the <a href=\"https:\/\/github.com\/microsoft\/vcpkg-docs\">vcpkg-docs repo<\/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\">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\">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>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog post summarizes changes to the vcpkg package manager as part of the 2024.10.21 registry release, 2024-10-18 tool release, as well as changes to vcpkg documentation throughout October. This release adds support for Azure universal packages as a binary caching provider and other minor improvements. CppCon Talk on Managing C++ Dependencies I also gave [&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":[140,273],"class_list":["post-34878","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-vcpkg","tag-c","tag-vcpkg"],"acf":[],"blog_post_summary":"<p>This blog post summarizes changes to the vcpkg package manager as part of the 2024.10.21 registry release, 2024-10-18 tool release, as well as changes to vcpkg documentation throughout October. This release adds support for Azure universal packages as a binary caching provider and other minor improvements. CppCon Talk on Managing C++ Dependencies I also gave [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/34878","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=34878"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/34878\/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=34878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=34878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=34878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}