feat(release): prepare database_system for v1.0.0#566
Merged
Conversation
Align implementation with documented no-throw guarantee: - Defer coordinator initialization to connect() via lazy init pattern - Change builder::build() return type to Result<unique_ptr<>> - Add ensure_initialized() private method for deferred init Closes #564
Update all test and sample code to handle Result<unique_ptr<unified_database_system>> return type from builder::build() instead of raw unique_ptr.
- Bump version in CMakeLists.txt, database/CMakeLists.txt, vcpkg.json - Update CHANGELOG with v1.0.0 release notes and comparison links - Add v1.0.0 migration notes to README - Fix pre-existing broken markdown anchors in docs
15 tasks
kcenon
added a commit
that referenced
this pull request
Apr 16, 2026
* docs: apply mechanical doc-review fixes (#565) * docs: fix 30 broken links, 11 factual errors, 5 ssot redundancies Applies fixes from DOC_REVIEW_REPORT.md (2026-04-14 audit, 80 files). Phase 1 (broken links & anchors): - Repaired README paths to split FEATURES_ORM_QUERY.md (query-builders, orm-framework anchors) and current ARCHITECTURE/API_REFERENCE locations. - Fixed language-switcher links pointing at non-existent .kr.md files (ADAPTER_PATTERNS, ASYNC_OPERATIONS, INTEGRATION, UNIFIED_SYSTEM). - Repaired relative paths in docs/advanced/* and docs/guides/* that produced docs/advanced/docs/... style dead links. - Marked missing targets (proxy-mode.md, IMPROVEMENT_PLAN.md, backend_registry.md, POSTGRESQL_TUNING.md, SQLITE_TUNING.md, advanced/SECURITY.md, PROXY_LAYER.md, with-*-system.md) as TODO. Phase 2 (factual accuracy & Phase 4.3 pool-removal propagation): - Corrected backend list to PostgreSQL/SQLite/MongoDB/Redis (MySQL never existed) in CURRENT_STATE and ARCHITECTURE_ISSUES. - Aligned compiler baseline to GCC 13+/Clang 17+/MSVC 2022+/Apple Clang 14+ across README, CONTRIBUTING, GETTING_STARTED, samples. - Updated libpqxx 7.9.0 -> 7.9.2 and OpenSSL 3.3.0 -> 3.4.1 in SOUP to match vcpkg.json overrides; refreshed PROJECT_STRUCTURE versions. - Changed ORM description from C++17 SFINAE to C++20 concepts across ORM_GUIDE and FEATURES_ORM_QUERY. - Propagated Phase 4.3 pool removal to English docs: deprecation banners in FEATURES_POOLING_SECURITY and BACKENDS; ADR-002 marked Superseded. Phase 3 (SSOT & registry): - Regenerated docs/README.md registry: was 59 docs, now enumerates 66 docs under docs/ plus the 14 out-of-tree repo Markdown files (total 80), adding FEATURES_BACKENDS, FEATURES_ORM_QUERY, FEATURES_POOLING_SECURITY, API_QUICK_REFERENCE, ECOSYSTEM, GETTING_STARTED, and the registry itself. - Resolved 3 SSOT pairs by deferral: advanced/ARCHITECTURE and advanced/STRUCTURE defer to docs/ root; performance/BENCHMARKS defers to docs/BENCHMARKS. Added bidirectional See also xrefs. - Added xrefs ORM_GUIDE <-> TYPE_SYSTEM/API_QUICK_REFERENCE and FEATURES_BACKENDS -> ADAPTER_PATTERNS. Skipped by policy: Korean (.kr.md) sync, API/manifest version bumps, BENCHMARKS en/kr language-pair duplication, docs/README.kr.md path corrections (Korean file). * docs: add post-fix re-validation report * docs: fix pool-removal banner anchor regression * feat(release): prepare database_system for v1.0.0 (#566) * refactor(api): replace throw with Result<T> in unified_database_system Align implementation with documented no-throw guarantee: - Defer coordinator initialization to connect() via lazy init pattern - Change builder::build() return type to Result<unique_ptr<>> - Add ensure_initialized() private method for deferred init Closes #564 * refactor(tests): update callers for Result<T> builder API Update all test and sample code to handle Result<unique_ptr<unified_database_system>> return type from builder::build() instead of raw unique_ptr. * chore: bump version to v1.0.0 and update documentation - Bump version in CMakeLists.txt, database/CMakeLists.txt, vcpkg.json - Update CHANGELOG with v1.0.0 release notes and comparison links - Add v1.0.0 migration notes to README - Fix pre-existing broken markdown anchors in docs * fix(api): correct compile errors in builder Result return type - Fix error_info field name: source -> context - Update create_database() convenience function return type to match builder::build() Result<unique_ptr<>> signature * fix(api): use make_error_result helper for correct error_info construction The common_system error_info struct does not have a 'context' member accessible via .context. Use the existing make_error_result helper which constructs error_info correctly with positional arguments. * fix(samples): move db variable to outer scope in migration sample The db variable was declared inside an if block, making it inaccessible to subsequent code that uses db->execute(), db->get_metrics(), and db->check_health().
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.
Closes #564
Summary
throwwithResult<T>inunified_database_systemto align with documented no-throw guaranteebuilder::build()return type toResult<std::unique_ptr<unified_database_system>>What
Change Type
Affected Components
database/integrated/unified_database_system.h— builder API signature changedatabase/integrated/unified_database_system.cpp— lazy init, Result returntests/integrated/test_unified_database_system.cpp— updated for new APIsamples/integrated/*.cpp— updated for new APIWhy
Problem Solved
The
unified_database_systemclass documented a "No-throw guarantee" but the constructorand
builder::build()method threwstd::runtime_erroron failure. This violated thedocumented API contract. For v1.0, all synchronous public APIs must use
Result<T>forerror propagation.
Related Issues
How
Implementation Details
implconstructor no longer callscoordinator_->initialize().Initialization is deferred to
ensure_initialized(), called fromconnect().builder::build()returnsResult<unique_ptr<>>instead ofthrowing on connection failure.
Breaking Changes
builder::build()return type changed fromstd::unique_ptr<unified_database_system>to
Result<std::unique_ptr<unified_database_system>>database_system(from prior unreleased change)Test Plan