chore: post-Phase-3 source cleanup + modernization (pre-Phase-4 prep)#32
Merged
Conversation
…t/security/perf review
- Flip public class SettingsHolder to internal sealed - Removes an internal DTO from the public API surface - Reachable from tests/benchmark via existing InternalsVisibleTo
- Drop Core.AspNet Project entry from SimpleSettings.slnx - Drop Core.AspNet ProjectReference from UnitTests.csproj - Delete src/Core/ExistForAll.SimpleSettings.Core.AspNet/ directory - Test-local Core/AspNet/Environments.cs duplicate untouched - Published 2.0.0-alpha.0.* alphas: unlist is owner-optional follow-up
- Split four Microsoft.Extensions.* pins into per-TFM conditional ItemGroups - net8 floors: Configuration 8.0.0, Configuration.Json 8.0.1, DI 8.0.1, DI.Abstractions 8.0.2 - net10 stays 10.0.9 for all four - Frees net8 consumers of the packable Binders + GenericHost packages from 10.x
…gument - space-separated --k v, quoted-with-spaces single token - prefixed-next-token = new key, prefixed-value non-binding - SkipFirstArgument true/false, empty-token no-crash - CLI-path secret-redaction regression (S2)
…02/D-04,D-05) - SkipFirstArgument (default false, explicit override; no silent arg[0] drop) - Parse rewritten to index/lookahead loop; space-separated --k v binds - empty-safe zero-alloc prefix detection (length-delta + Array.IndexOf, cached prefix array) - prefixed next-token treated as new key; ArgumentPrefixes XML-doc note
…p (SRC-02/Open Q #1) - replace Environment.CommandLine.Split(' ') with Environment.GetCommandLineArgs() - wrap caller action to enable SkipFirstArgument=true (exe skip owned by this entry point) - quoted-value-with-spaces criterion now holds end-to-end unconditionally
…e squash-merged Phase 3)
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.
What
Broad source cleanup / modernization pass (commit
86dfa6b) across ~90 files — Core (Conversion/,Core/Reflection/, exception types,ValuesPopulator), Binders, GenericHost, the full unit-test project, and the benchmark project. Cleanup-flavored: implicit usings (dropped redundantusingdirectives), nullable annotations, modern C# syntax (range/index), and ordinal string comparisons.This branch is named
phase-4-…but contains no Phase 4 feature work yet — it's a cleanup/prep checkpoint so Phase 4 can start from a cleanmaster.Verified (local, CI flavor)
dotnet build -c Release -p:ContinuousIntegrationBuild=true→ 0 warnings, 0 errorsdotnet test -c Release→ 208 passed, 0 failed (net8.0 + net10.0)Known deferred (not blocking; tracked for the follow-up cleanup review)
Finished-code review (dotnet code-reviewer / security-auditor / performance-analyst) flagged, in
CommandLineSettingsBinder:if (next is null) continue;guard (added earlier as post-review hardening) was dropped → reachableNullReferenceExceptionviaAddArguments(new[] { "--k", null })at config-time. Not a secret leak — the redaction invariant was verified intact.Pre-stable alpha; shipping as-is by owner decision, fix tracked for the follow-up.