Skip to content

Phase 5: Documentation (DOC-01) + Phase 4 closeout#36

Merged
guy-lud merged 23 commits into
masterfrom
gsd/phase-4-closeout
Jul 20, 2026
Merged

Phase 5: Documentation (DOC-01) + Phase 4 closeout#36
guy-lud merged 23 commits into
masterfrom
gsd/phase-4-closeout

Conversation

@guy-lud

@guy-lud guy-lud commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Lands Phase 5 (Documentation / DOC-01) together with the held Phase-4 closeout docs (the closeout was held to ride on Phase 5's first package-affecting PR).

Phase 5 changes packaged content — the README ships in every .nupkg via PackageReadmeFile, and Directory.Build.props <Description>/<PackageTags> ship as package metadata — so this is a legitimate release-worthy merge, not a doc-only push.

Phase 5 — Documentation (DOC-01)

  • README rewritten to a modern, self-contained, accurate form: canonical ExistForAll.SimpleSettings naming, absolute-URL logo, dotnet add package install (all 3 packages), a correct [SettingsProperty(DefaultValue = …)] quickstart + DI snippet, a ToC pointing at the renamed guide and docs/Security.md, and concise Security + v1→v2 migration sections. The stale/incorrect [DefaultValue] example and the dead existall/SimpleConfig links are gone.
  • docs/ canonicalizedExtend Simple Config.mdExtending SimpleSettings.md (git rename, history preserved); inbound links repointed; residual legacy naming removed.
  • New docs/Security.md — the deep Phase 1–4 security/behavior reference: the value-free secret-redaction invariant with both carve-outs (author ValidationError text + validator constructors are outside the guard); opt-in/deferred ValidateSimpleSettings() on IServiceProvider; the validate⇒discoverable coupling; AddCommandLine spaced-value binding; and the Phase-3 breaking-change list.
  • Package metadata<Description> typo and the legacy <PackageTags> token corrected.
  • AOT-01 deferred to a future v2.1 milestone — its [RequiresDynamicCode]/[RequiresUnreferencedCode] annotations are additive/non-breaking, so they need not batch pre-beta.

Phase 4 closeout (previously-held docs)

  • VERIFICATION.md (6/6 success criteria met), SECURITY.md (15/15 threats closed; D-06 secret-redaction gate signed off), and the ROADMAP/STATE updates marking Phase 4 complete.

Verification

  • gsd-verifier: 4/4 must-haves — independently re-ran all 13 DOC-VERIFICATION gates and traced every documented API token to current source.
  • dotnet build + dotnet pack (Release): exit 0; the refreshed README repacks cleanly into all three packages.
  • Full suite: 153/153 on net10 (regression check — no runtime code changed).

Notes

  • No runtime/behavior change — documentation + package metadata only.
  • Merging publishes one pre-stable 2.0.0-alpha.0.* (expected in the pre-beta window).

guy-lud added 23 commits July 19, 2026 15:31
…lete

- VERIFICATION.md: 6/6 ROADMAP success criteria MET (non-vacuous tests, net8+net10 153/153).
- SECURITY.md: 15/15 threats closed, 0 open; D-06 secret-redaction gate signed off; T-04-VAL DI path holds by construction in merged code.
- ROADMAP.md + STATE.md: Phase 4 marked complete; advance to Phase 5 (AOT-01/DOC-01).
- git mv "Extend Simple Config.md" -> "Extending SimpleSettings.md" (history preserved)
- establishes canonical link target for inbound repoints and README
- repoint 5 in-docs links to Extending%20SimpleSettings.md (2x SectionBinder, 2x building_the_collection, 1x Build Config Interface)
- remove "(previously SimpleConfig)" parenthetical in getting_started.md
- docs/ now free of legacy product name and dead legacy-repo links
- Fix 'appliaction' -> 'application' in packaged <Description>
- Replace legacy 'SimpleConfig' PackageTags token with 'SimpleSettings'
- Document secret-redaction value-free invariant with both carve-outs (author ValidationError text + DI validator constructors)
- Add secret-safe validator example (echoes no bound value)
- Document opt-in/deferred ValidateSimpleSettings() on IServiceProvider after BuildServiceProvider()
- State validate => discoverable coupling via [SettingsSection(ValidatorType)]
- Document AddCommandLine spaced-value binding with prefix-lookahead caveat
- List four Phase-3 breaking changes: SettingsHolder internal (API-01), Core.AspNet dropped (PKG-01), per-TFM Microsoft.Extensions floor (PKG-02), public SimpleSettingsException base (EXC-01)
- Name versions, not the legacy product token
…stall, ToC, quickstart, DI

- Replace broken existall/Shepherd logo with canonical absolute raw icon URL
- Drop legacy product tag from title; three dotnet add package install lines
- Repoint all ToC entries to existall/SimpleSettings docs + add Security & Behavior entry
- Replace stale [DefaultValue] example with verified [SettingsProperty(DefaultValue = ...)] quickstart
- Trim IOptions polemic to a tight blurb; add feature overview + DI snippet with ValidateSimpleSettings
- Security notes: state the value-free exception invariant with both carve-outs (author ValidationError text + DI validator constructors); link to docs/Security.md
- Breaking changes / migration: list API-01/PKG-01/PKG-02/EXC-01 by concept; deep-link docs/Security.md#migration
- Phase-final gate: 13 DOC-VERIFICATION grep gates + dotnet build/pack -c Release from src/ all green
@guy-lud
guy-lud merged commit 4a8f82e into master Jul 20, 2026
2 checks 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