Skip to content

Commit 3948bb9

Browse files
dmealingclaude
andcommitted
chore(release): 0.21.4 coordinated (npm/PyPI/NuGet 0.21.4 · Maven 7.21.4)
Coordinated PATCH across all four registries per the standing single-shared- patch-number policy. Ten fixes; PyPI and NuGet carry no changed product file and publish as version-parity bumps. Headline: two hard blockers (the browser packages could not be bundled at all; every sqlite table-rebuild migration was un-appliable by the tool that emits it), Hono 500ing on Postgres, a --dry-run that wrote every file, three silent-wrong- rows defects in the Java query lowering, and the grid-discoverability half of #287. Six of the ten were invisible to a gate that existed for them. Each CHANGELOG entry names what would have caught it and the gate that can now see it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KTGT5ksntpcJDZVJ5VyXHS
1 parent 7a105a6 commit 3948bb9

35 files changed

Lines changed: 97 additions & 48 deletions

File tree

CHANGELOG.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
77

88
## [Unreleased]
99

10+
## [0.21.4] — npm `0.21.4` · PyPI `0.21.4` · NuGet `0.21.4` · Maven `7.21.4`
11+
12+
A coordinated PATCH across all four registries (the standing single-shared-patch-number
13+
policy). Ten fixes, most of them adopter-reported: two hard blockers that made the browser
14+
packages unbuildable and every sqlite table-rebuild un-appliable, the Hono-on-Postgres 500,
15+
a `--dry-run` that wrote every file, three silent-wrong-rows defects in the Java query
16+
lowering, and the grid-discoverability half of #287. PyPI and NuGet carry no changed
17+
product file and publish as **version-parity bumps**.
18+
19+
A recurring theme runs through the whole cut, and is worth stating once: **six of these
20+
were invisible to a gate that existed for them.** A bundle that only ever ran under a test
21+
runner that never bundles; sqlite SQL proven correct statement-by-statement but never once
22+
through the tool that applies it; a conformance fixture whose seed data is case-aligned "so
23+
the test passes whether a port wires `LIKE` or `ILIKE`"; a CI lane that ran the browser
24+
suites without ever building them. Each fix below therefore says what *would* have caught
25+
it, and the gate that can now see it.
26+
1027
### Fixed — [#287](https://github.com/metaobjectsdev/metaobjects/issues/287): the browser packages could not be bundled at all (npm)
1128

1229
`@metaobjectsdev/metadata`'s package root exports `MetaDataLoader`, which imports
@@ -227,6 +244,32 @@ pure rename into a single non-destructive statement instead of a drop/add pair.
227244
the diff to model index renames, which it does not today; the drop/add pair is correct and
228245
converges, but rebuilds the index. Left as a separate improvement.
229246

247+
### Fixed — three query-lowering defects in the Java runtime (Maven)
248+
249+
Found by a design review of a proposed OMDB repository bridge; each verified against code
250+
before fixing, and each **invisible to the persistence-conformance corpus**, which is why
251+
all three survived.
252+
253+
1. **`Expression` had no case-sensitive `LIKE`.** `CONTAIN` / `START_WITH` / `END_WITH` all
254+
render `UPPER(col) LIKE UPPER(?)`, while the cross-port REST contract's `like` is
255+
case-sensitive SQL `LIKE` with author-supplied wildcards — and an interior wildcard
256+
(`"a%b"`) was not expressible at all. Adds `Expression.LIKE`: verbatim pattern, no
257+
`%`-rewriting, no `UPPER` wrapping.
258+
2. **`in` was hand-composed as an OR-chain** on the stated but false belief that
259+
`Expression` has no native `IN` (the driver already renders a `Collection` value on
260+
`EQUAL` as a parameterized `IN` list). `ExpressionOperator` renders **without
261+
parentheses**, so `in` plus any second predicate produced `a=1 OR a=2 AND b=3`
262+
regrouped by SQL as `a=1 OR (a=2 AND b=3)`, **silently returning wrong rows**.
263+
3. **`Range` was documented and implemented as 0-indexed** while the drivers emit
264+
`OFFSET start-1` and skip `OFFSET` entirely when `start <= 1`, so `offset=1` returned
265+
rows from the beginning.
266+
267+
**Why the corpus cannot see any of them:** no query scenario uses a nonzero offset, none
268+
mixes `in` with a second filter, and the like/ne fixture deliberately case-aligns its seed
269+
data "so the test passes whether a port wires `LIKE` or `ILIKE`" — it cannot distinguish
270+
the two by construction. The pins therefore live in a unit test outside the corpus, each
271+
naming the blind spot it covers.
272+
230273
### Fixed — loading a `metaobjects.config.ts` could permanently corrupt error reporting for the rest of the process (npm)
231274

232275
`loadMetaobjectsConfig` leaked a mutation of the process-global `Error.prepareStackTrace`.

bun.lock

Lines changed: 21 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/web/packages/react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/react",
3-
"version": "0.21.3",
3+
"version": "0.21.4",
44
"description": "React runtime for metaobjects: useEntityForm hook and CurrencyInput component.",
55
"type": "module",
66
"main": "./dist/index.js",

client/web/packages/runtime-web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/runtime-web",
3-
"version": "0.21.3",
3+
"version": "0.21.4",
44
"description": "Pure framework-agnostic browser core for metaobjects: currency, filter URL serialization, fetcher contract types.",
55
"type": "module",
66
"main": "./dist/index.js",

client/web/packages/tanstack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/tanstack",
3-
"version": "0.21.3",
3+
"version": "0.21.4",
44
"description": "TanStack runtime for metaobjects: EntityFetcherProvider, EntityGrid, default cell renderers.",
55
"type": "module",
66
"main": "./dist/index.js",

server/csharp/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
-->
99

1010
<PropertyGroup>
11-
<Version>0.21.3</Version>
11+
<Version>0.21.4</Version>
1212
<Authors>Doug Mealing</Authors>
1313
<Company>Doug Mealing LLC</Company>
1414
<Product>MetaObjects</Product>

server/java/codegen-base/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.metaobjects</groupId>
88
<artifactId>metaobjects</artifactId>
9-
<version>7.21.3</version>
9+
<version>7.21.4</version>
1010
</parent>
1111

1212
<artifactId>metaobjects-codegen-base</artifactId>

server/java/codegen-kotlin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>com.metaobjects</groupId>
99
<artifactId>metaobjects</artifactId>
10-
<version>7.21.3</version>
10+
<version>7.21.4</version>
1111
</parent>
1212

1313
<artifactId>metaobjects-codegen-kotlin</artifactId>

server/java/codegen-mustache/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.metaobjects</groupId>
88
<artifactId>metaobjects</artifactId>
9-
<version>7.21.3</version>
9+
<version>7.21.4</version>
1010
</parent>
1111

1212
<artifactId>metaobjects-codegen-mustache</artifactId>

server/java/codegen-plantuml/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.metaobjects</groupId>
88
<artifactId>metaobjects</artifactId>
9-
<version>7.21.3</version>
9+
<version>7.21.4</version>
1010
</parent>
1111

1212
<artifactId>metaobjects-codegen-plantuml</artifactId>

0 commit comments

Comments
 (0)