Skip to content

v1.19 DX 2.0: preset composition, validator, onboarding generator, cookbook - #21

Merged
maxches99 merged 2 commits into
mainfrom
v1.19
Mar 4, 2026
Merged

v1.19 DX 2.0: preset composition, validator, onboarding generator, cookbook#21
maxches99 merged 2 commits into
mainfrom
v1.19

Conversation

@maxches99

Copy link
Copy Markdown
Owner

Summary

  • What changed:
    • Added DX 2.0 preset APIs with composition model (base + overlays) in NetworkClientPresetDX.swift.
    • Added production onboarding generator (NetworkClientProductionProfileGenerator) and config validator with anti-pattern checks.
    • Added new runnable cookbook example target: NovaNetworkClientProductionProfileExample.
    • Updated Examples/README.md to reference cookbook format with test-backed scenario mapping.
    • Updated onboarding docs (README.md, docs/SETUP_GUIDE.md) and DocC index.
    • Added v1.19 DFR, traceability pack, and What's New notes.
  • Why:
    • Reduce time-to-first-production-setup and catch unsafe configuration patterns early.

DFR

  • DFR link:
    • docs/dfr/DX_2_0_V1_19_DFR.md
  • Requirement IDs implemented (e.g. FR-1, UR-3, EC-2):
    • FR-1, FR-2, FR-3, FR-4, UR-1, UR-2, AR-1, NFR-1, NFR-2, EC-1, EC-2

Traceability

Requirement ID Code/tests reference
FR-1 Sources/NovaNetworkClient/Networking/Client/NetworkClientPresetDX.swift (NetworkClientPresetComposer, NetworkClientPreset.compose)
FR-2 Sources/NovaNetworkClient/Networking/Client/NetworkClientPresetDX.swift (NetworkClientPresetValidator)
FR-3 Sources/NovaNetworkClient/Networking/Client/NetworkClientPresetDX.swift (NetworkClientProductionProfileGenerator)
FR-4 Examples/README.md, Examples/ProductionProfile/ProductionProfileExample.swift, Package.swift
AR-1 presetV2ValidatorFlagsOfflineQueueWithoutStoreAsBlocking, cookbookScenarioProductionProfileForOfflineFirstRequiresStore
Test matrix link/path docs/TRACEABILITY_PACK_v1.19.md

Test Mapping

Test ID Type (unit/integration/ui) Covers requirement IDs Result
T-19.1 presetV2CompositionAppliesOverlayOrder unit FR-1 passing
T-19.2 presetV2ValidatorFlagsOfflineQueueWithoutStoreAsBlocking unit FR-2, AR-1 passing
T-19.3 productionProfileGeneratorBuildsValidatedRealtimeProfile unit FR-3, UR-1 passing
T-19.4 cookbookScenarioCoalescedRequestUsesSingleTransportCall unit FR-4, NFR-2 passing
T-19.5 cookbookScenarioProductionProfileForOfflineFirstRequiresStore unit AR-1, EC-1 passing
E2E-1 E2ECoverageTests e2e NFR-1 regression guard passing

Analytics Verification

  • New/updated analytics requirements are implemented (AR-*)
  • Event triggers validated
  • Payload schema/properties validated
  • Negative path verified (no false success events)
  • Evidence:
    • Blocking validator checks for unsafe offline setup (AP-OFFLINE-001, AP-OFFLINE-002) covered by unit tests.

QA Sign-off

  • QA owner: Platform
  • Sign-off date: 2026-03-05
  • Evidence links (logs/reports/screenshots): local swift test and RUN_E2E_TESTS=1 swift test --filter E2ECoverageTests

Coverage

  • Unit test coverage (%): line 93.31% / function 91.56% (llvm-cov from local run)
  • Coverage is above 90%
  • E2E suite executed with RUN_E2E_TESTS=1 swift test --filter E2ECoverageTests
  • E2E tests use real public APIs only (no mocks/stubs/fake transports)

Release Notes ("What's New")

  • Added or updated
  • File/path: docs/WHATS_NEW_v1.19.md
  • User-facing impact summary:
    • Introduces preset composition v2, production profile generator, validator anti-pattern checks, and cookbook references.

Rollout

  • Feature flag: Not required (additive API)
  • Initial rollout percentage: 100%
  • Target segments: All NovaNetworkClient integrators
  • Monitoring/alerts: Existing telemetry + onboarding validation in CI
  • Rollback plan: Revert v1.19 DX APIs and docs if regressions are detected

Checklist

  • Product compliance checked against DFR
  • Engineering quality reviewed (architecture/readability/testability/performance)
  • No undocumented behavior changes

@maxches99
maxches99 merged commit ca89559 into main Mar 4, 2026
1 check passed
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