Released September 8, 2026
New
swift-sharing– A new skill covers Point-Free’s library for shared, persisted state, which@FetchAlland@FetchOneare built on:@Sharedand@SharedReader, the user defaults, file and in-memory strategies, loading and error state, custom keys, and keeping each test’s storage separate. It also explains why chaining a SwiftUI binding into shared state fails to compile on Swift 6.3 withswift-sharingreleases before 2.8, and what to write instead.
Updated
SQLiteData– Updated coverage forSQLiteData1.12 andStructuredQueries0.39.2:sqlitedata– Sectioned results withsectionBy:, package traits, lazily initialized draft columns, previewable CloudKit sharing, and text matching withlike, which replaces the deprecatedcontains,hasPrefixandhasSuffixsqlitedata-ref– Date and time helpers,Values,nullif, user-defined collations, and theSyncEngine.$isSynchronizingguard that keeps a trigger from firing on every incoming CloudKit writesql-json-ref– Typed JSON and JSONB columns, key-path extraction andjsonEach()
@FetchOnefor a single record – Pass a statement such asItem.find(id), not a record: a@FetchOneseeded with a record keeps observing its original row when SwiftUI reuses the view, and on a table that isn’tPrimaryKeyedTableit shows whichever row SQLite returns first.SQLiteDatasync tests – Start the sync engine in any test that exercises sync: sinceSQLiteData1.5.1 it no longer starts under test, so a suite written earlier still builds and passes without testing sync.WITHOUT ROWIDupserts – Explains thatGRDB7.11.1 still generates failing upsert SQL for aWITHOUT ROWIDtable with anINTEGERprimary key (no such column: "rowid"), and gives the workarounds: aTEXTprimary key, a rowid table, or a hand-writtenON CONFLICT DO UPDATE. The change coversgrdb,grdb-performanceandgrdb-performance-auditor, which now flags those upserts onGRDB7.11.0 and later.- SQLite JSONB availability – Gates SQLite’s JSONB functions on iOS 26 and macOS 26, the first releases whose SQLite includes them, with TEXT JSON as the fallback on earlier versions.
StructuredQuerieswon’t compile a JSONB call for an earlier target, while raw SQL throughGRDBcompiles and fails at runtime withno such function: jsonb_extract.
Full Changelog: v27.0.0-beta.53...v27.0.0-beta.54