Skip to content

refactor(api): remove vestigial legacy API artifacts for v1.0 freeze#520

Merged
kcenon merged 1 commit into
developfrom
feat/issue-516-api-freeze-audit-deprecation-cleanup
Apr 16, 2026
Merged

refactor(api): remove vestigial legacy API artifacts for v1.0 freeze#520
kcenon merged 1 commit into
developfrom
feat/issue-516-api-freeze-audit-deprecation-cleanup

Conversation

@kcenon

@kcenon kcenon commented Apr 16, 2026

Copy link
Copy Markdown
Owner

What

Summary

Audit public API surface and remove vestigial artifacts from the pre-v1.0 deprecation
cycle. All deprecated methods were already removed in prior PRs — this cleans up the
remaining dead code (no-op methods, unused CMake options, stale macros).

Change Type

  • Refactor (no functional changes)

Affected Components

  • include/kcenon/container/container.h — Remove vestigial no-op methods
  • src/modules/container.cppm — Mirror header changes
  • CMakeLists.txt — Remove unused CONTAINER_LEGACY_API option
  • include/kcenon/container/container/result_integration.h — Remove dead macro

Why

Problem Solved

v1.0 API freeze requires a clean public surface with no vestigial artifacts from the
deprecation cycle. These items were dead code:

  • is_variant_mode() always returned true — variant mode is the only mode
  • enable_variant_mode() was a no-op with (void)enable;
  • CONTAINER_LEGACY_API CMake option defined CONTAINER_NO_LEGACY_API but no source
    code checked for it
  • POLICY_CONTAINER_HAS_COMMON_RESULT macro was defined but never referenced

Related Issues

How

Implementation Details

  1. Removed is_variant_mode() and enable_variant_mode() from container.h and container.cppm
  2. Removed CONTAINER_LEGACY_API option and its compile-definition block from CMakeLists.txt
  3. Removed unused POLICY_CONTAINER_HAS_COMMON_RESULT backward-compatibility macro
  4. Fixed stale comment referencing "deprecated and new API methods"
  5. Fixed pre-existing broken markdown anchor in GRPC_INTEGRATION_PROPOSAL.md

Testing Done

  • Verified no callers of removed methods exist in entire codebase
  • Verified CONTAINER_NO_LEGACY_API is not checked in any source file
  • Verified POLICY_CONTAINER_HAS_COMMON_RESULT has zero usage outside its definition

Breaking Changes

  • is_variant_mode() and enable_variant_mode() removed — both were no-ops since
    variant mode became the only mode. Any callers can safely remove these calls.
  • CONTAINER_LEGACY_API CMake option removed — was already OFF by default and had
    no effect since legacy code was previously deleted.

Remove dead code from the pre-v1.0 deprecation cycle:
- Remove no-op methods is_variant_mode() and enable_variant_mode()
- Remove unused CONTAINER_LEGACY_API CMake option and compile definition
- Remove unused POLICY_CONTAINER_HAS_COMMON_RESULT compatibility macro
- Fix stale comment referencing deprecated methods
- Fix broken markdown anchor in GRPC_INTEGRATION_PROPOSAL.md

