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
3 changes: 2 additions & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@

## Repository layout
- `packages/ack`: core runtime validation library.
- `packages/ack_annotations`: source annotations (`@AckModel`, `@AckType`).
- `packages/ack_annotations`: source annotation for `@AckType()` schema
generation.
- `packages/ack_generator`: build_runner generator + golden tests.
- `packages/ack_firebase_ai`: Firebase AI schema adapter.
- `packages/ack_json_schema_builder`: JSON Schema adapter.
Expand Down
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## 1.0.0 - 2026-06-26

Stable 1.0 release for the Ack workspace.

### Highlights

- Finalized the core validation API, codecs, JSON Schema export, Firebase AI
adapter, json_schema_builder adapter, and `@AckType()` extension-type
generation docs for the stable release.
- Removed deprecated public helpers and the internal legacy `MapValue` alias so
the 1.0 API surface is clean.
- Reworked the documentation site around task-first guides, validated examples,
and concise API reference material.

## 2026-03-02

### Changes
Expand Down Expand Up @@ -547,4 +561,3 @@ Packages with other changes:
#### `ack` - `v0.2.0`

- Bump "ack" to 0.2.0 with improved SchemaModel API and enhanced string validation

56 changes: 56 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Contributing to Ack

Thanks for helping improve Ack. Keep changes focused, tested, and easy to
review.

## Development setup

```bash
dart pub global activate melos
melos bootstrap
```

Ack uses a Melos workspace. Run commands from the repository root unless a
package README says otherwise.

## Before opening a PR

1. Keep the change scoped to one problem.
2. Add or update tests for behavior changes.
3. Update docs or README snippets when public APIs, examples, or setup steps
change.
4. Run the relevant checks:

```bash
melos analyze
melos test
```

For code generation changes, also run:

```bash
melos run test:gen
```

For JSON Schema export changes, also run:

```bash
melos run validate-jsonschema
```

## Commit style

Use Conventional Commits, for example:

```text
feat(ack): add schema helper
fix(generator): preserve nullable list getters
docs: clarify codec examples
```

Use `!` or a `BREAKING CHANGE:` footer for breaking API changes.

## Release notes

User-facing changes should update the relevant package `CHANGELOG.md`. Release
publishing is handled by maintainers through `PUBLISHING.md`.
4 changes: 2 additions & 2 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@
],
"variables": {
"versions": {
"default": "1.0.0-beta.12",
"isPrerelease": true
"default": "1.0.0",
"isPrerelease": false
}
},
"search": {},
Expand Down
8 changes: 4 additions & 4 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack_example
description: Example project for ACK schema generation.
version: 1.0.0-beta.1
version: 1.0.0
publish_to: none

resolution: workspace
Expand All @@ -9,11 +9,11 @@ environment:
sdk: '>=3.8.0 <4.0.0'

dependencies:
ack: ^1.0.0-beta.12
ack_annotations: ^1.0.0-beta.12
ack: ^1.0.0
ack_annotations: ^1.0.0

dev_dependencies:
ack_generator: ^1.0.0-beta.12
ack_generator: ^1.0.0
build_runner: ^2.4.0
dart_code_metrics_presets: ^2.22.0
lints: ^5.0.0
Expand Down
2 changes: 1 addition & 1 deletion llms.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Ack

> A schema validation library for Dart and Flutter with a fluent runtime API and `@AckType()`-driven extension-type generation. Version 1.0.0-beta.12.
> A schema validation library for Dart and Flutter with a fluent runtime API and `@AckType()`-driven extension-type generation. Version 1.0.0.

Ack validates external data with hand-written schemas built using the `Ack`
factory. When you want typed wrappers over validated values, annotate top-level
Expand Down
21 changes: 21 additions & 0 deletions packages/ack/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
## 1.0.0

### Added

* Documented codecs as a stable API for bidirectional conversions between wire
values and Dart runtime values.
* Added and tested codec examples for built-in codecs and custom `Ack.codec`
round trips.

### Changed

* Prepared the documentation site and README for the stable 1.0 release with a
task-first quickstart, clearer guide flow, and validated API examples.

### Removed

* Removed the deprecated `StringSchema.enumString()` and
`StringSchema.literal()` instance helpers. Use the stable
`Ack.enumString(...)` and `Ack.literal(...)` factories instead.
* Removed the internal legacy `MapValue` alias in favor of `JsonMap`.

## 1.0.0-beta.12

### Breaking Changes
Expand Down
4 changes: 2 additions & 2 deletions packages/ack/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Ack is a schema validation library for Dart and Flutter that helps you validate
- **Validate external payloads**: Guard API and user inputs by validating required fields, types, and constraints at boundaries
- **Single Source of Truth**: Define data structures and rules in one place
- **Reduce Boilerplate**: Minimize repetitive code for validation and JSON conversion
- **Type Safety**: Generate type-safe schema classes from your Dart models
- **Type Safety**: Generate typed wrappers for hand-written Ack schemas

## Quick Start

Expand Down Expand Up @@ -55,6 +55,6 @@ Use `.optional()` when a field may be omitted entirely. Chain `.nullable()` if a

## Related Packages

