Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 04:13
c04e274

v0.6.0: stores under store/, opened by URI

The storage side takes the database/sql shape (#55):

  • store.Open(uri) opens a store from a URI through drivers that register their scheme in init. store itself knows no driver: blank-import the ones you want and nothing else is linked into the binary.

    import (
        "github.com/dangra/durable/store"
        _ "github.com/dangra/durable/store/bbolt"
    )
    
    st, err := store.Open("bbolt:///var/lib/app/durable.db")
    eng := engine.New(st)
  • store/bbolt is the persistent driver (bbolt:///abs/path, bbolt:/abs/path, bbolt:rel/path; no host, no options yet, a query string is an error).

  • store/mem is the in-memory driver (mem:), promoted from a test double to a real store for CLI tools and other programs whose runs are ephemeral. It remains the executable reference the bbolt driver is differentially fuzzed against.

  • store/driver is the SPI backends implement.

Breaking changes and migration

  • github.com/dangra/durable/storedriver is github.com/dangra/durable/store/driver (package driver).
  • github.com/dangra/durable/bboltstore is github.com/dangra/durable/store/bbolt (package bbolt; alias one side if you also import go.etcd.io/bbolt). bbolt.Open(path) is unchanged, or use store.Open("bbolt:...").
  • durabletest.NewMemStore() is mem.New() in github.com/dangra/durable/store/mem, or store.Open("mem:"). durabletest keeps the fake Clock and the fake Invocation.
  • No wire or behavior change: a v0.5.0 bbolt database opens unchanged.

contrib/durableotel v0.6.0 is released in lockstep.

Modules

  • github.com/dangra/durable@v0.6.0
  • github.com/dangra/durable/contrib/durableotel@v0.6.0

What's Changed

  • Stores under store/: driver SPI, bbolt and mem drivers, Open by URI by @dangra in #55
  • Release v0.6.0 by @dangra in #56

Full Changelog: v0.5.0...v0.6.0