diff --git a/.gitignore b/.gitignore index 33a66c199a..d0b0dcb81a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /.idea /cmake-build-* +/.vs +/CMakeSettings.json diff --git a/src/vcpkg/dependencies.cpp b/src/vcpkg/dependencies.cpp index 62ce3dfb46..4fd89d1e08 100644 --- a/src/vcpkg/dependencies.cpp +++ b/src/vcpkg/dependencies.cpp @@ -5,6 +5,7 @@ #include #include +#include #include #include #include diff --git a/src/vcpkg/install.cpp b/src/vcpkg/install.cpp index f37e8f9b89..a01cd4404a 100644 --- a/src/vcpkg/install.cpp +++ b/src/vcpkg/install.cpp @@ -874,10 +874,18 @@ namespace vcpkg::Install } } + if (std::any_of(dependencies.begin(), dependencies.end(), [](const Dependency& dep) { + return dep.constraint.type != Versions::Constraint::Type::None; + })) + { + Metrics::g_metrics.lock()->track_property("manifest_version_constraint", "defined"); + } + if (!manifest_scf.core_paragraph->overrides.empty()) { Metrics::g_metrics.lock()->track_property("manifest_overrides", "defined"); } + if (auto p_baseline = manifest_scf.core_paragraph->builtin_baseline.get()) { Metrics::g_metrics.lock()->track_property("manifest_baseline", "defined"); @@ -885,6 +893,7 @@ namespace vcpkg::Install return (ch >= 'a' || ch <= 'f') || Parse::ParserBase::is_ascii_digit(ch); })) { + Metrics::g_metrics.lock()->track_property("versioning-error-baseline", "defined"); Checks::exit_maybe_upgrade(VCPKG_LINE_INFO, "Error: the top-level builtin-baseline (%s) was not a valid commit sha: " "expected 40 lowercase hexadecimal characters.\n%s\n", @@ -894,6 +903,7 @@ namespace vcpkg::Install paths.get_configuration().registry_set.experimental_set_builtin_registry_baseline(*p_baseline); } + auto verprovider = PortFileProvider::make_versioned_portfile_provider(paths); auto baseprovider = PortFileProvider::make_baseline_provider(paths); diff --git a/src/vcpkg/portfileprovider.cpp b/src/vcpkg/portfileprovider.cpp index 47aa2976c7..fe30ffff64 100644 --- a/src/vcpkg/portfileprovider.cpp +++ b/src/vcpkg/portfileprovider.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -193,6 +194,7 @@ namespace vcpkg::PortFileProvider } else { + Metrics::g_metrics.lock()->track_property("versioning-error-version", "defined"); return maybe_path.error(); } } diff --git a/src/vcpkg/sourceparagraph.cpp b/src/vcpkg/sourceparagraph.cpp index 6b673cfa03..ed279c7785 100644 --- a/src/vcpkg/sourceparagraph.cpp +++ b/src/vcpkg/sourceparagraph.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -1033,6 +1034,7 @@ namespace vcpkg { if (dep.constraint.type != Versions::Constraint::Type::None) { + Metrics::g_metrics.lock()->track_property("error-versioning-disabled", "defined"); return Strings::concat( fs::u8string(origin), " was rejected because it uses constraints and the `", @@ -1053,6 +1055,7 @@ namespace vcpkg if (core_paragraph->overrides.size() != 0) { + Metrics::g_metrics.lock()->track_property("error-versioning-disabled", "defined"); return Strings::concat(fs::u8string(origin), " was rejected because it uses overrides and the `", VcpkgCmdArguments::VERSIONS_FEATURE, @@ -1062,6 +1065,7 @@ namespace vcpkg if (core_paragraph->builtin_baseline.has_value()) { + Metrics::g_metrics.lock()->track_property("error-versioning-disabled", "defined"); return Strings::concat( fs::u8string(origin), " was rejected because it uses builtin-baseline and the `", @@ -1080,6 +1084,7 @@ namespace vcpkg return dependency.constraint.type != Versions::Constraint::Type::None; })) { + Metrics::g_metrics.lock()->track_property("error-versioning-no-baseline", "defined"); return Strings::concat( fs::u8string(origin), " was rejected because it uses \"version>=\" without setting a \"builtin-baseline\".\n", @@ -1088,6 +1093,7 @@ namespace vcpkg if (!core_paragraph->overrides.empty()) { + Metrics::g_metrics.lock()->track_property("error-versioning-no-baseline", "defined"); return Strings::concat( fs::u8string(origin), " was rejected because it uses \"overrides\" without setting a \"builtin-baseline\".\n",