plan(config): correct git layout — library committed to outer repo, no nested .git
The sibling libs (Auth/Theme/Health/Telemetry) are tracked as regular files in the outer scadaproj repo, not separate git repos. Remove the git-init/nested-repo instructions; all commits target the outer repo on feat/zb-mom-ww-configuration.
This commit is contained in:
@@ -8,8 +8,11 @@ startup-options-validation toolkit — a failure-accumulating `IValidateOptions<
|
||||
rule primitives, a bind+validate+`ValidateOnStart` DI helper, and a pre-host `ConfigPreflight`
|
||||
aggregator — removing the duplicated validation plumbing the three sister apps each hand-roll.
|
||||
|
||||
**Architecture:** A new standalone nested repo (`~/Desktop/scadaproj/ZB.MOM.WW.Configuration`),
|
||||
.NET 10, one library project `ZB.MOM.WW.Configuration` with four public types
|
||||
**Architecture:** A new self-contained solution directory committed into the outer `scadaproj`
|
||||
repo at `~/Desktop/scadaproj/ZB.MOM.WW.Configuration` (same layout as the sibling
|
||||
`ZB.MOM.WW.Telemetry`/`Health`/`Auth`/`Theme` — regular tracked files, **not** a submodule and
|
||||
**not** a separate `.git`; build output `bin/`/`obj/`/`artifacts/` is gitignored). .NET 10, one
|
||||
library project `ZB.MOM.WW.Configuration` with four public types
|
||||
(`OptionsValidatorBase<TOptions>`, `ValidationBuilder`, `ServiceCollectionExtensions`,
|
||||
`ConfigPreflight`) over one internal `Checks` helper that keeps rule wording identical across the
|
||||
two front-ends (options-object validation vs raw-`IConfiguration` preflight). Scope is **startup
|
||||
@@ -61,9 +64,10 @@ format is `"<field> <reason>"`.
|
||||
|
||||
**Conventions for every task:** TDD — failing test first, minimal impl, green, commit. File-scoped
|
||||
namespaces, `sealed` by default, XML doc comments on public members (match the sibling libs).
|
||||
Library work is committed inside the nested repo `~/Desktop/scadaproj/ZB.MOM.WW.Configuration`;
|
||||
docs/registry work is committed in the outer `scadaproj` repo. The `Files:` block IS the
|
||||
`files_to_edit` contract.
|
||||
**All work — library and docs — is committed to the outer `scadaproj` repo on branch
|
||||
`feat/zb-mom-ww-configuration`** (the library is tracked files inside it, like the sibling libs;
|
||||
there is no separate nested `.git`). `dotnet build`/`test` may `cd` into the library dir, but every
|
||||
`git commit` targets the outer repo. The `Files:` block IS the `files_to_edit` contract.
|
||||
|
||||
**Source references (read-only, to verify current-state against — do NOT modify):**
|
||||
- OtOpcUa: `~/Desktop/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Configuration/Validation/{DraftValidator,DraftSnapshot}.cs` (draft validation stays per-project)
|
||||
@@ -243,17 +247,17 @@ plan; README status table links resolve.
|
||||
</Solution>
|
||||
```
|
||||
|
||||
**Step 6: init repo + verify restore/build**
|
||||
**Step 6: verify restore/build** (NO `git init` — the library is tracked inside the outer repo)
|
||||
```bash
|
||||
cd ~/Desktop/scadaproj/ZB.MOM.WW.Configuration && git init -q
|
||||
cd ~/Desktop/scadaproj/ZB.MOM.WW.Configuration
|
||||
dotnet build ZB.MOM.WW.Configuration.slnx
|
||||
```
|
||||
Expected: build succeeds (0 source files yet → empty assembly is fine).
|
||||
|
||||
**Step 7: Commit** (nested repo)
|
||||
**Step 7: Commit** (outer repo, branch `feat/zb-mom-ww-configuration`)
|
||||
```bash
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration add -A
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration commit -m "chore: scaffold ZB.MOM.WW.Configuration solution"
|
||||
git -C ~/Desktop/scadaproj add ZB.MOM.WW.Configuration
|
||||
git -C ~/Desktop/scadaproj commit -m "chore: scaffold ZB.MOM.WW.Configuration solution"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -463,8 +467,8 @@ cd ~/Desktop/scadaproj/ZB.MOM.WW.Configuration && dotnet test
|
||||
|
||||
**Step 6: Commit** (nested repo)
|
||||
```bash
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration add -A
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration commit -m "feat: Checks primitives + ValidationBuilder"
|
||||
git -C ~/Desktop/scadaproj add ZB.MOM.WW.Configuration
|
||||
git -C ~/Desktop/scadaproj commit -m "feat: Checks primitives + ValidationBuilder"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -559,11 +563,11 @@ public abstract class OptionsValidatorBase<TOptions> : IValidateOptions<TOptions
|
||||
}
|
||||
```
|
||||
|
||||
**Step 4: Run — expect PASS**, then **Commit** (nested repo)
|
||||
**Step 4: Run — expect PASS**, then **Commit** (outer repo)
|
||||
```bash
|
||||
cd ~/Desktop/scadaproj/ZB.MOM.WW.Configuration && dotnet test
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration add -A
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration commit -m "feat: OptionsValidatorBase<TOptions>"
|
||||
git -C ~/Desktop/scadaproj add ZB.MOM.WW.Configuration
|
||||
git -C ~/Desktop/scadaproj commit -m "feat: OptionsValidatorBase<TOptions>"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -669,11 +673,11 @@ public static class ServiceCollectionExtensions
|
||||
}
|
||||
```
|
||||
|
||||
**Step 4: Run — expect PASS**, then **Commit** (nested repo)
|
||||
**Step 4: Run — expect PASS**, then **Commit** (outer repo)
|
||||
```bash
|
||||
cd ~/Desktop/scadaproj/ZB.MOM.WW.Configuration && dotnet test
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration add -A
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration commit -m "feat: AddValidatedOptions bind+validate+ValidateOnStart"
|
||||
git -C ~/Desktop/scadaproj add ZB.MOM.WW.Configuration
|
||||
git -C ~/Desktop/scadaproj commit -m "feat: AddValidatedOptions bind+validate+ValidateOnStart"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -825,11 +829,11 @@ public sealed class ConfigPreflight
|
||||
}
|
||||
```
|
||||
|
||||
**Step 4: Run — expect PASS**, then **Commit** (nested repo)
|
||||
**Step 4: Run — expect PASS**, then **Commit** (outer repo)
|
||||
```bash
|
||||
cd ~/Desktop/scadaproj/ZB.MOM.WW.Configuration && dotnet test
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration add -A
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration commit -m "feat: ConfigPreflight raw-config aggregator"
|
||||
git -C ~/Desktop/scadaproj add ZB.MOM.WW.Configuration
|
||||
git -C ~/Desktop/scadaproj commit -m "feat: ConfigPreflight raw-config aggregator"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -862,8 +866,8 @@ Expected: all tests green; exactly one `.nupkg` at `0.1.0`.
|
||||
|
||||
**Step 4: Commit** (nested repo)
|
||||
```bash
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration add -A
|
||||
git -C ~/Desktop/scadaproj/ZB.MOM.WW.Configuration commit -m "docs: README + CLAUDE.md; verify 0.1.0 pack"
|
||||
git -C ~/Desktop/scadaproj add ZB.MOM.WW.Configuration
|
||||
git -C ~/Desktop/scadaproj commit -m "docs: README + CLAUDE.md; verify 0.1.0 pack"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user