v0.1.0-alpha.1
Pre-release
Pre-release
Second alpha of the native C++ Testcontainers port. Highlights since v0.1.0-alpha.0:
Docker client
- Engine API version pinning — docker-CLI-style negotiation (
min(1.44, daemon's Api-Version)from one unversionedGET /_ping); every typed client call now hits/v1.NN/...paths, so a Docker 29+ daemon that drops old API versions keeps working. The rawrequest()escape hatch stays unversioned by design. - Streaming log wait —
wait_for::log(...)rides ONE deadline-boundedfollow_logsconnection (history + live) instead of snapshot polling every 200 ms; occurrence counting is incremental and chunk-boundary-safe. New publicfollow_logsoverload with a hard deadline (FollowEnd::{ConsumerStopped,StreamEnded,DeadlineExpired}). - Host port exposure —
with_exposed_host_portmakes services listening on the test host reachable from containers through ansshdsidecar + libssh2 remote-forward tunnel. - Exec now always hijacks with
Upgrade: tcp(CLI parity); named-pipe transport treats a peer CloseWrite as EOF.
Packaging (new)
conan create .produces a consumer-grade package:test_package/proves find_package + link + run; the recipe runs the unit suite unlesstools.build:skip_test.cmake --installships a workingtestcontainersConfig.cmake(find_package(testcontainers)→testcontainers::testcontainers) for non-Conan consumers.- The version lives in ONE place (
TC_VERSION_FULLin CMakeLists.txt);sharedis refused on Windows (no export macros yet).
Quality gates
- CI grew clang-format / clang-tidy (pinned) / ASan+UBSan / CodeQL gates, warnings-as-errors on project targets, and a
conan createjob on Linux, Windows and macOS — apple-clang compiles and runs the unit suite on every push now. - The Windows-engine integration mirror covers the docs/07 matrix; hang dumps are captured automatically.
Full log: v0.1.0-alpha.0...v0.1.0-alpha.1