chore: fix Windows build, cpp-httplib 0.47 + dep bumps, spec gap fixes, move k8s example - #797
Merged
Merged
Conversation
cpp-httplib >= 0.28 defaults to CPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO and links libanl on Linux, which does not exist on musl and broke the static cross builds (the reason we were pinned to 0.27.0 since #784). The recipe now exposes use_non_blocking_getaddrinfo; set it to False so no anl is linked. httplib only backs the REST server and in-process test servers, so blocking getaddrinfo is fine. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ound-trip Adds the two CI-deterministic cases from the ICMPv6 design spec that were never written: a literal "::1" target must be accepted without an ip_version hint and produce one probe, and a DNS target with ip_version: 6 must reach start() and echo the value via info_json. Both run through the tcp test type because a ping stream opens raw sockets and cannot start unprivileged in CI; the parse/route path under test is shared by ping and tcp. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…entralized_collection - README: the -H usage text still said live-capture host_spec "will append to any automatic detection"; #790 made it replace auto-detection. Sync both usage blocks with the CLI help text. - netprobe README: content_failures now covers every v3 response assertion (body, JSON, size, header, version), not just expected_body(_regex). - Move k8s/ to centralized_collection/k8s/ next to the other collection examples, fix its apply/dashboard paths, and link it from centralized_collection/README.md and the top-level README (it was unreferenced before). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Newest ConanCenter versions of each. Not bumped on purpose: - openssl 4.0.x: every consumer recipe (libcurl incl. 8.22.0, libnghttp2, sentry-crashpad, cpp-httplib) still pins openssl/[<4]; moving needs a force override against the recipes' declared support. - protobuf 7.35.0: excluded by opentelemetry-cpp 1.26.0's protobuf/[<7]. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
AI Code Review — risk tier: Advisory only. A human owns the merge decision. Summary — Doc reorg, a k8s example rename, dependency version bumps in conanfile.py, and additive unit tests; no security-sensitive surface touched. No issues found — net positive. 🤖 AI Code Review · run · prompts: |
LCOV of commit
|
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ndows The Windows job has failed since the opentelemetry-cpp/1.26.0 ConanCenter recipe revision a671ccb (2026-08-18): it now forces OTELCPP_PROTO_LIB_TYPE to STATIC_LIBRARY and disables upstream's shared/static selection, so opentelemetry_proto.lib is a static library on Windows. Our CMake still defined the (non-propagated) export macro as __declspec(dllimport) there, a workaround from #784 for the old revision that built the proto library as a DLL, so every opentelemetry::proto symbol resolved to an __imp_ import that no library provides (1500+ LNK2019/LNK2001 across all targets). The first failure on develop is the #796 merge only because it was the first build after that recipe revision; last green build (07-22) used revision 9d81768. Define the macro as empty everywhere, matching what upstream's project_build_tools_set_static_library_declaration does for MSVC. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Visual Studio is a multi-config generator, so the cmake-conan provider defaults to installing (and, on a cache miss, building) every dependency for both Release and Debug. The Windows jobs only ever build --config Release, so the Debug pass is wasted: on a cold cache it doubled the Configure step to over an hour. Pin the provider to the configured build type. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
leoparente
marked this pull request as ready for review
September 22, 2026 19:26
samiura
approved these changes
Sep 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Housekeeping after the netprobe/ICMPv6/host_spec work: fix the Windows build, unblock the cpp-httplib upgrade that has been pinned since #784, refresh the other deps that have newer releases, close the small gaps left by the merged design specs, and move the Kubernetes sidecar example next to the other collection examples.
Dependencies (
conanfile.py)use_non_blocking_getaddrinfo; set toFalseso nolibanlis linked (that was what broke the static musl cross builds on >= 0.28).Deliberately not bumped:
openssl/[<4]. It only resolves withforce=Trueagainst the recipes' declared support. As a data point, libcurl 8.21.0 and opentelemetry-cpp 1.26.0 do compile against 4.0.2 on macOS, but Linux/musl (sentry-crashpad, nghttp2) is unverified. Revisit when libcurl widens its range.protobuf/[<7].Spec gap fixes
::1target auto-detected and routed to a probe, and a DNS target withip_version: 6round-tripping throughstart()andinfo_json. They run through thetcptest type since a ping stream opens raw sockets and cannot start unprivileged in CI; the parse/route path under test is shared.-Husage text (bothpktvisordandpktvisor-readerblocks) still said live-capturehost_spec"will append to any automatic detection". Synced with the CLI help: it now replaces auto-detection.content_failuresin the handler README described only the v2expected_body(_regex)checks; it now lists every v3 assertion (body, JSON, size, header, version).Windows build fix
build-win64has been red on develop since the #796 merge, but the cause is not that PR: it was simply the first build after ConanCenter published opentelemetry-cpp/1.26.0 recipe revisiona671ccb(2026-08-18). That revision forcesOTELCPP_PROTO_LIB_TYPE=STATIC_LIBRARYand disables upstream's shared/static selection, soopentelemetry_proto.libis now static on Windows. Our rootCMakeLists.txtstill defined the non-propagatedOPENTELEMETRY_PROTO_APImacro as__declspec(dllimport)on Windows (a #784 workaround for the old revision that built the proto library as a DLL), so everyopentelemetry::protosymbol became an unresolved__imp_import (1500+ LNK2019/LNK2001). The macro is now defined empty on every platform, matching what upstream'sproject_build_tools_set_static_library_declarationdoes for MSVC. Last green Windows build (07-22) used revision9d81768.Windows CI time
The Windows Conan cache was evicted while the job was red (actions/cache only saves on success), so every run since 08-26 rebuilt all 34 dependencies from source. On top of that, Visual Studio is a multi-config generator and the cmake-conan provider defaults to installing both Release and Debug, so each cold configure built everything twice (over an hour). The Windows configure steps in build-develop.yml and build-release.yml now pass
-DCONAN_INSTALL_BUILD_CONFIGURATIONS=$BUILD_TYPE; the jobs only ever build--config Release.k8s example
k8s/→centralized_collection/k8s/(git rename). Apply command and dashboard relative path updated; linked fromcentralized_collection/README.mdand the top-level README (it was unreferenced before).Testing
Full Release build on macOS (arm64) with the bumped deps;
ctest— 25/25 pass (all unit suites incl.unit-tests-visor-http-client,unit-tests-visor-http-check,unit-tests-input-netprobewith the two new[ipv6]cases, and the integration pcap tests). The static musl cross-build job on this PR is the real check for the cpp-httplib change.🤖 Generated with Claude Code