From 7dcb3815338dc4360a4a242ed11d22060a7be086 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Mon, 26 Oct 2026 11:53:38 -0400 Subject: [PATCH 1/2] chore(release): select 2.0.0-alpha.2 candidate --- PUBLISHING.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/PUBLISHING.md b/PUBLISHING.md index 8c690a47..f9611faa 100644 --- a/PUBLISHING.md +++ b/PUBLISHING.md @@ -12,7 +12,12 @@ new compatible features/packages, and major when any stable public API breaks. For 1.7.0, the imported-pattern Unicode behavior change is a deliberately accepted exception to this major-version policy. -The next candidate is **2.0.0-alpha.1**. It introduces single-pass `.g.dart` +The next candidate is **2.0.0-alpha.2**, following the already-published alpha.1. +It corrects runtime nullability and discriminated validation, duration overflow, +custom JSON Schema vocabulary preservation, and generator metadata, naming, +and generic-type contracts. Published alpha.1 notes remain unchanged. + +The 2.0 release line introduces single-pass `.g.dart` code generation without a runtime `json_serializable` delegation step, the unified `@Validate.*` constraint annotation namespace, custom schema resolution via `@Schemable(schemas: [...])` and automatic same-library detection, @@ -49,7 +54,9 @@ References: [Melos versioning](https://melos.invertase.dev/commands/version), 1. Check pub.dev and tags before selecting the version; published versions and their changelog sections are immutable. -2. Start a release branch from current `origin/main` and resolve dependencies: +2. Start from the appropriate release line: current `origin/main` for a stable + release, or the existing `origin/release/.` branch for a + prerelease. Resolve dependencies: ```sh dart pub get @@ -58,7 +65,7 @@ References: [Melos versioning](https://melos.invertase.dev/commands/version), 3. Preview/prepare a coordinated version without creating commits or tags: ```sh - dart run melos version --manual-version=ack:2.0.0-alpha.1 --yes --no-git-commit-version + dart run melos version --manual-version=ack:2.0.0-alpha.2 --yes --no-git-commit-version ``` Use the named flag, not a positional package argument: the positional form @@ -85,7 +92,7 @@ References: [Melos versioning](https://melos.invertase.dev/commands/version), 7. Validate the complete release from that clean commit: ```sh - dart scripts/verify_release_tag.dart v2.0.0-alpha.1 --skip-ancestry + dart scripts/verify_release_tag.dart v2.0.0-alpha.2 --skip-ancestry dart run melos run ci dart scripts/api_check.dart 1.7.0 dart scripts/publish_dry_run.dart @@ -138,13 +145,16 @@ repository cannot configure pub.dev Admin settings on behalf of its owner. After the release commit's CI/preflight succeeds: ```sh -git fetch origin main --tags +git fetch origin main release/2.0 --tags # Use the exact reviewed release merge commit, not an arbitrary later main head. -git tag -a v2.0.0-alpha.1 -m 'Ack 2.0.0 alpha 1' -dart scripts/verify_release_tag.dart v2.0.0-alpha.1 -git push origin v2.0.0-alpha.1 +git tag -a v2.0.0-alpha.2 -m 'Ack 2.0.0 alpha 2' +dart scripts/verify_release_tag.dart v2.0.0-alpha.2 --main-ref=origin/release/2.0 +git push origin v2.0.0-alpha.2 ``` +These commands target the 2.0 prerelease branch. Stable release tags must be +reachable from `origin/main`; use the verifier's default main reference for them. + Pushing the tag triggers `.github/workflows/release.yml`; there is no Melos publish/release script. The workflow verifies the tag, reruns release preflight, and publishes in dependency order: @@ -172,4 +182,4 @@ After all five exact versions are visible, create the GitHub Release from the existing tag using the prepared release notes and mark it as a prerelease for alpha/beta versions. Before the first subsequent code change, begin a new unreleased changelog section instead of editing the -2.0.0-alpha.1 notes. +2.0.0-alpha.2 notes (and preserve every earlier published section). From 06cc6372e800258f5f85b574b72ce213aa0a3006 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Mon, 26 Oct 2026 12:02:02 -0400 Subject: [PATCH 2/2] chore(release): prepare 2.0.0-alpha.2 packages --- CHANGELOG.md | 23 +++++++++++++++++++ docs/getting-started/installation.mdx | 8 +++---- .../creating-schema-converter-packages.mdx | 4 ++-- docs/guides/schema-converter-quickstart.mdx | 4 ++-- example/pubspec.yaml | 4 ++-- packages/ack/CHANGELOG.md | 2 +- packages/ack/pubspec.yaml | 2 +- packages/ack_firebase_ai/CHANGELOG.md | 7 +++++- packages/ack_firebase_ai/README.md | 4 ++-- packages/ack_firebase_ai/pubspec.yaml | 4 ++-- packages/ack_generator/CHANGELOG.md | 7 +++++- packages/ack_generator/pubspec.yaml | 4 ++-- packages/ack_json_schema_builder/CHANGELOG.md | 8 +++++++ packages/ack_json_schema_builder/README.md | 6 ++--- packages/ack_json_schema_builder/pubspec.yaml | 4 ++-- packages/ack_mcp_dart/CHANGELOG.md | 7 +++++- packages/ack_mcp_dart/README.md | 6 ++--- packages/ack_mcp_dart/pubspec.yaml | 4 ++-- 18 files changed, 77 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77f25aa6..7fb4088c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,29 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## 2.0.0-alpha.2 + +### Fixed + +* Align wrapper and lazy nullability across parsing, encoding, and JSON Schema + export; validate discriminated codec outputs against their runtime branches. +* Reject duration inputs that cannot preserve their original milliseconds. +* Preserve custom JSON Schema vocabulary semantics, inert annotation payloads, + explicit format assertions, and fluent null policies through export. +* Preserve schema-first alias metadata and strict/passthrough precedence; + diagnose unsupported shape transformations instead of emitting wrong fields. +* Resolve same-build value-model and getter references, nullable nested Sets, + generated-name collisions, and application-generic nullability correctly. +* Substitute nested and recursive type bounds when resolving type-owned schemas. + +### Documentation and release preparation + +* Correct integration examples, converter templates, migration guidance, and + SDK floors; include new cross-platform contract regressions in CI. +* Coordinate all five packages at alpha.2 and require the corrected alpha.2 + core in dependent packages. Published alpha.1 release notes remain unchanged. + ## 2.0.0-alpha.1 ### Breaking & Substitutions diff --git a/docs/getting-started/installation.mdx b/docs/getting-started/installation.mdx index ada4a01e..68458d4a 100644 --- a/docs/getting-started/installation.mdx +++ b/docs/getting-started/installation.mdx @@ -17,11 +17,11 @@ flutter pub add ack ``` The unversioned commands select the latest stable release. To select the -2.0.0-alpha.1 prerelease, add it to your `pubspec.yaml`: +2.0.0-alpha.2 prerelease, add it to your `pubspec.yaml`: ```yaml dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 ``` ## Optional code generator @@ -38,10 +38,10 @@ Or add them to your `pubspec.yaml`: ```yaml dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 dev_dependencies: - ack_generator: ^2.0.0-alpha.1 + ack_generator: ^2.0.0-alpha.2 build_runner: ^2.4.0 ``` diff --git a/docs/guides/creating-schema-converter-packages.mdx b/docs/guides/creating-schema-converter-packages.mdx index 023b1f44..daef8cfe 100644 --- a/docs/guides/creating-schema-converter-packages.mdx +++ b/docs/guides/creating-schema-converter-packages.mdx @@ -147,7 +147,7 @@ environment: # flutter: '>=3.41.2' dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 # Add target SDK dependency if needed # : ^x.y.z meta: ^1.15.0 @@ -1028,7 +1028,7 @@ Converts Ack schemas to format for [use case]. Assumes familiarity with \`\`\`yaml dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 ack_: ^1.0.0 : ^x.y.z # Required peer dependency \`\`\` diff --git a/docs/guides/schema-converter-quickstart.mdx b/docs/guides/schema-converter-quickstart.mdx index 14f556c6..0da18488 100644 --- a/docs/guides/schema-converter-quickstart.mdx +++ b/docs/guides/schema-converter-quickstart.mdx @@ -41,7 +41,7 @@ environment: # flutter: '>=3.41.2' # Uncomment if needed dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 # : ^x.y.z # Add if needed meta: ^1.15.0 @@ -332,7 +332,7 @@ void main() { \`\`\`yaml dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 ack_: ^1.0.0 \`\`\` diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 0d0c188b..fb64d026 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -10,10 +10,10 @@ environment: dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 dev_dependencies: - ack_generator: ^2.0.0-alpha.1 + ack_generator: ^2.0.0-alpha.2 build_runner: ^2.4.0 dart_code_metrics_presets: ^2.22.0 lints: ^5.0.0 diff --git a/packages/ack/CHANGELOG.md b/packages/ack/CHANGELOG.md index 2702d15c..06cba4a3 100644 --- a/packages/ack/CHANGELOG.md +++ b/packages/ack/CHANGELOG.md @@ -1,4 +1,4 @@ -## Unreleased +## 2.0.0-alpha.2 ### Fixed diff --git a/packages/ack/pubspec.yaml b/packages/ack/pubspec.yaml index 86fc8be2..fb7681e5 100644 --- a/packages/ack/pubspec.yaml +++ b/packages/ack/pubspec.yaml @@ -1,6 +1,6 @@ name: ack description: Schema validation and bidirectional codecs for Dart and Flutter -version: 2.0.0-alpha.1 +version: 2.0.0-alpha.2 repository: https://github.com/btwld/ack issue_tracker: https://github.com/btwld/ack/issues homepage: https://concepta.dev/ack diff --git a/packages/ack_firebase_ai/CHANGELOG.md b/packages/ack_firebase_ai/CHANGELOG.md index 44babe91..fe32389f 100644 --- a/packages/ack_firebase_ai/CHANGELOG.md +++ b/packages/ack_firebase_ai/CHANGELOG.md @@ -1,4 +1,9 @@ -## Unreleased +## 2.0.0-alpha.2 + +### Changed + +* Require `ack: ^2.0.0-alpha.2` so consumers receive the corrected runtime + nullability, discriminated validation, and imported JSON Schema contracts. ### Documentation diff --git a/packages/ack_firebase_ai/README.md b/packages/ack_firebase_ai/README.md index aa186449..4bb3540a 100644 --- a/packages/ack_firebase_ai/README.md +++ b/packages/ack_firebase_ai/README.md @@ -23,8 +23,8 @@ Always validate model output with the same ACK schema after generation. Firebase ```yaml dependencies: - ack: ^2.0.0-alpha.1 - ack_firebase_ai: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 + ack_firebase_ai: ^2.0.0-alpha.2 firebase_ai: ^3.12.2 ``` diff --git a/packages/ack_firebase_ai/pubspec.yaml b/packages/ack_firebase_ai/pubspec.yaml index 91f21d18..ad30ab71 100644 --- a/packages/ack_firebase_ai/pubspec.yaml +++ b/packages/ack_firebase_ai/pubspec.yaml @@ -1,6 +1,6 @@ name: ack_firebase_ai description: Firebase AI (Gemini) schema converter for the Ack validation library -version: 2.0.0-alpha.1 +version: 2.0.0-alpha.2 repository: https://github.com/btwld/ack issue_tracker: https://github.com/btwld/ack/issues resolution: workspace @@ -17,7 +17,7 @@ environment: dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 flutter: sdk: flutter diff --git a/packages/ack_generator/CHANGELOG.md b/packages/ack_generator/CHANGELOG.md index 9c36dfab..c432d7be 100644 --- a/packages/ack_generator/CHANGELOG.md +++ b/packages/ack_generator/CHANGELOG.md @@ -1,4 +1,9 @@ -## Unreleased +## 2.0.0-alpha.2 + +### Changed + +* Require `ack: ^2.0.0-alpha.2` so consumers receive the corrected runtime + nullability, discriminated validation, and imported JSON Schema contracts. ### Fixed diff --git a/packages/ack_generator/pubspec.yaml b/packages/ack_generator/pubspec.yaml index 15661fc3..afe9e1cd 100644 --- a/packages/ack_generator/pubspec.yaml +++ b/packages/ack_generator/pubspec.yaml @@ -1,6 +1,6 @@ name: ack_generator description: Generates immutable models from Ack schemas and validated schemas from Dart classes -version: 2.0.0-alpha.1 +version: 2.0.0-alpha.2 repository: https://github.com/btwld/ack issue_tracker: https://github.com/btwld/ack/issues resolution: workspace @@ -24,7 +24,7 @@ dependencies: pub_semver: ^2.1.4 # Ack packages (versions are overridden locally by Melos) - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 dev_dependencies: build_runner: ^2.1.7 diff --git a/packages/ack_json_schema_builder/CHANGELOG.md b/packages/ack_json_schema_builder/CHANGELOG.md index f8106e02..e0f6b916 100644 --- a/packages/ack_json_schema_builder/CHANGELOG.md +++ b/packages/ack_json_schema_builder/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.0.0-alpha.2 + +### Changed + +* Require `ack: ^2.0.0-alpha.2` so consumers receive the corrected runtime + nullability, discriminated validation, and imported JSON Schema contracts. +* Align with the coordinated alpha.2 release; the bridge public API is unchanged. + ## 2.0.0-alpha.1 ### Breaking diff --git a/packages/ack_json_schema_builder/README.md b/packages/ack_json_schema_builder/README.md index 182926cf..522a8ce2 100644 --- a/packages/ack_json_schema_builder/README.md +++ b/packages/ack_json_schema_builder/README.md @@ -52,14 +52,14 @@ for the complete support matrix and reference/diagnostic behavior. ```yaml dependencies: - ack: ^2.0.0-alpha.1 - ack_json_schema_builder: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 + ack_json_schema_builder: ^2.0.0-alpha.2 json_schema_builder: ^0.1.3 ``` ### Compatibility -Requires `ack: ^2.0.0-alpha.1` and +Requires `ack: ^2.0.0-alpha.2` and `json_schema_builder: >=0.1.3 <1.0.0` as peer dependencies. Report [compatibility issues](https://github.com/btwld/ack/issues). diff --git a/packages/ack_json_schema_builder/pubspec.yaml b/packages/ack_json_schema_builder/pubspec.yaml index 44f9d886..8dd72428 100644 --- a/packages/ack_json_schema_builder/pubspec.yaml +++ b/packages/ack_json_schema_builder/pubspec.yaml @@ -1,6 +1,6 @@ name: ack_json_schema_builder description: JSON Schema Builder converter for the Ack validation library -version: 2.0.0-alpha.1 +version: 2.0.0-alpha.2 repository: https://github.com/btwld/ack issue_tracker: https://github.com/btwld/ack/issues resolution: workspace @@ -14,7 +14,7 @@ environment: dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 json_schema_builder: ^0.1.3 dev_dependencies: diff --git a/packages/ack_mcp_dart/CHANGELOG.md b/packages/ack_mcp_dart/CHANGELOG.md index 74ddb72d..a052029f 100644 --- a/packages/ack_mcp_dart/CHANGELOG.md +++ b/packages/ack_mcp_dart/CHANGELOG.md @@ -1,4 +1,9 @@ -## Unreleased +## 2.0.0-alpha.2 + +### Changed + +* Require `ack: ^2.0.0-alpha.2` so consumers receive the corrected runtime + nullability, discriminated validation, and imported JSON Schema contracts. ### Documentation diff --git a/packages/ack_mcp_dart/README.md b/packages/ack_mcp_dart/README.md index 09d9a71b..7076f7a3 100644 --- a/packages/ack_mcp_dart/README.md +++ b/packages/ack_mcp_dart/README.md @@ -15,8 +15,8 @@ Transport, negotiation, cancellation, and lifecycle remain in `mcp_dart`. ```yaml dependencies: - ack: ^2.0.0-alpha.1 - ack_mcp_dart: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 + ack_mcp_dart: ^2.0.0-alpha.2 mcp_dart: ^2.4.2 ``` @@ -141,7 +141,7 @@ New emitted keywords require revisiting this dialect assumption. | Component | Supported / exercised | | --- | --- | | Dart | `>=3.11.0 <4.0.0` | -| ACK | `^2.0.0-alpha.1` | +| ACK | `^2.0.0-alpha.2` | | mcp_dart | `^2.4.2` | | MCP stable discovery | `2026-07-28` | | MCP initialization | `2025-11-25`, `2025-06-18` | diff --git a/packages/ack_mcp_dart/pubspec.yaml b/packages/ack_mcp_dart/pubspec.yaml index 42e66d97..cb6eaee3 100644 --- a/packages/ack_mcp_dart/pubspec.yaml +++ b/packages/ack_mcp_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: ack_mcp_dart description: MCP tool schemas and typed argument validation for Ack and mcp_dart -version: 2.0.0-alpha.1 +version: 2.0.0-alpha.2 repository: https://github.com/btwld/ack issue_tracker: https://github.com/btwld/ack/issues resolution: workspace @@ -14,7 +14,7 @@ environment: dependencies: - ack: ^2.0.0-alpha.1 + ack: ^2.0.0-alpha.2 mcp_dart: ^2.4.2 dev_dependencies: