From 18523aa7773d2eb8822d11811c5e6a2f7f35e4ad Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 20 Jul 2024 15:22:48 +0200 Subject: [PATCH 1/2] Rename the project to Testcontainers Native --- README.md | 8 ++++---- ROADMAP.md | 4 ++-- docs/SECURITY.md | 2 +- docs/SUPPORT.md | 4 ++-- docs/getting-started.md | 5 +++-- .../logo/logo_testcontainers_native_wide.png | Bin 0 -> 20125 bytes .../logo/opengraph_testcontainers_native.png | Bin 0 -> 37975 bytes docs/swift/README.md | 2 +- mkdocs.yml | 11 ++++++----- modules/README.md | 4 ++-- 10 files changed, 21 insertions(+), 19 deletions(-) create mode 100644 docs/images/logo/logo_testcontainers_native_wide.png create mode 100644 docs/images/logo/opengraph_testcontainers_native.png diff --git a/README.md b/README.md index d973b67..e513177 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Testcontainers for C/C++ and other native languages

- Testcontainers for C/C++ Logo + Testcontainers Native Logo

[![Slack: testcontainers-c on slack.testcontainers.org](https://img.shields.io/badge/Slack-%23testcontainers%E2%80%94c-brightgreen?style=flat&logo=slack)](http://slack.testcontainers.org/) @@ -24,14 +24,14 @@ Also join the `#testcontainers-c` channel on the [Testcontainers Slack](http://s ## Key Features +- _Testcontainers for C/C++_ - a shared library and C-style headers that can be used in native projects +- Support for [C](./docs/c/README.md), [C++](./docs/cpp/README.md), [Swift](./docs/swift/README.md) and other native projects. - Minimum viable Testcontainers API functionality: starting and terminating containers, passing files, exposing ports, accessing container logs, etc. - Minimum HTTP client wrapper to simplify requests and assertions - [Testcontainers for Go](https://golang.testcontainers.org/) under the hood, with all its reporting and resource management capabilities. Memory might leak a lot in the current versions, but we do not want containers to leak :) -- Support for [C](./docs/c/README.md), [C++](./docs/cpp/README.md), [Swift](./docs/swift/README.md) and other native projects. -- C-style header file for the library. A fancy C++ wrapper is coming soon - Support for [Testcontainers Modules](./modules/README.md) This is what a very simple run without a test framework may look like. @@ -66,7 +66,7 @@ See [the examples and demos](./demo/README.md) for more examples. ### Using in other languages TL;DR: You get the C header file, a shared library object or a DLL file from the -[Testcontainers C](./docs/c/README.md) module, +[Testcontainers for C](./docs/c/README.md) module, Then, you know the drill. Feel free to contribute examples or SDKs for the languages! diff --git a/ROADMAP.md b/ROADMAP.md index d2f6c4c..3dd8d05 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,4 +1,4 @@ -# Testcontainers for C/C++. Roadmap +# Testcontainers Native. Roadmap A full public roadmap is coming soon. See the [GitHub Issues](https://github.com/testcontainers/testcontainers-c/issues) and, @@ -11,7 +11,7 @@ the pinned issues to learn about the key initiatives on the table. - Add a C++ binding library and class-based headers ([#12](https://github.com/testcontainers/testcontainers-c/issues/12)) - Prototype and document support for other languages that leverage native libraries, in particular Swift -- Make Testcontainers for C/C++ an official project +- Make Testcontainers Native an official project listed on the [Testcontainers site](https://testcontainers.com/) - Publish the project to common C/C++ package managers ([vcpkg](https://github.com/testcontainers/testcontainers-c/issues/2), diff --git a/docs/SECURITY.md b/docs/SECURITY.md index 61c1829..001d098 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -8,6 +8,6 @@ Please do **NOT** use public GitHub Issues for reporting vulnerabilities. ## Bug Bounty -The Testcontainers for C/C++ project is not a part of the official Testcontainers bug bounty program and, +The Testcontainers Native project is not a part of the official Testcontainers bug bounty program and, as of now, of any other program. We will be happy to credit you in the public Security Advisory and on social media. diff --git a/docs/SUPPORT.md b/docs/SUPPORT.md index 1e781c1..7534f26 100644 --- a/docs/SUPPORT.md +++ b/docs/SUPPORT.md @@ -1,4 +1,4 @@ -# Support for Testcontainers for C/C++ +# Support for Testcontainers Native [![Slack: testcontainers-c on slack.testcontainers.org](https://img.shields.io/badge/Slack-%23testcontainers%E2%80%94c-brightgreen?style=flat&logo=slack)](http://slack.testcontainers.org/) @@ -29,7 +29,7 @@ Read More - [Security Policy](./SECURITY.md), The creator of this project, Oleg Nenashev, is [available for consulting projects](https://oleg-nenashev.github.io/oleg-nenashev/consulting/) in the areas of developer tools, -including Testcontainers for C/C++. +including Testcontainers Native and adapters for C/C++. Development of this project will continue regardless of commercial contracts, but of course your support can help the project to move forward. [GitHub Sponsorships](https://github.com/sponsors/oleg-nenashev) will be appreciated too. diff --git a/docs/getting-started.md b/docs/getting-started.md index 39a3c87..ded08ff 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1,12 +1,13 @@ # Getting Started with Testcontainers for C/C++ -In this section, we will build a demo C application that uses Testcontainers for C/C++ +In this section, we will build a demo C application that uses Testcontainers +in a simple C application for deploying a [WireMock](https://wiremock.org/) API server, sends a simple HTTP request to this service, and verifies the response. We will not be using any C/C++ test framework for that. -For a test framework framework example, see the [demos](../demo/README.md). +For test framework framework examples, see the [demos](../demo/README.md). ## Build the Project diff --git a/docs/images/logo/logo_testcontainers_native_wide.png b/docs/images/logo/logo_testcontainers_native_wide.png new file mode 100644 index 0000000000000000000000000000000000000000..919b6b7fa667b62331d972664f8e37a05a63e1c1 GIT binary patch literal 20125 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 COcXu< literal 0 HcmV?d00001 diff --git a/docs/swift/README.md b/docs/swift/README.md index d861336..800bf3d 100644 --- a/docs/swift/README.md +++ b/docs/swift/README.md @@ -1,6 +1,6 @@ # Using Testcontainers in Swift -The Testcontainers C/C++ library is compatible with native languages, and that includes Swift. To use the library in Swift, a few extra steps must be followed in order for it to be useable. +The Testcontainers for C/C++ library is compatible with native languages, and that includes Swift. To use the library in Swift, a few extra steps must be followed in order for it to be useable. ## Using the generic Testcontainer C API diff --git a/mkdocs.yml b/mkdocs.yml index 9a47128..0cc9d9a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,14 +1,15 @@ -site_name: Testcontainers for C/C++ +site_name: Testcontainers Native site_description: >- - Testcontainers for C/C++ is not a standalone Testcontainers engine, - but a C-style shared library adapter for C/C++, Swift, and other native projects. + Testcontainers for C/C++/Swift and other native projects. + It is not a standalone Testcontainers engine, + but a shared bridge library and language-specific adapters. The project is based on Testcontainers for Go which is one of the most powerful Testcontainers implementations. copyright: >- Copyright © 2024 - Oleg Nenashev and all contributors. -repo_url: https://github.com/testcontainers/testcontainers-c +repo_url: https://github.com/testcontainers/testcontainers-native repo_name: GitHub Repo edit_uri: edit/main/ -site_url: https://testcontainers.github.io/testcontainers-c +site_url: https://testcontainers.github.io/testcontainers-native # Build site_dir: _site diff --git a/modules/README.md b/modules/README.md index 7380d82..b9885c9 100644 --- a/modules/README.md +++ b/modules/README.md @@ -1,6 +1,6 @@ -# Testcontainers for C/C++. Modules +# Testcontainers Native. Modules -As for other Testcontainers implementations, Testcontainers for C/C++ allow writing +As for other Testcontainers implementations, Testcontainers Native allows writing extensions that extend the SDK and APIs to make usage of a particular service provider easier. The expectation is that the modules are implemented in a separate dynamic library From 5590b0d0243a6b5c41d9781f7f32eff896afe468 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Sat, 20 Jul 2024 15:25:39 +0200 Subject: [PATCH 2/2] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e513177..26f23c5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Testcontainers for C/C++ and other native languages +# Testcontainers for C/C++/Swift and other native languages

Testcontainers Native Logo