Conversation
src/vcpkg/registries.cpp
Outdated
| " Instead, use the \"baseline\" field of the registry.\n"); | ||
| if (builtin_registry->m_baseline_identifier.empty()) | ||
| { | ||
| builtin_registry->m_baseline_identifier.assign(baseline.begin(), baseline.end()); |
There was a problem hiding this comment.
We should warn if m_baseline_identifier.empty() && !baseline.empty()
There was a problem hiding this comment.
I'm not sure about this; for example:
vcpkg.json:
{
...,
"builtin-baseline": "b1"vcpkg-configuration.json:
{
"registries": [
{
"kind": "builtin",
"baseline": "b2",
"packages": [ "a", "b", "c" ]
}
]
}
There was a problem hiding this comment.
Right; so in this case we should warn to the user about which of the two baselines they've specified will be used (I assume b2?). I could see an argument for not warning iff they are the same.
There was a problem hiding this comment.
I mean, they'll both be used: b2 will be used for packages a, b, and c, and b1 will be used for everything else.
There was a problem hiding this comment.
What is the syntax for changing the default registry's baseline? I suspect this means we should warn in the case that the user has specified "builtin-baseline" AND specifies "default-registry". If that is already the case in this PR, then this comment is resolved.
There was a problem hiding this comment.
The syntax for changing the default registry's baseline is:
{
"default-registry": {
"kind": "...",
...,
"baseline": "<baseline>"
}
}This is not warned against in this PR; what should the warning look like, do you think?
There was a problem hiding this comment.
"Warning: Specifying the "default-registry" overrides the "builtin-baseline" field. Pass to suppress this warning message."
There was a problem hiding this comment.
Do we only want builtin-baseline to do something to a registry that is both builtin, and default? Currently it does something to registries that are builtin, even if they're non-default.
There was a problem hiding this comment.
It should only affect the default builtin baseline in my opinion. I see the following scenarios:
- No
vcpkg-configuration.json(no warn) - adds other registries but doesn't change the default (no warn)
- doesn't change the default, but does re-add the builtin registry to get packages with a different baseline (no warn)
- re-defines the default to builtin, but at a different baseline (warn)
I think the most straightforward UX is all registries defined in the configuration file must have a baseline specified. Therefore, the only case that builtin-baseline could possibly apply would be in the undefined default case.
we don't want people to use `baseline` necessarily
0c41780 to
096e402
Compare
The following PRs are included: * hopefully fix crash in constraints (#60) * [vcpkg] allow --version to check the version (#50) * Remove baseline warning (#27) * [git] always pass autocrlf=false (#58) * ignore QtCreator CMake project files (#54) * ignore .DS_store files (#53) * [vcpkg] x-add-version now also checks if the manifest file is properly formatted (#43) * hopefully fix ci issue #16773 (#34) * Add docs to set VCPKG_ROOT to run tests (#45) * [vcpkg] x-add-version improve speed by calling get_builtin_baseline only once (#44) * add clang-format version to format-cxxcode (#41) * [vcpkg] Introduce experimental workaround X_VCPKG_NUGET_ID_PREFIX (#40) * [supports] Add `native` identifier expression and x-check-support command (#29) * [metrics] Split reporting of installs into name:triplet (#39) * [vcpkg] Improve error when accessing missing feature (#38) * [vcpkg] Allow shallow git registries (#37) * Disable git autocrlf when archiving tree (#36) * Use only named packages from extra registries (#35) * [registries] add metrics (#30) * Add vcpkg policy cmake helper port support (#17) * [osx] add support for rosetta (#23) * don't build tls12-download unless it's needed (#33) * Add new telemetry points for versioning (#21) * add cmake_minimum_required to vcpkg_tags (#25) * [x-add-versions] Perform atomic replacement of versioning files (#28) * [tools] support gsutil (#19) * add CUDA 11.1 and 11.2 to KEEP_ENV_VARS defaults (#26) * Add finite timeout on CURL metrics endpoint. (#22) * fix UB in make_error_code(utf8_errc) (#18)
# This is the 1st commit message: WIP # The commit message #2 will be skipped: # Fix build error # The commit message microsoft#3 will be skipped: # Implement bulk operation # The commit message microsoft#4 will be skipped: # Remove unused struct # The commit message microsoft#5 will be skipped: # Follow redirects # The commit message microsoft#6 will be skipped: # Get HTTP response code # The commit message microsoft#7 will be skipped: # Map URL response code to the correct index # The commit message microsoft#8 will be skipped: # Map URL response code to the correct index # The commit message microsoft#9 will be skipped: # Undo changes to workflows # The commit message microsoft#10 will be skipped: # Implement store to asset cache # The commit message microsoft#11 will be skipped: # handle file:// protocol # The commit message microsoft#12 will be skipped: # Implement try_download_file # The commit message microsoft#13 will be skipped: # Add missing calls to curl_easy_cleanup # The commit message microsoft#14 will be skipped: # Fix global init # The commit message microsoft#15 will be skipped: # Replace all calls in downloads.cpp and fix unit tests # The commit message microsoft#16 will be skipped: # use libcurl to submit metrics payload # The commit message microsoft#17 will be skipped: # Use Schannel on Windows # The commit message microsoft#18 will be skipped: # Apply suggestions from code review # # Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> # The commit message microsoft#19 will be skipped: # Fix unit test # The commit message microsoft#20 will be skipped: # Change curl error messages # The commit message microsoft#21 will be skipped: # generate message map # The commit message microsoft#22 will be skipped: # Always call multi_remove_handle # The commit message microsoft#23 will be skipped: # Fix end-to-end tests # The commit message microsoft#24 will be skipped: # Cleanup header lists # The commit message microsoft#25 will be skipped: # curl global init order # The commit message microsoft#26 will be skipped: # Use external libcurl on non-Windows # The commit message microsoft#27 will be skipped: # Install libcurl4 dev package on Linux # The commit message microsoft#28 will be skipped: # Disable metrics by default in debug builds # The commit message microsoft#29 will be skipped: # Set user agent using CURLOPT_USERAGENT # The commit message microsoft#30 will be skipped: # curl initialization again
we don't want people to use
baselinenecessarily;builtin-baselineis also completely valid.