Closes #516
@kcenon kcenon merged commit fcebc27 into develop Apr 16, 2026
4 checks passed
@kcenon kcenon deleted the feat/issue-516-api-freeze-audit-deprecation-cleanup branch April 16, 2026 05:54
kcenon added a commit that referenced this pull request Apr 16, 2026
* docs: apply mechanical doc-review fixes (#513)

* docs: fix 19 broken links, 9 version mismatches, 8 xrefs, 4 SSOT deferrals

- Resolve directory-depth drift in 11 broken relative links across README,
  PRODUCTION_QUALITY, PROJECT_STRUCTURE, FAQ, VALUE_STORE_DESIGN,
  DOMAIN_SEPARATION_GUIDE, ADR-001-Type-System-Unification,
  integration/README, and BENCHMARKS.
- Wrap three missing targets (IMPROVEMENT_PLAN, SYSTEM_ANALYSIS_SUMMARY,
  VALUE_SYSTEM_COMPARISON_ANALYSIS) as TODO comments pending decision.
- Triangulate gRPC/protobuf versions to vcpkg.json as authoritative
  (gRPC 1.60.0, protobuf 4.25.1) across README, SOUP, and grpc/README.
- Align compiler floors to the project C++20 baseline (GCC 11+, Clang 14+,
  MSVC 2022+) in README.md and samples/README.md.
- Correct API_REFERENCE version from 0.3.0.0 to 0.1.0 and remove the
  fabricated since v2.0.0 phrasing from API_QUICK_REFERENCE.md.
- Expand the docs/README.md registry by 17 entries covering root-level
  documents and all subdirectory READMEs.
- Add SSOT deferral notes on root SCOPE.md, CONTRIBUTING.md, and
  CHANGELOG.md pointing to their canonical docs/** equivalents.
- Rename the Scope ADR title from ADR-001 to ADR-002 and add mutual
  disambiguation notes between the two ADR-001-prefixed files.
- Add bidirectional See also cross-references among ARCHITECTURE,
  ECOSYSTEM, PROJECT_STRUCTURE, ADR-003, TRACEABILITY,
  PRODUCTION_QUALITY, and contributing/CONTRIBUTING.
- Refresh stale Last Updated dates to 2026-04-14 across BENCHMARKS,
  PRODUCTION_QUALITY, PROJECT_STRUCTURE, ARCHITECTURE, FEATURES,
  and RESULT_API_MIGRATION_GUIDE.
- Set docs/performance/MEMORY_POOL_PERFORMANCE.md status to Draft.
- Replace HTML entity mdash with Unicode em-dash in registry titles.
- Note historical C++11/14/17 modernization scope in PRODUCTION_QUALITY.
- Add MessagePack to README.md serialization formats list.
- Correct Korean suffix reference from _KO.md to .kr.md.

Korean .kr.md files and CHANGELOG.kr.md version tags are left untouched
per task scope.

* docs: add post-fix re-validation report

* docs(i18n): apply Korean documentation parity with #513 (#515)

Bring the Korean .kr.md variants in line with the mechanical documentation
fixes landed in #513, which had explicitly deferred Korean siblings.

- README.kr.md: replace fabricated "v2.0.0 부터 권장 이름" claim with the
  same phrasing used in the English API_QUICK_REFERENCE.md
  (message_buffer is a preferred alias introduced in the v0.1 baseline).
- docs/PROJECT_STRUCTURE.kr.md: remove non-existent BUILD_GUIDE.md from
  the directory tree and point the See Also list to QUICK_START.md, matching
  the English sibling fix.
- docs/API_REFERENCE.kr.md: correct fabricated version 0.2.1 to
  0.1.0 (aligned with vcpkg.json and CMakeLists.txt), refresh Last Updated
  to 2026-04-14, and update the migration status to match the English file.
- CHANGELOG.md / docs/CHANGELOG.md: mirror the Unreleased/Fixed entry so
  downstream tooling and the SSOT registry remain in sync.

Closes #514
Part of #512

* refactor(api): remove vestigial legacy API artifacts for v1.0 freeze (#520)

Remove dead code from the pre-v1.0 deprecation cycle:
- Remove no-op methods is_variant_mode() and enable_variant_mode()
- Remove unused CONTAINER_LEGACY_API CMake option and compile definition
- Remove unused POLICY_CONTAINER_HAS_COMMON_RESULT compatibility macro
- Fix stale comment referencing deprecated methods
- Fix broken markdown anchor in GRPC_INTEGRATION_PROPOSAL.md

Closes #516

* feat(value_store): add Result<T>-based deserialization methods (#521)

Add no-throw alternatives to throwing deserialize methods:
- deserialize_result(): Result-based JSON deserialization (not yet implemented)
- deserialize_binary_result(): Result-based binary deserialization

Uses project error codes (corrupted_data, version_mismatch, value_parse_failed)
and follows the existing _result suffix pattern from value_container.

Closes #517

* chore: v1.0.0 release preparation — version bump, CHANGELOG, and API stability docs (#522)

* chore: bump version to 1.0.0 and finalize CHANGELOG

- Update CMakeLists.txt version from 0.1.0 to 1.0.0
- Move Unreleased entries to [1.0.0] - 2026-04-16 in CHANGELOG.md
- Add v1.0 prep entries (#516 API cleanup, #517 Result<T> migration)
- Update vcpkg.json and vcpkg-ports version to 1.0.0 (port-version reset to 0)
- Update API_REFERENCE version headers (en/kr)
- Update docs/CHANGELOG.md frontmatter date

Closes #518

* docs(readme): add v1.0 API stability guarantees section

Document public API surface, internal API boundaries, deprecation
policy, and semantic versioning commitment for v1.0 release.

Closes #519
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.

1 participant