Skip to content

v0.4.0

Compare
Choose a tag to compare
@liuliu liuliu released this 06 Oct 18:09
· 69 commits to unstable since this release

New Features

  • Added WorkspaceDictionary which you can access from Workspace.dictionary, an easy way to persist some data through key-value pairs.
  • Added dflat_graphql Bazel rule that takes GraphQL schemas and generate FlatBuffers schema that can be persisted with Dflat, this is only compatible with Apollo GraphQL's Swift code.
  • Added ./dflatc.py graphql to achieve above without using Bazel rule.
  • Added new OrderBy primitive: , orderBy: [someArray.firstIndex(of: Object.property)], this is more useful when you do xxx.in(someArray) to enforce ordering for the returned result array.
  • Allow FlatBuffers schemas without root_type. These will generate struct conforms to FlatBuffersCodable, which can be persisted with WorkspaceDictionary using FlatBuffers rather than Swift Codable protocol (binary plist).
  • Allow using from(data: Data) -> Self and toData() -> Data to encode objects into Data objects directly. This enables not only persist data with Dflat, but passing Dflat objects over the wire.
  • Support explicit version string in FlatBuffers schema. This takes the form table objectName (v: "a_version_string") {}. This allows incompatible changes in FlatBuffers schema by having new tables with the version string encoded.

Updates

  • Updated to FlatBuffers 2.0.1.
  • Updated to Swift Atomics 1.0.1
  • Updated to SQLite 3.36.0 (for Linux)

Bug Fixes

  • Fixed a strict serializable issue because we didn't coordinate concurrent queue properly: 97392ed
  • Fixed unbalanced semaphore usage when exiting (@siyuyue): a5873b3
  • Fixed upsert not updating object: 033150d
  • Fixed in query crashes with exact-1 element array: 96dc2f6

CI

  • Moved to GitHub Action, with 4 variants: macos-spm, macos-bazel, ubuntu-spm, ubuntu-bazel
  • Fixed a flaky test with Combine: 9f5491f