Vernac 0.5.0 — Work in the model
Vernac 0.5.0 focuses on the experience of building an application: write business behavior, navigate its types, debug it where it lives and start from a working web project. The release keeps the existing Java/Spring/JDBC architecture and makes it more natural to use.
These notes describe the release scope. Publication and Marketplace approval must be confirmed separately; the release checklist records verification rather than assuming it has happened.
Debug business rules in Vernac
Set breakpoints in supported .vernac bodies and follow their real JVM execution.
Inspect self, arguments and locals; use stepping, Evaluate Expression, conditional
breakpoints and logpoints. Coverage includes domain behaviors, usecases, services,
listeners, adapter behavior, mapping/conversion sites and user-defined require rules.
Handwritten Java implementations remain ordinary Java debug targets.
Readable facade properties and conservative step filtering reduce technical noise without hiding their actual types or inventing another execution stack. Runtime source checks protect against stale generated code. Contributors can inspect the generated Java and raw views when diagnosing the compiler itself.
Write Java behavior before the first generation build
Current local model APIs are visible to embedded Java before generated files exist. The compiler’s production generators supply the signatures for IDs, values, enums, collections, entities, aggregates, services, events, usecases, repositories, ports and adapters, including access views, usecase Result records and adapter DTO/mapping holders. The editor includes unsaved models and withholds invalid declarations.
Native type references supply Ctrl-hover feedback and navigation in model positions, Java signatures and implementation-class references. Scoped live APIs supplement existing generated/dependency Java; editing does not launch Maven or write sources. This is editor support, not compilation or HotSwap of a running application.
Start with a working application
The Spring Boot Web Application wizard creates a small Thymeleaf task workspace with PostgreSQL, Flyway, tests, Compose and deployment configuration. With Docker running, open TasksApplication and click Run; the local profile is the default and IDE builds delegate to Maven. A minimal database-free project remains available.
The new inbound MVC adapter declares pages, form inputs, usecase calls, redirects and scoped error redisplay directly in Vernac. Usecases retain transaction ownership; application authors own their templates, security choices and business rules.
Run the starter · Declare pages and forms.
Keep contracts and explanations consistent
Shared implementation rules retain nullable input parameters and Optional-based reading where specified, align implementation-target lookup and diagnose generated signature collisions. The documentation now includes a DDD introduction, a small-project learning path and persistent navigation. Contributor lessons capture DSL/Java integration and debugger verification techniques.
Upgrade and verification
Use matching 0.5.0 Maven compiler/runtime artifacts and plugin; regenerate and rebuild application Java before debugging. Source checkouts remain 0.5.0-SNAPSHOT until the next development version is deliberately selected. Do not change already applied Flyway migrations merely to upgrade the toolchain. Model changes still need reviewed migration candidates when their owned schema changes.
This release does not introduce cross-language rename, HotSwap, Kafka adapters, SaaS identity/billing capabilities or stronger aggregate rollback semantics. See the platform roadmap for later work.