Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tool cache] Add option to require exact versions for abi relevant tools #234

Merged
merged 3 commits into from
Nov 15, 2021

Conversation

autoantwort
Copy link
Contributor

If a developer in a team has a different version of a abi relevant tool, the developer has
to rebuild every package because the developer only gets cache misses in the binary cache.
Add an option to force vcpkg to use the same version of a abi relevant tool so that you don't
get binary cache misses because of different abi relevant tools.

If a developer in a team has a different version of a abi relevant tool, the developer has
to rebuild every package because the developer only gets cache misses in the binary cache.
Add an option to force vcpkg to use the same version of a abi relevant tool so that you don't
get binary cache misses because of different abi relevant tools.
@ras0219-msft ras0219-msft self-requested a review October 26, 2021 16:01
@BillyONeal
Copy link
Member

I think this is a better alternative to the "always download" other PR.

@Neumann-A
Copy link
Contributor

I think this is a better alternative to the "always download" other PR.

The question is rather if the default should be opt in or opt out by default. (probably something you can figure out by telemetry in the future?)
Furthermore I would like to have some generell option to remove/deactivate single abi hashes.

@ras0219-msft
Copy link
Contributor

Furthermore I would like to have some generell option to remove/deactivate single abi hashes.

What do you mean by this?

@ras0219-msft ras0219-msft merged commit 12545aa into microsoft:main Nov 15, 2021
@ras0219-msft
Copy link
Contributor

ras0219-msft commented Nov 15, 2021

This PR seems like the best option until we're able to come up with a Grand Unified Control over external tool versions.

Thanks!

@Be-ing
Copy link

Be-ing commented Nov 15, 2021

While this does now make it practical to use binary caching relying on a server to run builds, I still think it is not a great experience for users. Currently, users need to figure out why binary caching is missing then find out about two different options to disable behavior that is preventing cache hits, both compiler tracking and this new option. I propose to merge this new option and the compiler tracking option into one. I also propose making the default no compiler tracking and exact matches for CMake & PowerShell so users don't need to struggle with figuring out why binary caching isn't working.

@Be-ing
Copy link

Be-ing commented Nov 15, 2021

Furthermore I would like to have some generell option to remove/deactivate single abi hashes.

I also do not understand this suggestion because the ABI info includes different hashes for different packages depending on what the package's dependencies are.

@Osyotr
Copy link

Osyotr commented Nov 15, 2021

Cool! Any documentation on how to use this correctly?

@Neumann-A
Copy link
Contributor

Furthermore I would like to have some generell option to remove/deactivate single abi hashes.

from zlib:

0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch 750b9542cb55e6328cca01d3ca997f1373b9530afa95e04213168676936e7bfa
0002-android-build-mingw.patch 86c1191e94c4e12759608517fafb3257c2e1bd27fc8d32042526cee64b4b2c56
LICENSE f3fe5dce7d085439fff8b62001aabea5fc396b49c9c7a44fd1b3a939fb3a7199
add_debug_postfix_on_mingw.patch 7afeb9e6755857bc3256a072d6b091ab9330d926460127cf67b733acb2c228bb
cmake 3.21.1
cmake_dont_build_more_than_needed.patch a51534a0a26593b305b209c87ccfc5ba38d3d35370deeda10dcfc407f12ca3af
features core
portfile.cmake 4db222da5664260c6f5c2bcba47d5aeff80c9302866ef473e4a13f58a5eda9e7
ports.cmake 584665d83013f4e6f1387e7c49c7ccf2ca4b231cdca047cd6512a26bc40b988a
post_build_checks 2
powershell 7.1.4
triplet x64-windows-static
triplet_abi e3cd9820386c639b8cbf844d43853cbc838f75a1488bfd4add98d5646c716538-b569c9954a47274946415ff01b1a344c8549f3fc19cb931d50bc09d1e5630c1d-5775f901dbdc20f79ce5e42fbf04ee96af64b9db
usage be22662327df993eebc437495add75acb365ab18d37c7e5de735d4ea4f5d3083
vcpkg-cmake-wrapper.cmake 5d49ef2ee6448479c2aad0e5f732e2676eaba0411860f9bebabe6002d66f57d1
vcpkg.json 25970230e11fadb2837304de8453b747545a0e43ca96b3d450621881a29a2390
vcpkg_configure_cmake 431fc1a744f00f7a8f36de8d4758d283210d7fc36b8f62009a0f1a160b2ee7f6
vcpkg_copy_pdbs 59e4c0d2321697848a899ba9537394cdee81725b11965c6d1341df53a6850380
vcpkg_download_distfile 25e01398692dcbd2276e16a12100fa59bbaa85146326e9f067c136dd8cc83379
vcpkg_extract_source_archive b759ad81b9a5a7a0ee29a05d8259e57ceb4614bcf8ed6fb0a20ff9817a943232
vcpkg_extract_source_archive_ex cc3977b16c07bbdb418b1218583a1ca72ef82139e1e50f5c2907e34608145720
vcpkg_fixup_pkgconfig ff54f8b06c83b54a1af5e35286a6c36ea9e69376bed1d11b5521c254987c123f
vcpkg_install_cmake a04ca69ec49d413d16091484556ec2c9429a4e1e002cbfd2fc20bb24644aa88c
vcpkg_replace_string 8b6e11739e0572c70057e7c655f6304f83d13843a8ce89ad8e1847444be01fea

I want switches to disable all entries one by one and also I want to be able to add my own stuff to the abi. In general this is always a list/vector of <something> <somehash>. I want to have full control of the list and <something>

@Neumann-A
Copy link
Contributor

@Osyotr Just pass --x-abi-tools-use-exact-versions to the vcpkg command?

@Be-ing
Copy link

Be-ing commented Nov 16, 2021

Will there be a new release soon so this can be used?

@ras0219-msft
Copy link
Contributor

Yes, we plan to cut a release soon (though there is the US holiday Thanksgiving next week which may delay things)

@BillyONeal
Copy link
Member

Will there be a new release soon so this can be used?

microsoft/vcpkg#21471

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants