Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,31 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## 1.7.0-beta.7

* Strict JSON Schema import (`Ack.fromJsonSchema()`) now supports `multipleOf`
with exact decimal division (shared with native `.multipleOf()`) and reports
`keywordLocation` on `multipleOf` validation failures, enabling round-trips
from `Ack.integer().multipleOf(...)` and `Ack.double().multipleOf(...)`.
* Strict JSON Schema import now recognizes Ack's built-in string formats
(`date-time`, `date`, `email`, `uuid`, `uri`, `ipv4`, `ipv6`), standard
numeric format bounds (`int32`, `int64`, `uint32`, `uint64`, `float`,
`double`), and `x-*` vendor extension annotations (including `x-transformed`
from `AckSchema.transform(...)`), while continuing to reject unknown formats
and non-`x-*` extension keywords.
* Strict JSON Schema import now accepts Draft-07 `$schema` URIs
(`http(s)://json-schema.org/draft-07/schema` with or without a trailing `#`),
so schemas exported by `.toJsonSchema()` can be re-imported without stripping
`$schema`.
* Speed up imported JSON Schema compilation and validation, `toJsonSchema()` on
native schemas, and collection parse/encode results (`Ack.object()`,
`Ack.list()`, `Ack.map()`). Error output, exported JSON Schema, and
unmodifiable result detachment are unchanged.
* Align all five publishable packages at 1.7.0-beta.7. Adapter and generator
APIs and compatible dependency minimums are unchanged. The beta.3 annotation
and generator migrations and the beta.5 imported-pattern change still apply
when upgrading from earlier versions.

## 1.7.0-beta.6

* `JsonSchemaValidationError` reports `keywordLocation`, the evaluation path
Expand Down
22 changes: 12 additions & 10 deletions PUBLISHING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,17 @@ 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 **1.7.0-beta.6**. It adds `keywordLocation` to imported
JSON Schema validation errors, reports imported `uniqueItems` failures at the
array, and speeds up `safeParse`, `safeEncode`, and imported-schema validation.
The next candidate is **1.7.0-beta.7**. It adds `multipleOf` validation,
built-in string and numeric `format` assertions, `x-*` vendor extension
annotation tolerance, and Draft-07 `$schema` URI support to strict JSON Schema
import (`Ack.fromJsonSchema()`), and speeds up imported-schema compilation and
validation, `toJsonSchema()`, and collection parse/encode results.
The beta.5 imported-pattern change to ECMA-262 Unicode mode still applies when
upgrading from stable 1.6.2 or earlier 1.7.0 betas; review imported patterns,
including identity escapes and expressions that count UTF-16 code units. Native
`Ack.string().matches()` keeps its Dart regex contract. The beta.3 annotation
and generator migration still applies to consumers coming from earlier
versions; beta.6 adds no new generator migration. The API check compares all
versions; beta.7 adds no new generator migration. The API check compares all
five packages against 1.6.2; generator compatibility also requires the consumer
build and runtime tests because the API check cannot inspect generated consumer
code.
Expand Down Expand Up @@ -58,7 +60,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:1.7.0-beta.6 --yes --no-git-commit-version
dart run melos version --manual-version=ack:1.7.0-beta.7 --yes --no-git-commit-version
```

Use the named flag, not a positional package argument: the positional form
Expand All @@ -85,7 +87,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 v1.7.0-beta.6 --skip-ancestry
dart scripts/verify_release_tag.dart v1.7.0-beta.7 --skip-ancestry
dart run melos run ci
dart scripts/api_check.dart 1.6.2
dart scripts/publish_dry_run.dart
Expand Down Expand Up @@ -139,9 +141,9 @@ After the release commit's CI/preflight succeeds:
```sh
git fetch origin main --tags
# Use the exact reviewed release merge commit, not an arbitrary later main head.
git tag -a v1.7.0-beta.6 <release-merge-sha> -m 'Ack 1.7.0 beta 6'
dart scripts/verify_release_tag.dart v1.7.0-beta.6
git push origin v1.7.0-beta.6
git tag -a v1.7.0-beta.7 <release-merge-sha> -m 'Ack 1.7.0 beta 7'
dart scripts/verify_release_tag.dart v1.7.0-beta.7
git push origin v1.7.0-beta.7
```

Pushing the tag triggers `.github/workflows/release.yml`; there is no Melos
Expand Down Expand Up @@ -171,4 +173,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
beta versions. Before the first subsequent code
change, begin a new unreleased changelog section instead of editing the
1.7.0-beta.6 notes.
1.7.0-beta.7 notes.
8 changes: 4 additions & 4 deletions docs/getting-started/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ flutter pub add ack
```

The unversioned commands select the latest stable release. To select the
1.7.0-beta.6 prerelease, add it to your `pubspec.yaml`:
1.7.0-beta.7 prerelease, add it to your `pubspec.yaml`:

```yaml
dependencies:
ack: ^1.7.0-beta.6
ack: ^1.7.0-beta.7
```

