Skip to main content

TeaQL 1.0.0 Release Notes

ยท 3 min read
TeaQL Code Gen
Core Contributor

We are thrilled to announce the release of TeaQL 1.0.0! This milestone marks the stabilization of our core APIs, major performance improvements, and a completely redefined model-driven development experience across both Rust and Java (Spring Boot) ecosystems.

TeaQL 1.0.0 focuses on API Elegance, Developer Ergonomics, AI-Native Workflows, and Transaction Safety.

๐ŸŒŸ Major Highlightsโ€‹

1. Ultra-Elegant Native Chained Mutations (Zero-Repo)โ€‹

We have completely phased out raw repository-level guard classes (e.g., QueryCommentGuard). Operations on entities are now performed entirely via pure, fluent, object-oriented method chaining on the generated entities themselves.

  • Before: Manual context building, repository lookups, and passing guards.
  • After (Rust/Java):
    // Beautiful, domain-driven API
    task.update_status_to_planned()
    .set_comment("Start working on feature X")
    .save(&ctx)
    .await?;

All persistence and graph relationship merging happens automatically under the hood via the newly stabilized entity.save(&ctx) method.

2. Complete Transaction & Topological Safetyโ€‹

  • Postgres ID Generation Race Fixed: The core graph engine now correctly analyzes dependency topology. Entities are inserted in the exact required order (e.g., Product before OrderLine), ensuring foreign-key relationships are established perfectly and IDs are generated without race conditions.
  • Java @Transactional Integration: Large operations like sample data generation are now wrapped in a single, unified transaction context. This provides a massive performance boost (thousands of inserts in milliseconds) and ensures atomic rollbacks.
  • Rust QueryExecutor Stability: Deep integration with SQLx ensures that entity.save(&ctx) intelligently triggers begin_transaction and commit_transaction, handling complex graph-writes as a single atomic unit.

3. API Naming Convention Modernization (which_ โžก๏ธ with_)โ€‹

To improve semantic clarity and readability, all query filtering methods have been renamed from which_* to with_*.

  • which_name_contains -> with_name_contains
  • which_status_is -> with_status_is

This change makes complex queries read exactly like natural language.

4. AI-First Architecture (AGENTS.md)โ€‹

TeaQL 1.0.0 is the first framework built with AI-Coding agents in mind. Our code generators now emit an AGENTS.md file designed to directly instruct LLMs (like Cursor, GitHub Copilot, and Claude) on your project's data architecture, constraints, and Red Lines (e.g., mandatory audit logging requirements via .set_comment()).

๐Ÿž Bug Fixes & Core Improvementsโ€‹

  • Macro Stability: Cleaned up outdated attach_root_recursive generation logic in teaql-macros.
  • Date/Timestamp Parsing: Fixed edge-case bugs in Text-to-Date and Timestamp conversions.
  • Version Updates: Fixed issues where version fields were incorrectly skipped during optimistic locking updates.
  • Inverse Relations: Added robust support for resolving both one-to-many and one-to-one inverse relations during relation loading.
  • Schema Migration: Stripped identifier quotes before comparing columns to prevent unnecessary migrations on MySQL/Postgres.

โš ๏ธ Breaking Changesโ€‹

  1. Repository Access: Manual instantiation of TaskRepository or QueryCommentGuard is strictly deprecated and removed. Use .save(&ctx) on the entity.
  2. Query Prefixes: Any existing code using which_ must be updated to use with_.
  3. Audit Log Enforcement: Calling .save(&ctx) on core entities will now strictly mandate the presence of an audit comment via .set_comment().

๐Ÿ“ฆ Upgradingโ€‹

For Rust users: Update your Cargo.toml:

teaql-core = "1.0.0"
teaql-macros = "1.0.0"
teaql-runtime = "1.0.0"
teaql-provider-sqlx-postgres = "1.0.0"

For Java/Spring Boot users: Update your Maven/Gradle plugin version to 1.0.0 and regenerate your project.


Thank you to all contributors who helped test the beta versions leading up to 1.0.0! Happy coding! โ˜•