Release Notes
Quark is documented here as a v0.x project (currently v0.3). The public surface is useful and broad, but some APIs may still move before v1.0.
Per-version release notes live in the main repository under
docs/RELEASE_NOTES_*.md.
The current tag is documented at
docs/RELEASE_NOTES_v0.3.0.md.
Migration steps for breaking changes are at
docs/MIGRATION_v0.3.0.md.
v0.3.0
First proper tag since v0.1.1. Bundles Phase 0 P0 fixes (security, correctness) with the Phase 1 deliverables (rich types, dirty tracking, optimistic locking, soft-delete scopes). See the in-repo release notes for the full breakdown.
v0.1.0
Public release baseline.
Core
- Generic
Query[T]entry point throughquark.For[T](ctx, provider). - Immutable builder methods for predictable query composition.
- CRUD helpers for create, update, delete, hard delete, upsert, and map updates.
- Read helpers for
Find,First,List,Count, aggregates, pagination, streaming, and cursors. - Validation through
validatetags and model-levelValidate(context.Context) error. - Lifecycle hooks for create, update, and delete paths.
Dialects
- SQLite, PostgreSQL, MySQL, MariaDB, SQL Server, and Oracle dialects.
- Dialect-specific placeholders, identifier quoting, pagination, upsert SQL, generated-ID handling, JSON extraction, and DDL helpers.
- Custom dialect registration through
RegisterDialect.
Schema
Migratefor table and many-to-many join-table creation.Syncfor additive changes, renames, and controlled destructive drops.CreateIndexandAddForeignKeyhelpers.- Versioned Go migrations through
github.com/jcsvwinston/quark/migrate.
Relations
Preloadforhas_one,has_many,belongs_to, many-to-many, and polymorphic relations.- Recursive association persistence for common aggregate saves.
- Tenant context propagation through association loads and saves where tenant columns are present.
Production Features
- Transactions, manual transactions, savepoints, and nested savepoint-style callbacks.
TenantRouterwith database-per-tenant, schema-per-tenant, and row-level strategies.- Cache abstraction with memory and Redis stores.
- Query observers, middleware, and OpenTelemetry middleware.
- SQLGuard validation for identifiers, operators, and raw-query escape hatches.
Compatibility Notes
- The current module tree does not include a standalone
cmd/quarkCLI. DeleteByandDeleteBatchperform hard deletes.Selectaccepts simple identifiers rather than arbitrary SQL expressions.- Raw SQL APIs require
AllowRawQueries: true. - Migration commands that use
migrate.Migratorshould use a client configured withAllowRawQueries: true.