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 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:
In particular, I talked about several vcpkg features that can help:
- Supporting build from source as a fallback without sacrificing the build-time savings of binary dependency acquisition.
- Upgrading dependencies as a set using baselines, rather than managing them individually, to avoid version conflicts / diamond problems.
- How to continue working in an offline build environment using asset caching.
- Getting any open-source libraries installed and working with your project with minimal effort, while also automatically resolving transitive dependencies.
Some stats for this period:
- There are now 2,490 total ports available in the vcpkg curated registry. A port is a versioned recipe for building a package from source, such as a C or C++ library.
- 7 new ports were added to the curated registry.
- 422 updates 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 triplets.
- 53 contributors made commits (not counting the vcpkg maintainers).
- The main vcpkg repo has over 6,400 forks and 23,200 stars on GitHub.
vcpkg changelog (2024.10.21 release)
The following changes were made in October:
- Added support for Azure universal packages as a binary caching provider (PR: Microsoft/vcpkg-tool#1491).
- Other minor improvements.
Documentation changes
- Added reference documentation for binary caching with Azure universal packages as a back-end (PR: Microsoft/vcpkg-docs#414).
- Updated links, fixed typos, and added some clarifications to usage examples for vcpkg maintainer functions (PR: Microsoft/vcpkg-docs#381, thanks @Thomas1664!).
- Clarified how default features should be used for vcpkg ports in maintainer guide (PR: Microsoft/vcpkg-docs#410).
- Updated docs for vcpkg supported host environments (PR: Microsoft/vcpkg-docs#415).
- Improvements to example for packaging GitHub repos in vcpkg (PR: Microsoft/vcpkg-docs#405, thanks @andre-nguyen!).
- Fixed
nuget
command forsetapikey
in Set up a vcpkg binary cache using a NuGet feed tutorial (PR: Microsoft/vcpkg-docs#381, thanks @Thomas1664!).
If you have any suggestions for our documentation, please submit an issue in our GitHub repo or see the box at the bottom of a particular article.
Total ports available for tested triplets
triplet | ports available |
x64-windows | 2,361 |
x86-windows | 2,261 |
x64-windows-static | 2,261 |
x64-windows-static-md | 2,281 |
arm64-windows | 1,960 |
x64-uwp | 1,307 |
arm64-uwp | 1,276 |
x64-linux | 2,336 |
x64-osx | 2,209 |
arm64-osx | 2,132 |
arm-neon-android | 1,635 |
x64-android | 1,713 |
arm64-android | 1,685 |
While vcpkg supports a much larger variety of target platforms and architectures (as community triplets), the list above is validated exhaustively to ensure updated ports don’t break other ports in the catalog.
Thank you to our contributors
vcpkg couldn’t 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, vcpkg-tool, or vcpkg-docs repos in this release (listed alphabetically by GitHub username):
- ADKaster
- AenBleidd
- Al17OTON
- andre-nguyen
- autoantwort
- braindigitalis
- c8ef
- cenit
- ComputerKing12
- dbolduc
- dg0yt
- fran6co
- GabeRundlett
- Gastineau
- hansingt
- HappySeaFox
- Hosseinmoein
- lrineau
- JAicewizard
- jandupej
- jeremy-rifkin
- jiayuehua
- johnwason
- kadirlua
- kwsp
- lemourin
- lukasberbuer
- miyanyan
- m-kuhn
- Neumann-A
- nickdademo
- nlogozzo
- Olli1080
- Osyotr
- plevy
- Poldraunic
- RealTimeChris
- redboltz
- rmisev
- RT2Code
- rtzoeller
- Shadowrom2020
- SHIINASAMA
- siukosev
- starfishmod
- SunBlack
- SuperCodeHero
- sweemer
- talregev
- teo-tsirpanis
- Thomas1664
- waywardmonkeys
- winsoft666
Learn more
You can find the main release notes on GitHub. Recent updates to the vcpkg tool can be viewed on the vcpkg-tool Releases page. To contribute to vcpkg documentation, visit the vcpkg-docs repo. If you’re new to vcpkg or curious about how a package manager can make your life easier as a C/C++ developer, check out the vcpkg website – vcpkg.io.
If you would like to contribute to vcpkg and its library catalog, or want to give us feedback on anything, check out our GitHub repo. Please report bugs or request updates to ports in our issue tracker or join more general discussion in our discussion forum.
0 comments
Be the first to start the discussion.