Skip to content

Ridu v0.19.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 20:55

Ridu 0.19.0

Collections and globals that already store documents can now turn on versions. On Windows, SQLite
projects start, the admin loads, ridu migrate create succeeds, and Ctrl+C stops every process
ridu dev started.

Changes

  • Setting Versions: true on an existing collection or global no longer fails with
    RIDU_VERSIONS_ENABLE_UNSUPPORTED. A migration records what the documents it already stores
    become:

    • published: each document is published with a first version and a matching draft, so readers
      keep seeing it.
    • draft: each document stays an unpublished draft with a first version, and public reads stop
      returning it until it is published. This needs drafts.
    • require-empty: ridu migrate up stops while the collection stores any document.

    ridu migrate create takes the choice from --versions-existing or asks in a terminal.
    ridu dev enables versions without asking while the collection stores nothing. Otherwise it asks
    published, draft or cancel, then writes and applies the migration like an accepted rename. SQLite,
    PostgreSQL and MongoDB apply the choice in the migration's transaction, and ridu migrate verify
    replays it. See Enabling versions.

Fixes

  • On Windows, every command that opened a SQLite file by path failed with
    parse SQLite path: … invalid port, including ridu dev, ridu migrate plan, up and verify,
    and the server. Paths now become file:///C:/… URIs, and UNC shares work too.
  • On Windows, the admin never loaded under ridu dev: no @admin/ import resolved, because Vite's
    module IDs start with a drive. A Windows ridu build also split @riducms/ui into many small
    chunks.
  • On Windows, ridu migrate create wrote the migration and then exited with "Access is denied", and
    the local storage adapter's health check, uploads and deletes failed the same way. Ridu no longer
    syncs directories on Windows, where the file system already makes those changes durable.
  • On Windows, Ctrl+C on ridu dev left the admin's Vite processes running and holding port 5173.
    Each process ridu dev starts now runs in a job object that ends its whole tree when Ridu stops,
    even if Ridu itself is killed. Through the npm launcher, the first Ctrl+C lets Ridu shut down
    cleanly and a second ends it at once.

Windows remains a source-build target without release qualification.

Breaking changes and upgrade

Update the Go module and all Ridu npm packages to 0.19.0 together, regenerate application contracts,
and rebuild the admin and application binary.

  • sqlite.CreateArtifact, postgres.CreateArtifact and postgres.BuildArtifact take an
    ArtifactOptions value in place of positional renames, destructive approval and transforms, as
    mongodb.CreateArtifact already did. sqlite.CreateArtifactWithRenames is removed; pass
    ArtifactOptions{Renames: …}. The CLI commands are unchanged.
  • Migration artifacts gain the enable_versions step kind. Planner versions are unchanged, so
    existing histories replay as before.
  • On PostgreSQL and MongoDB, a migration that enables versions needs
    ridu migrate up --allow-maintenance.
  • The generated SQLite server now accepts Windows file: URIs in RIDU_SQLITE_PATH. To use them
    in an existing project, copy sqliteDatabasePath from cmd/server/main.go in a new project.

This is a pre-1 release with breaking contracts; keep the coordinated packages aligned. Production
still runs as a Go binary with its static admin embedded, without a JavaScript server.