v0.10.0: ports and adapters refactor
pipeline / test (push) Has been cancelled
pipeline / build (push) Has been cancelled

- Extract shared manifest types into internal/manifest/types leaf package.
- Extract SQLite adapter into internal/manifest/sqlite.
- Extract JSONL adapter into internal/manifest/jsonl.
- Isolate modernc.org/sqlite import to sqlite/adapter.go.
- Add adapter-backed registry with manifest.Default.
- Adapter-agnostic ConvertManifest in types/.
- MemoryAdapter for in-memory manifest testing.
- CLI uses manifest.Default registry directly.
- SQLite LogWriter type assertion moved into SQLiteAdapter.
- Manifest interface includes Entries(); EntryReader removed.
- No behavior changes. 100% coverage across all 6 packages.
This commit is contained in:
Ein Anderssono
2026-06-15 08:27:38 +02:00
parent 9cd048d9f3
commit c9ac014473
28 changed files with 2061 additions and 927 deletions
+14 -7
View File
@@ -1,18 +1,25 @@
# v0.9.4
# v0.10.0
This release adds `doctor` diagnostics for Photos access and backups.
Ports and adapters refactor. No user-visible changes.
## Highlights
- Add `doctor` to check Photos access.
- Add `doctor --out <dir>` to report backup directory, manifest entries, and failure count.
- Add `doctor --json` for scriptable diagnostics.
- `doctor` is read-only and does not modify backup data.
- Extract manifest types, registry, and conversion logic into `internal/manifest/types`.
- Extract SQLite adapter into `internal/manifest/sqlite` with its own store, adapter, and log writer.
- Extract JSONL adapter into `internal/manifest/jsonl` with its own store and adapter.
- Isolate `modernc.org/sqlite` import to the SQLite adapter package only.
- Replace central `Open`/`ParseFormat`/`OpenLogWriter` with adapter-backed registry.
- Adapter-agnostic manifest conversion via `ConvertManifest`.
- SQLite log writer selection moved from central code into `SQLiteAdapter`.
- CLI uses `manifest.Default` registry; no direct references to concrete JSONL or SQLite types.
- `MemoryAdapter` available for in-memory manifest tests.
- 100% statement coverage across all 6 packages.
- No behavior changes.
## Assets
- `photoscli`: Apple Silicon macOS binary (`darwin/arm64`).
- `photoscli-0.9.4-macos-arm64.zip`: Apple Silicon binary plus README, USERGUIDE, and CHANGELOG.
- `photoscli-0.10.0-macos-arm64.zip`: Apple Silicon binary plus README, USERGUIDE, and CHANGELOG.
- `USERGUIDE.md`: standalone user guide.
Intel Macs are not currently a supported release target.