Skip to content

Commit 55c0c60

Browse files
authored
docs(audit): document backend feature support and CMake/vcpkg defaults (#598)
Rework docs/BACKENDS.md into the authoritative backend and ecosystem-integration feature matrix. Each backend, integration, OpenSSL, and the legacy include shims now records its CMake option/default, vcpkg feature and default-features membership, support level, and a verification command. - Reconcile the CMake-vs-vcpkg default mismatch and document it as intentionally different: a direct CMake/FetchContent build defaults the ecosystem-integration options (USE_THREAD_SYSTEM/USE_MONITORING_SYSTEM/USE_CONTAINER_SYSTEM) ON with graceful auto-disable when a sibling system is absent, while the vcpkg default ships only the postgresql feature (ecosystem behind the opt-in ecosystem feature). - Surface MongoDB/Redis experimental status at every introduction point (vcpkg.json, cmake/options.cmake, README.md, README.kr.md, BACKENDS.md). - Document the legacy <database/...> include shim and database:: namespace-alias lifecycle with removal target 2.0.0, consistent with #591. - Note the verified PostgreSQL behavior: USE_POSTGRESQL defaults ON but auto-disables when libpqxx is absent; the default configure still succeeds and needs no running server. - Link the matrix from README.md, README.kr.md, and CURRENT_STATE.md; extend the README build-option tables with integration/OpenSSL/legacy options. Closes #590
1 parent 35fd6e5 commit 55c0c60

5 files changed

Lines changed: 242 additions & 32 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5151
legacy `<database/...>` include shims, so consumers migrate include path and
5252
namespace together ([#591](https://github.com/kcenon/database_system/issues/591)).
5353

54+
### Documentation
55+
56+
- Reworked `docs/BACKENDS.md` into the authoritative **backend and integration
57+
feature matrix**: each backend, ecosystem integration, OpenSSL, and the legacy
58+
include shims now lists its CMake option/default, vcpkg feature and
59+
default-features membership, support level, and a verification command. Added a
60+
dedicated section reconciling the **CMake-vs-vcpkg default mismatch** (the two
61+
default surfaces are intentionally different: direct CMake defaults ecosystem
62+
integration ON with graceful fallback, while the vcpkg default ships only the
63+
`postgresql` feature). Documented the legacy `<database/...>` shim and
64+
`database::` namespace-alias lifecycle (both removed in **2.0.0**). Linked the
65+
matrix from `README.md`, `README.kr.md`, and `docs/advanced/CURRENT_STATE.md`,
66+
extended the README build-option tables with the integration/OpenSSL/legacy
67+
options, and surfaced MongoDB/Redis experimental status at every introduction
68+
point ([#590](https://github.com/kcenon/database_system/issues/590)).
69+
5470
## [1.0.0] - 2026-04-16
5571

5672
### Changed

README.kr.md

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,11 @@ auto query = builder
182182
183183
| 백엔드 | CMake 옵션 | vcpkg 기능 | 상태 | 비고 |
184184
|---------|--------------|---------------|--------|-------|
185-
| **MongoDB** | `USE_MONGODB=ON` | `mongodb` | 🧪 실험적 | NoSQL 문서 저장소 |
186-
| **Redis** | `USE_REDIS=ON` | `redis` | 🧪 실험적 | 인메모리 데이터 저장소 |
185+
| **MongoDB** | `USE_MONGODB=ON` | `mongodb` | 🧪 실험적 | NoSQL 문서 저장소, 제한적 테스트 |
186+
| **Redis** | `USE_REDIS=ON` | `redis` | 🧪 실험적 | 인메모리 데이터 저장소, 제한적 테스트 |
187+
188+
> 권위 있는 지원 수준, CMake vs vcpkg 기본값, 실험적 백엔드 제한 사항 및
189+
> 안정화 로드맵은 [백엔드 및 통합 기능 매트릭스 →](docs/BACKENDS.md)를 참조하세요.
187190
188191
**실험적 백엔드를 활성화하려면:**
189192
@@ -633,13 +636,26 @@ target_link_libraries(your_target PRIVATE database_system::database)
633636

634637
| 옵션 | 기본값 | 설명 |
635638
|--------|---------|-------------|
636-
| `USE_POSTGRESQL` | ON | PostgreSQL 지원 활성화 |
637-
| `USE_SQLITE` | OFF | SQLite 지원 활성화 |
638-
| `USE_MONGODB` | OFF | MongoDB 지원 활성화 |
639-
| `USE_REDIS` | OFF | Redis 지원 활성화 |
639+
| `USE_POSTGRESQL` | ON | PostgreSQL 지원 활성화 (안정) |
640+
| `USE_SQLITE` | OFF | SQLite 지원 활성화 (안정) |
641+
| `USE_MONGODB` | OFF | MongoDB 지원 활성화 (🧪 실험적) |
642+
| `USE_REDIS` | OFF | Redis 지원 활성화 (🧪 실험적) |
643+
| `USE_OPENSSL` | ON | `secure_connection`용 OpenSSL TLS / 암호화 활성화 |
644+
| `USE_THREAD_SYSTEM` | ON | thread_system 통합 활성화 (미발견 시 자동 비활성화) |
645+
| `USE_MONITORING_SYSTEM` | ON | monitoring_system 통합 활성화 (미발견 시 자동 비활성화) |
646+
| `USE_CONTAINER_SYSTEM` | ON | container_system 통합 활성화 (미발견 시 자동 비활성화) |
647+
| `DATABASE_DISABLE_LEGACY_HEADERS` | OFF | `<database/...>` 포워딩 심 설치 건너뛰기 (2.0.0에서 제거 예정) |
640648
| `BUILD_DATABASE_SAMPLES` | ON | 샘플 프로그램 빌드 |
641649
| `USE_UNIT_TEST` | ON | 단위 테스트 빌드 |
642-
| `BUILD_WITH_COMMON_SYSTEM` | OFF | common_system 통합 활성화 (Result<T>, KCENON_HAS_COMMON_SYSTEM 설정) |
650+
| `BUILD_WITH_COMMON_SYSTEM` | 발견 시 ON | common_system 통합 (Result<T>, KCENON_HAS_COMMON_SYSTEM 설정); common_system은 필수 Tier 0 의존성 |
651+
652+
> **CMake vs vcpkg 기본값 (의도적으로 다름).** 직접 CMake / FetchContent 빌드는
653+
> 에코시스템 통합 옵션(`USE_THREAD_SYSTEM`, `USE_MONITORING_SYSTEM`,
654+
> `USE_CONTAINER_SYSTEM`)을 기본 **ON**으로 두고 형제 시스템이 없으면 우아하게
655+
> 비활성화됩니다. `vcpkg install``postgresql` 기본 기능만 제공하며 에코시스템
656+
> 통합은 `vcpkg install kcenon-database-system[ecosystem]`로 선택합니다. 전체
657+
> 조정 내역, 기능별 검증 명령, 레거시 심 수명 주기는
658+
> [백엔드 및 통합 기능 매트릭스 →](docs/BACKENDS.md)를 참조하세요.
643659
644660
[📦 전체 빌드 가이드 →](docs/guides/BUILD_GUIDE.md)
645661

README.md

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,12 @@ auto query = builder
182182
183183
| Backend | CMake Option | vcpkg Feature | Status | Notes |
184184
|---------|--------------|---------------|--------|-------|
185-
| **MongoDB** | `USE_MONGODB=ON` | `mongodb` | 🧪 Experimental | NoSQL document store |
186-
| **Redis** | `USE_REDIS=ON` | `redis` | 🧪 Experimental | In-memory data store |
185+
| **MongoDB** | `USE_MONGODB=ON` | `mongodb` | 🧪 Experimental | NoSQL document store, limited testing |
186+
| **Redis** | `USE_REDIS=ON` | `redis` | 🧪 Experimental | In-memory data store, limited testing |
187+
188+
> See the [Backend and Integration Feature Matrix →](docs/BACKENDS.md) for the
189+
> authoritative support levels, CMake-vs-vcpkg defaults, and experimental-backend
190+
> limitations and stabilization roadmap.
187191
188192
**To enable experimental backends:**
189193
@@ -633,13 +637,28 @@ target_link_libraries(your_target PRIVATE database_system::database)
633637

634638
| Option | Default | Description |
635639
|--------|---------|-------------|
636-
| `USE_POSTGRESQL` | ON | Enable PostgreSQL support |
637-
| `USE_SQLITE` | OFF | Enable SQLite support |
638-
| `USE_MONGODB` | OFF | Enable MongoDB support |
639-
| `USE_REDIS` | OFF | Enable Redis support |
640+
| `USE_POSTGRESQL` | ON | Enable PostgreSQL support (stable) |
641+
| `USE_SQLITE` | OFF | Enable SQLite support (stable) |
642+
| `USE_MONGODB` | OFF | Enable MongoDB support (🧪 experimental) |
643+
| `USE_REDIS` | OFF | Enable Redis support (🧪 experimental) |
644+
| `USE_OPENSSL` | ON | Enable OpenSSL-backed TLS / crypto for `secure_connection` |
645+
| `USE_THREAD_SYSTEM` | ON | Enable thread_system integration (auto-disables if not found) |
646+
| `USE_MONITORING_SYSTEM` | ON | Enable monitoring_system integration (auto-disables if not found) |
647+
| `USE_CONTAINER_SYSTEM` | ON | Enable container_system integration (auto-disables if not found) |
648+
| `DATABASE_DISABLE_LEGACY_HEADERS` | OFF | Skip installing `<database/...>` forwarding shims (removed in 2.0.0) |
640649
| `BUILD_DATABASE_SAMPLES` | ON | Build sample programs |
641650
| `USE_UNIT_TEST` | ON | Build unit tests |
642-
| `BUILD_WITH_COMMON_SYSTEM` | OFF | Enable common_system integration (Result<T>, sets KCENON_HAS_COMMON_SYSTEM) |
651+
| `BUILD_WITH_COMMON_SYSTEM` | ON when found | common_system integration (Result<T>, sets KCENON_HAS_COMMON_SYSTEM); common_system is a required Tier 0 dependency |
652+
653+
> **CMake vs vcpkg defaults (intentionally different).** A direct CMake /
654+
> FetchContent build defaults the ecosystem-integration options (`USE_THREAD_SYSTEM`,
655+
> `USE_MONITORING_SYSTEM`, `USE_CONTAINER_SYSTEM`) to **ON** and degrades
656+
> gracefully when a sibling system is absent. A `vcpkg install` ships only the
657+
> `postgresql` default feature; ecosystem integration is opt-in via
658+
> `vcpkg install kcenon-database-system[ecosystem]`. See the
659+
> [Backend and Integration Feature Matrix →](docs/BACKENDS.md) for the full
660+
> reconciliation, per-feature verification commands, and the legacy shim
661+
> lifecycle.
643662
644663
[📦 Complete Build Guide →](docs/guides/BUILD_GUIDE.md)
645664

0 commit comments

Comments
 (0)