Skip to content

v0.0.35

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Oct 23:25
· 3 commits to main since this release
8ea60d1

Before you upgrade

Until the first public release, nothing upgrades a database in place. A build whose database schema differs from the one your instance holds refuses to start on it, changes nothing in the file, and says so in its log. The build that wrote the file can still read it, so going back to that build brings the instance back.

To try carrying your data into this build, take an export with the build that wrote the file (GET /export?format=archive&state=any), start this build on a fresh file, and restore the archive there (POST /restore). The state=any parameter includes trashed items. Until the first public release, archive compatibility is guaranteed only for the build that wrote the archive. Another build can refuse it, and a successful restore does not guarantee that every field from the original database was preserved. Keep the original database, its build, and the export so you can return to the original instance.

In the container image, a refused database leaves the container running and unhealthy, with the message in its log, rather than restarting it into the same refusal. deploy/README.md says what to do next.

Changes that need action

  • Views hold no layouts. A view is a title, a query, an optional sort and an optional group. A request that sends layouts or a layout option is refused 400 validation_error. A view saved with layouts drops them the next time it is changed. marfa device items list --layout and marfa device views groups --layout are gone, and so is a group's sum. Send group: null to clear a grouping (#2391).
  • Notes, articles and messages no longer require a body (#2392).

New

  • A view filters by an edge and by source through its filter. A working copy answers a backref condition where it holds that edge type whole (#2391).
  • Every edge type names both ends. label names the source end, and the optional reverse_label names the target end. Without reverse_label, the label names both ends, which is a two-way relation. Without label, one is made from the id (#2394).
  • Moving a type is one step. POST /types/{id}/move and marfa types move move every item of a type, items in the bin included. Once nothing of the old type is left, they rewrite the folders, views and webhooks that name it. DELETE /types/{id} refuses while a folder, view or webhook names the type, and lists them (#2395).
  • Every attached file comes down into a folder beside its document, embedded or not (#2393).

Fixed

  • A folder pull no longer deletes and rewrites an attached or embedded file on every pass when a second folder on the same machine also holds it (#2393).

What's Changed

  • test(server): give the audit census room on a busy runner by @aicayzer in #2384
  • chore(deps): bump undici from 8.11.2 to 8.12.2 by @dependabot[bot] in #2360
  • feat(types): stop requiring body on notes, articles and messages by @aicayzer in #2392
  • test(cli): read the whole request before answering on the test socket by @aicayzer in #2396
  • feat(views): hold a view's sort and group, not layouts by @aicayzer in #2391
  • feat(edges): name both ends of every edge type with a label and a reverse label by @aicayzer in #2394
  • feat(server): move a type's items in one step by @aicayzer in #2395
  • feat(core): write every attached file beside its document by @aicayzer in #2393

Full Changelog: v0.0.34...v0.0.35