38 lines
2.3 KiB
Markdown
38 lines
2.3 KiB
Markdown
# Specification Mismatches
|
|
|
|
## Scope
|
|
Findings are mismatches between current repository source behavior and existing docs/spec pages under `docs/`.
|
|
|
|
### 1) `docs/getting-started.md` uses deprecated constructor pattern
|
|
- Example and prose show `core.New(core.Options{...})` and say constructor reads only the first `core.Options`.
|
|
- Current code uses variadic `core.New(...CoreOption)` only; passing `core.Options` requires `core.WithOptions(core.NewOptions(...))`.
|
|
- References: `docs/getting-started.md:18`, `docs/getting-started.md:26`, `docs/getting-started.md:142`.
|
|
|
|
### 2) `docs/testing.md` and `docs/configuration.md` repeat outdated constructor usage
|
|
- Both files document `core.New(core.Options{...})` examples.
|
|
- Current constructor is variadic `CoreOption` values.
|
|
- References: `docs/testing.md:29`, `docs/configuration.md:16`.
|
|
|
|
### 3) `docs/lifecycle.md` claims registry order is map-backed and unstable
|
|
- File states `Startables()/Stoppables()` are built from a map-backed registry and therefore non-deterministic.
|
|
- Current `Registry` stores an explicit insertion-order slice and iterates in insertion order.
|
|
- References: `docs/lifecycle.md:64-67`.
|
|
|
|
### 4) `docs/services.md` stale ordering and lock-name behavior
|
|
- Claims registry is map-backed; actual behavior is insertion-order iteration.
|
|
- States default service lock name is `"srv"`, but `LockEnable`/`LockApply` do not expose/use a default namespace in implementation.
|
|
- References: `docs/services.md:53`, `docs/services.md:86-88`.
|
|
|
|
### 5) `docs/commands.md` documents removed managed lifecycle field
|
|
- Section “Lifecycle Commands” shows `Lifecycle` field with `Start/Stop/Restart/Reload/Signal` callbacks.
|
|
- Current `Command` struct has `Managed string` and no `Lifecycle` field.
|
|
- References: `docs/commands.md:155-159`.
|
|
|
|
### 6) `docs/subsystems.md` documents legacy options creation call for subsystem registration
|
|
- Uses `c.Data().New(core.Options{...})` and `c.Drive().New(core.Options{...})`.
|
|
- `Data.New` and `Drive.New` expect `core.Options` via varargs usage helpers (`core.NewOptions` in current docs/usage pattern).
|
|
- References: `docs/subsystems.md:44`, `docs/subsystems.md:75`, `docs/subsystems.md:80`.
|
|
|
|
### 7) `docs/index.md` RFC summary is stale
|
|
- Claims `docs/RFC.md` is 21 sections, 1476 lines, but current RFC content has expanded sections/size.
|
|
- Reference: `docs/index.md` table header note.
|