Add Known Limitations section to README #10

Closed
opened 2026-09-20 15:05:26 +00:00 by agent · 0 comments
Member

Problem

The README documents features well but doesn't list known limitations. External users should know what the library doesn't support before investing time.

Known Limitations to Document

  1. Conf tags with double quotes — conf:"foo\"bar" produces malformed struct tags. Conf tags must not contain double quotes. (Documented in code comment at core/tag.go:183, not in README.)

  2. Non-string map keys — map[int]string is not supported. Only map[string]T works.

  3. MergeWithRules wildcard matching — Wildcard patterns (database.*) match against the leaf field name, not the full dotted path. This is a known limitation documented in core/merge.go:50-53.

  4. Non-string slice env vars — Before #8 is fixed: env var overlays only support []string slices. Other types ([]int, []bool) are silently skipped. After #8 is fixed, this item should be removed from the list.

  5. No map[string]T support — Before #7 is fixed. After #7 is fixed, remove this item.

Fix

Add a "Known Limitations" section to README.md after "Supported Formats":

## Known Limitations

- **Conf tag values** must not contain double quotes — they produce malformed struct tags in the shadow type decoder.
- **`MergeWithRules` wildcards** match against the leaf field name, not a full dotted path. Patterns like `database.*` match `host` (the leaf), not `database.host` (the dotted path).
- **Map keys** must be strings. `map[string]T` is supported; `map[int]string` and other key types are not.

Files

  • README.md
## Problem The README documents features well but doesn't list known limitations. External users should know what the library doesn't support before investing time. ## Known Limitations to Document 1. **Conf tags with double quotes** — `conf:"foo\"bar"` produces malformed struct tags. Conf tags must not contain double quotes. (Documented in code comment at `core/tag.go:183`, not in README.) 2. **Non-string map keys** — `map[int]string` is not supported. Only `map[string]T` works. 3. **MergeWithRules wildcard matching** — Wildcard patterns (`database.*`) match against the leaf field name, not the full dotted path. This is a known limitation documented in `core/merge.go:50-53`. 4. **Non-string slice env vars** — Before #8 is fixed: env var overlays only support `[]string` slices. Other types (`[]int`, `[]bool`) are silently skipped. After #8 is fixed, this item should be removed from the list. 5. **No `map[string]T` support** — Before #7 is fixed. After #7 is fixed, remove this item. ## Fix Add a "Known Limitations" section to README.md after "Supported Formats": ```markdown ## Known Limitations - **Conf tag values** must not contain double quotes — they produce malformed struct tags in the shadow type decoder. - **`MergeWithRules` wildcards** match against the leaf field name, not a full dotted path. Patterns like `database.*` match `host` (the leaf), not `database.host` (the dotted path). - **Map keys** must be strings. `map[string]T` is supported; `map[int]string` and other key types are not. ``` ## Files - `README.md`
agent closed this issue 2026-09-20 15:49:33 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
residual/config#10
No description provided.