|
13 | 13 | > - **NuGet** → keyless OIDC via the `publish-csharp.yml` workflow: `gh workflow run |
14 | 14 | > publish-csharp.yml` (or push a `csharp-v<version>` tag). |
15 | 15 | > |
16 | | -> Run network commands via the sandbox-disabled shell. Versions are **not unified** (TS/C#/Python |
17 | | -> on the `0.x` line, Java/Kotlin on the `7.x` line). The rest of this doc is the per-registry |
18 | | -> procedure. |
| 16 | +> Run network commands via the sandbox-disabled shell. **Single shared patch number (standing |
| 17 | +> policy since 0.20.13):** every release cuts ALL FOUR registries at the same `minor.patch` — |
| 18 | +> npm / PyPI / NuGet on `0.<m>.<p>`, Maven on `7.<m>.<p>` (only the major differs, for historical |
| 19 | +> continuity). A registry with no changed product file publishes a **version-parity bump** |
| 20 | +> (identical content at the new version) rather than sitting the release out. The rest of this doc |
| 21 | +> is the per-registry procedure. |
19 | 22 |
|
20 | 23 | ## Releasing the TypeScript packages to npm |
21 | 24 |
|
@@ -97,7 +100,7 @@ bytes**, not "did output change." |
97 | 100 | | New **opt-in** codegen feature, default output byte-identical | new generator defaulting off | PATCH (MINOR if it adds registry vocabulary — cross-port conformance surface) | MINOR | |
98 | 101 | | Wire-contract / conformance behavior change of already-valid deployments | FR-036 enforcement | **MINOR**, loud notice (pre-1.0 MINOR *is* the breaking slot) | MAJOR | |
99 | 102 | | Wire behavior fixed to match the documented/conformance contract | 0.19.1 `@min` clamp | PATCH | PATCH | |
100 | | -| Docs / tests / fixtures only (no product file in a port) | 0.19.4 npm scope | **No release for that registry** (per-registry scoping) | same | |
| 103 | +| No changed product file in a port | PyPI/NuGet/Maven at 0.20.14 | **Version-parity bump at the shared patch number** — publish identical content at the new version; never skip a registry (single-shared-patch policy, standing since 0.20.13) | same | |
101 | 104 |
|
102 | 105 | **The `extStyle` 0.20.0 case, for calibration:** it was correctly MINOR — but for the |
103 | 106 | *API break* (`relativeModuleSpecifier` gained a required param — a public export) **and** |
@@ -210,7 +213,7 @@ How to publish the `MetaObjects*` C# packages to nuget.org. We use **Trusted Pub |
210 | 213 |
|
211 | 214 | ## What gets published |
212 | 215 |
|
213 | | -Four packages, version-locked at the C# port version (currently `0.19.7`): |
| 216 | +Four packages, version-locked at the C# port version (currently `0.20.13`): |
214 | 217 |
|
215 | 218 | | Package | Contents | |
216 | 219 | |---|---| |
@@ -298,7 +301,7 @@ How to publish the **`metaobjects`** Python package to PyPI via **Trusted Publis |
298 | 301 | ## What gets published |
299 | 302 |
|
300 | 303 | One package, `metaobjects` (version in [`server/python/pyproject.toml`](../server/python/pyproject.toml), |
301 | | -currently `0.19.9`), as an **sdist + a universal `py3-none-any` wheel** (pure Python). |
| 304 | +currently `0.20.13`), as an **sdist + a universal `py3-none-any` wheel** (pure Python). |
302 | 305 |
|
303 | 306 | ## How we publish: Trusted Publishing (OIDC) |
304 | 307 |
|
@@ -354,7 +357,7 @@ subsequent releases keyless.) |
354 | 357 | # Releasing the Java/Kotlin modules to Maven Central |
355 | 358 |
|
356 | 359 | The 18 `com.metaobjects:*` modules ship to **Maven Central via the Sonatype Central Portal**, |
357 | | -versioned on the `7.x` line (currently `7.11.7`) in the parent + module poms. Signed with the |
| 360 | +versioned on the `7.x` line (currently `7.20.13`) in the parent + module poms. Signed with the |
358 | 361 | maintainer's GPG key. |
359 | 362 |
|
360 | 363 | ## Procedure |
@@ -396,8 +399,10 @@ maintainer's GPG key. |
396 | 399 | > If all are `200`, the release is out — the error was just the response parse. Bump the plugin to |
397 | 400 | > ≥`0.7.0` to stop the crash on the next release. |
398 | 401 |
|
399 | | -**Versions are not unified across languages** — TS, C#, and Python are on the `0.9.x` line, the |
400 | | -Java/Kotlin module line is on the `7.2.x` track. Don't force one number. The cross-language contract |
| 402 | +**The `minor.patch` IS unified across languages** (standing policy since 0.20.13): npm, PyPI and |
| 403 | +NuGet share `0.<m>.<p>`, and Maven Central ships the same `minor.patch` on its historical major `7`. |
| 404 | +Every release bumps all four registries, with version-parity bumps where a port has no changed |
| 405 | +file. The cross-language *behavior* contract |
401 | 406 | is the **conformance corpus + [`fixtures/conformance/CAPABILITIES.json`](../fixtures/conformance/CAPABILITIES.json)**: |
402 | 407 | each release states which capabilities/conformance level it satisfies, and *that* manifest — not a |
403 | 408 | shared version — is the coordination point. (Generated code runs without any MetaObjects runtime, so |
|
0 commit comments