- [ack_generator](https://pub.dev/packages/ack_generator) — Code generator for creating schema classes from annotated Dart models
- [ack_generator](https://pub.dev/packages/ack_generator) — Code generator for typed wrappers from `@AckType()` schemas
- [ack_firebase_ai](https://pub.dev/packages/ack_firebase_ai) — Firebase AI (Gemini) schema converter
- [ack_json_schema_builder](https://pub.dev/packages/ack_json_schema_builder) — JSON Schema converter
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: A simple validation library for Dart
version: 1.0.0-beta.12
version: 1.0.0
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
homepage: https://docs.page/btwld/ack
Expand Down
8 changes: 8 additions & 0 deletions packages/ack_annotations/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.0.0

### Changed

* Marked the `@AckType()` annotation package stable for Ack 1.0.
* Updated examples and installation snippets to use stable Ack package
constraints.

## 1.0.0-beta.12

### Breaking
Expand Down
6 changes: 3 additions & 3 deletions packages/ack_annotations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@

```yaml
dependencies:
ack: ^1.0.0-beta.12
ack_annotations: ^1.0.0-beta.12
ack: ^1.0.0
ack_annotations: ^1.0.0

dev_dependencies:
ack_generator: ^1.0.0-beta.12
ack_generator: ^1.0.0
build_runner: ^2.4.0
```

Expand Down
2 changes: 1 addition & 1 deletion packages/ack_annotations/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack_annotations
description: AckType annotation for schema extension-type generation
version: 1.0.0-beta.12
version: 1.0.0
repository: https://github.com/btwld/ack
resolution: workspace

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.0.0

### Changed

* Marked the Firebase AI `responseJsonSchema` adapter stable for Ack 1.0.
* Updated installation snippets and docs to use stable Ack package constraints.

## 1.0.0-beta.12

### Added
Expand Down
4 changes: 2 additions & 2 deletions packages/ack_firebase_ai/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ Always validate model output with the same ACK schema after generation. Firebase

```yaml
dependencies:
ack: ^1.0.0-beta.12
ack_firebase_ai: ^1.0.0-beta.12
ack: ^1.0.0
ack_firebase_ai: ^1.0.0
firebase_ai: ^3.12.1
```

Expand Down
4 changes: 2 additions & 2 deletions 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 ACK validation library
version: 1.0.0-beta.12
version: 1.0.0
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
resolution: workspace
Expand All @@ -10,7 +10,7 @@ environment:
flutter: '>=3.16.0'

dependencies:
ack: ^1.0.0-beta.12
ack: ^1.0.0
flutter:
sdk: flutter

Expand Down
8 changes: 8 additions & 0 deletions packages/ack_generator/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.0.0

### Changed

* Marked top-level `@AckType()` schema generation stable for Ack 1.0.
* Updated generator documentation around supported schemas, discriminated
unions, typed getters, and stable dependency constraints.

## 1.0.0-beta.12

### Breaking
Expand Down
6 changes: 3 additions & 3 deletions packages/ack_generator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ extension type UserType(Map<String, Object?> _data)

```yaml
dependencies:
ack: ^1.0.0-beta.12
ack_annotations: ^1.0.0-beta.12
ack: ^1.0.0
ack_annotations: ^1.0.0

dev_dependencies:
ack_generator: ^1.0.0-beta.12
ack_generator: ^1.0.0
build_runner: ^2.4.0
```

Expand Down
6 changes: 3 additions & 3 deletions packages/ack_generator/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ack_generator
description: Code generator for AckType extension-type generation
version: 1.0.0-beta.12
version: 1.0.0
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
resolution: workspace
Expand All @@ -16,8 +16,8 @@ dependencies:
code_builder: ^4.10.0

# Ack packages (versions are overridden locally by Melos)
ack: ^1.0.0-beta.12
ack_annotations: ^1.0.0-beta.12
ack: ^1.0.0
ack_annotations: ^1.0.0

# Utilities
collection: ^1.18.0
Expand Down
7 changes: 7 additions & 0 deletions packages/ack_json_schema_builder/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 1.0.0

### Changed

* Marked the json_schema_builder adapter stable for Ack 1.0.
* Updated installation snippets and docs to use stable Ack package constraints.

## 1.0.0-beta.12

### 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 @@ -12,8 +12,8 @@ Converts ACK schemas to json_schema_builder format via `.toJsonSchemaBuilder()`.

```yaml
dependencies:
ack: ^1.0.0-beta.12
ack_json_schema_builder: ^1.0.0-beta.12
ack: ^1.0.0
ack_json_schema_builder: ^1.0.0
json_schema_builder: ^0.1.3
```

Expand Down
4 changes: 2 additions & 2 deletions 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 ACK validation library
version: 1.0.0-beta.12
version: 1.0.0
repository: https://github.com/btwld/ack
issue_tracker: https://github.com/btwld/ack/issues
resolution: workspace
Expand All @@ -9,7 +9,7 @@ environment:
sdk: '>=3.8.0 <4.0.0'

dependencies:
ack: ^1.0.0-beta.12
ack: ^1.0.0
json_schema_builder: ^0.1.3

dev_dependencies:
Expand Down
Loading