## Optional code generator
Expand All @@ -38,10 +38,10 @@ Or add them to your `pubspec.yaml`:

```yaml
dependencies:
ack: ^1.7.0-beta.6
ack: ^1.7.0-beta.7

dev_dependencies:
ack_generator: ^1.7.0-beta.6
ack_generator: ^1.7.0-beta.7
build_runner: ^2.4.0
```

Expand Down
2 changes: 1 addition & 1 deletion packages/ack/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Unreleased
## 1.7.0-beta.7

### Added

Expand Down
2 changes: 1 addition & 1 deletion packages/ack/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack
description: Schema validation and bidirectional codecs for Dart and Flutter
version: 1.7.0-beta.6
version: 1.7.0-beta.7
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
homepage: https://concepta.dev/ack
Expand Down
7 changes: 7 additions & 0 deletions packages/ack_firebase_ai/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 1.7.0-beta.7

### Changed

* Align with coordinated Ack 1.7.0-beta.7. This package has no source or
public API changes from beta.6; its compatible dependency minimum is unchanged.

## 1.7.0-beta.6

### Changed
Expand Down
2 changes: 1 addition & 1 deletion packages/ack_firebase_ai/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Always validate model output with the same ACK schema after generation. Firebase
```yaml
dependencies:
ack: ^1.2.0
ack_firebase_ai: ^1.7.0-beta.6
ack_firebase_ai: ^1.7.0-beta.7
firebase_ai: ^3.12.2
```

Expand Down
2 changes: 1 addition & 1 deletion packages/ack_firebase_ai/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack_firebase_ai
description: Firebase AI (Gemini) schema converter for the Ack validation library
version: 1.7.0-beta.6
version: 1.7.0-beta.7
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
resolution: workspace
Expand Down
7 changes: 7 additions & 0 deletions packages/ack_generator/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 1.7.0-beta.7

### Changed

* Align with coordinated Ack 1.7.0-beta.7. This package has no source or
public API changes from beta.6; its compatible dependency minimum is unchanged.

## 1.7.0-beta.6

### Changed
Expand Down
2 changes: 1 addition & 1 deletion packages/ack_generator/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack_generator
description: Generates immutable models from Ack schemas and validated schemas from Dart classes
version: 1.7.0-beta.6
version: 1.7.0-beta.7
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
resolution: workspace
Expand Down
9 changes: 9 additions & 0 deletions packages/ack_json_schema_builder/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 1.7.0-beta.7

### Changed

* When paired with `ack` 1.7.0-beta.7 or later, imported builder schemas inherit
`multipleOf` validation, built-in string and numeric `format` assertions,
`x-*` vendor extension support, and Draft-07 `$schema` URI support. The
Comment on lines +5 to +7

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the builder README support matrix

When users install the advertised beta.7 pairing, this release note says imported builder schemas support multipleOf and built-in formats, but the package README shipped to pub.dev still states at lines 36–39 that formats and multiples are unsupported. Update that support/limitations section so the package landing page does not discourage or mislead users about the newly released behavior.

AGENTS.md reference: AGENTS.md:L3-L4

Useful? React with 👍 / 👎.

bridge's public API and compatible dependency minimum are unchanged.

## 1.7.0-beta.6

### Changed
Expand Down
4 changes: 2 additions & 2 deletions packages/ack_json_schema_builder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ for the complete support matrix and reference/diagnostic behavior.

```yaml
dependencies:
ack: ^1.7.0-beta.6
ack_json_schema_builder: ^1.7.0-beta.6
ack: ^1.7.0-beta.7
ack_json_schema_builder: ^1.7.0-beta.7
json_schema_builder: ^0.1.3
```

Expand Down
2 changes: 1 addition & 1 deletion packages/ack_json_schema_builder/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack_json_schema_builder
description: JSON Schema Builder converter for the Ack validation library
version: 1.7.0-beta.6
version: 1.7.0-beta.7
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
resolution: workspace
Expand Down
7 changes: 7 additions & 0 deletions packages/ack_mcp_dart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 1.7.0-beta.7

### Changed

* Align with coordinated Ack 1.7.0-beta.7. This package has no source or
public API changes from beta.6; its compatible dependency minimum is unchanged.

## 1.7.0-beta.6

### Changed
Expand Down
2 changes: 1 addition & 1 deletion packages/ack_mcp_dart/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Transport, negotiation, cancellation, and lifecycle remain in `mcp_dart`.
```yaml
dependencies:
ack: ^1.2.0
ack_mcp_dart: ^1.7.0-beta.6
ack_mcp_dart: ^1.7.0-beta.7
mcp_dart: ^2.4.2
```

Expand Down
2 changes: 1 addition & 1 deletion packages/ack_mcp_dart/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack_mcp_dart
description: MCP tool schemas and typed argument validation for Ack and mcp_dart
version: 1.7.0-beta.6
version: 1.7.0-beta.7
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
resolution: workspace
Expand Down
Loading