@@ 1,12 1,20 @@
# forage
+## V0 Warning
+
+This application was build against the Mealie v0 API. This version of Mealie is no longer being developed, work having shifted to Mealie v1. The Mealie v1 API is vastly different and incompatible with v0. Consequently, this version of Forage is being frozen, and I've stopped work on it. In other environments I'd just release a new app version under the same name with some backwards compatibility, but because of several challenges[^1] and the target platform -- mobile -- where size matters, I'm planning on releasing a rewritten app under a different name that's compatible only with Mealie v1.
+
+[Forage2](https://sr.ht/~ser/forage) is in early stages; because downstream packagers depend on source locations not moving, there'll have to be some restructuring; the project README will point you in the right direction if you're looking for source info on the rebuild.
+
+## And now for something completely different
+
A shopping list front-end for your (self-hosted) Mealie instance.
[![Build status](https://builds.sr.ht/~ser/forage/.build.yml.svg)](https://builds.sr.ht/~ser/forage/.build.yml?) ★ [Releases](https://downloads.ser1.net/software/forage) ★ [Bugs](https://todo.sr.ht/~ser/forage)
[Mealie](https://hay-kot.github.io/mealie/) is self-hosted recipe manager, meal planner, and shopping list web app. Forage is an application aimed to improve the shopping list experience of Mealie by providing a native (non-web) interface via the Mealie API.
-With the release of v1, Forage can work entirely in offline mode without a server. Without a server, it functions as a non-connected shopping list app, albeit currently limited in editing.
+With the release of Forage v1, Forage can work entirely in offline mode without a server. Without a server, it functions as a non-connected shopping list app, albeit currently limited in editing.
There is a public chat available at [\#forage:matrix.org](https://app.element.io/#/room/#forage:matrix.org).
@@ 134,3 142,7 @@ podman start mealie
```
I then proxied from Caddy to 9284. YMMV, so I'd recommend following instructions on Mealie's site.
+
+[^1] The Mealie v1 API is in no way backwards compatible; it's about as different an API as could possibly be. In most ways, it's an improvement on v0, which was too simple and caused challenges for clients. On the other hand, it was quite simple, and easy to write clients against. The new API follows better practices, and especially for clients such as Forage, but it is also more complex; data structures have more depth, there's paging to deal with, the data is more rich, and the types of fields have changed.
+
+ It's _so_ different, my attempts to adapt Forage to support both v0 and v1 failed. It might have been possible to shove v0 objects into a v1 structure, but the field type changes and introduction of enumerables really set any backwards compatibility effort up for failure. Possibly a greater challenge is that Fyne tightly couples the view to the model, to the point of including its own database and filesystem. While there may be good reasons for this, it makes attempts to support multiple conflicting data models nearly impossible, and even changing a Fyne app to use a new data model is a large effort. Fyne quickly evolved from a library to a platform, and I have strong opinions about platforms, re-enforced by experiences such as this.