Phase 5: Documentation (DOC-01) + Phase 4 closeout#36
Merged
Conversation
…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).
…a, deep security page, README rewrite)
…pen-questions resolved
- 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
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.
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
.nupkgviaPackageReadmeFile, andDirectory.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)
ExistForAll.SimpleSettingsnaming, absolute-URL logo,dotnet add packageinstall (all 3 packages), a correct[SettingsProperty(DefaultValue = …)]quickstart + DI snippet, a ToC pointing at the renamed guide anddocs/Security.md, and concise Security + v1→v2 migration sections. The stale/incorrect[DefaultValue]example and the deadexistall/SimpleConfiglinks are gone.docs/canonicalized —Extend Simple Config.md→Extending SimpleSettings.md(git rename, history preserved); inbound links repointed; residual legacy naming removed.docs/Security.md— the deep Phase 1–4 security/behavior reference: the value-free secret-redaction invariant with both carve-outs (authorValidationErrortext + validator constructors are outside the guard); opt-in/deferredValidateSimpleSettings()onIServiceProvider; the validate⇒discoverable coupling;AddCommandLinespaced-value binding; and the Phase-3 breaking-change list.<Description>typo and the legacy<PackageTags>token corrected.[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
dotnet build+dotnet pack(Release): exit 0; the refreshed README repacks cleanly into all three packages.Notes
2.0.0-alpha.0.*(expected in the pre-beta window).