I imagine it went down like this at the #MicrosoftAzure design meeting:

> Microsoft engineer: We should store the MD5 of the content in the blob storage database.

> Senior Microsoft engineer: Let's use #dotnet (!), and interpret the hexadecimal MD5 (with a newline!) as binary, and then base64 encode it!

They might have saved a couple of bytes... #dotnet ...๐Ÿ‘ ...๐Ÿ˜ฌ

#MicrosoftLogic #ShamelessTechShaming #LegacyTech #LegacyCode #LegacyCodeProblems

Troubleshoot binary caching issues

Troubleshooting guide for common binary caching issues

Obvious sources of a #vcpkg package ABI hash:

โœ… vcpkg tool/binary
โœ… The microsoft/vcpkg repo root in use (due to the `scripts` directory containing CMake definitions etc.)
โœ… Compiler(s) (version) (something like a hash of the compiler binary similar to the approach used by ccache, and sccache)
โ“ vcpkg triplet. Is the content of the vcpkg triplet file in play or is it just the triplet name?
โ“ vcpkg overlay triplets
โœ… portfile and/or hash of the port directory

#WhyVcpkgWhy #LegacyCodeProblems

I still don't get the algorithm that determines whether #vcpkg re-uses a cached binary or re-builds from source.

I get that it is determined by the ABI checksum/hash that vcpkg calculates, I just utterly do not understand the set of factors that might influence the ABI hash calculation.

#WhyVcpkgWhy #LegacyCodeProblems

@horenmar It certainly features a "unique" design! ๐Ÿ˜Š

> vcpkg has a unique way of handling package versions

https://learn.microsoft.com/en-us/vcpkg/get_started/overview#why-vcpkg

#WhyVcpkgWhy #ShamelessTechShaming #LegacyCodeProblems

vcpkg overview

Learn about how the vcpkg C/C++ package manager can help you acquire and manage dependencies.