You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: changelog entries for symlink-following and the Java mojo's behavior change
Documents the symlink-following fix (Java/Python) and, per the un-flagged
gap the review caught, the Java/Maven behavior change: a <loader> naming
neither <sourceDir> nor <sources>, with nothing else to resolve, now fails
the build (ERR_COLLECTION_NOT_FOUND) instead of silently loading an empty
model and passing — deliberate and tested, but previously undisclosed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
but which error is each port's own — verified empirically: TypeScript raises
48
48
a raw `ZodError` with no code at all, Python raises
49
49
`ERR_COLLECTION_NOT_FOUND`, C# and Java both raise `ERR_BAD_ATTR_VALUE`.
50
+
-**Directory expansion follows symlinked directories in all four ports** —
51
+
including when a declared `sources` path is itself a symlink, or a symlink
52
+
sits partway through a walked tree. TypeScript and C# already did; Java and
53
+
Python now match (a symlinked `sources` path previously resolved to zero
54
+
files in Java, silently, exit 0). A symlink cycle is a loud error rather
55
+
than a hang. Gated by two new `symlinks`-bearing corpus cases.
56
+
-**Behavior change (Java/Maven only): a `<loader>` naming neither
57
+
`<sourceDir>` nor `<sources>`, with no `.metaobjects/config.json``sources`
58
+
and no default `metaobjects/` directory, now FAILS the build**
59
+
(`ERR_COLLECTION_NOT_FOUND`) instead of silently producing an empty model
60
+
and passing. This is the one behavior change here that can break an
61
+
existing `mvn metaobjects:generate`/`:verify` — most likely to bite a
62
+
multi-module reactor where a parent pom configures `<loader>` and one child
63
+
module never adds its own `<sourceDir>`. To restore the old outcome, declare
64
+
`<sourceDir>`/`<sources>` explicitly in that module's pom, or give it a real
65
+
metadata source (a `metaobjects/` directory or a `.metaobjects/config.json`
66
+
`sources` entry).
50
67
51
68
### Changed — a committed migration chain must replay from empty, and `meta migrate` stops writing chains that cannot ([#313](https://github.com/metaobjectsdev/metaobjects/issues/313))
0 commit comments