Skip to content

testcontainers-cpp/0.1.0: new recipe#30600

Open
cppudge wants to merge 1 commit into
conan-io:masterfrom
cppudge:testcontainers-cpp-0.1.0
Open

testcontainers-cpp/0.1.0: new recipe#30600
cppudge wants to merge 1 commit into
conan-io:masterfrom
cppudge:testcontainers-cpp-0.1.0

Conversation

@cppudge

@cppudge cppudge commented Jul 9, 2026

Copy link
Copy Markdown

Summary

Changes to recipe: testcontainers-cpp/0.1.0

Motivation

New recipe — fixes #30599. testcontainers-cpp is a native C++ implementation of Testcontainers (throwaway Docker containers for integration tests), talking to the Docker Engine HTTP API directly. There is currently no Testcontainers implementation on ConanCenter. I am the library author and intend to maintain the recipe.

Details

  • New recipe under recipes/testcontainers-cpp: config.yml + all/ + a test_package that find_packages, links, and runs without a Docker daemon (prints the library and dependency versions only).
  • Sources are pinned to the v0.1.0 release tarball by sha256.
  • C++20 library: validate() enforces cppstd >= 20 and compiler floors (gcc 12, clang 15, msvc 193, apple-clang 15).
  • Options beyond shared/fPIC: tls (the https:// transport) and host_port_forwarding (an sshd-sidecar tunnel; needs libssh2). Disabling both removes OpenSSL from the dependency graph entirely. shared=True on Windows raises ConanInvalidConfiguration (the sources carry no symbol-export macros).
  • Dependencies (no options forced): boost — header-only usage, cpp_info.requires scopes consumers to boost::headers; nlohmann_json; libarchive; optional openssl/[>=3 <4] (within the documented openssl range exception — the floor is 3 because that is what upstream builds and tests against) and libssh2.
  • Package config/target names: find_package(testcontainers) / testcontainers::testcontainers; upstream-installed CMake config files are removed in package() in favour of CMakeDeps.
  • Tested locally with Conan 2 and default dependency options (fully compiled Boost): gcc 12 on Linux (static and shared), msvc 194 on Windows (static; shared correctly rejected as invalid), clang 15.

@CLAassistant

CLAassistant commented Jul 9, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141x8KrNdD9NfmCh1vSMbpg
@cppudge
cppudge force-pushed the testcontainers-cpp-0.1.0 branch from ddbcb88 to 13d587e Compare July 9, 2026 21:39
cppudge added a commit to cppudge/testcontainers-cpp that referenced this pull request Jul 12, 2026
The stale claims the audit pinned: seven wait strategies (was "six",
two places), test counts refreshed (~560 unit + ~210 integration),
mutual TLS is verified end to end in CI (the tls-e2e dind job - the
Remote row and the Known-gaps sentence said otherwise), and the
ConanCenter wording now points at the in-review PR
conan-io/conan-center-index#30600 instead of "planned right after
v0.1.0". Status gains the modules-layer bullet (on main; ships with
0.2.0), and Quick start gains a PostgreSQL module snippet - the 0.2.0
headline feature had no example. Version-specific bits (requires
0.1.0, the Status headline) deliberately stay until the release pass.

Opus review: SHIP; the one nit applied (gtest include in the snippet).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141x8KrNdD9NfmCh1vSMbpg
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.

[request] testcontainers-cpp/0.1.0

2 participants