Closed joffrey-bion closed 6 years ago
I usually use data-artifacts that follow a different versioning schema/schedule to accomplish that. That way I am sure that no incompatibility sneaks in. Which method did you consider using?
As an alternative the GUI could provide a button to "try anyway".
What do you mean by data artifact? I have never heard of that.
I was thinking about generating some sort of schema from the model files of the Livedoc
class and children. Taking the hash of the schema, I could check for changes and upgrade the version automatically when the hash changes. But for starters, just a manual increment would already be an improvement, but it's subject to human errors.
Otherwise, yes, the UI could provide some sort of mechanism to allow forcing.
The data artifact is just another jar file that only contains the data classes/schema you would return in a controller.
Since the data artifact does not have any other dependencies (except for annotations) it cannot reference anything that it does not contain itself, thus it is the only thing that determines the UI/backend compatibility. That way you have a fixed data version (= jar version). For the versioning schema you can something like semver.
The data-artifact does not contain any controllers or logic. It is independent from Spring and other frameworks. (it might contain annotations for compatibility/serialization though). Theoretically that artifact and a json serializer is all you need to test the frontend.
In my opinion, this ticket needs a badge 'Prio: high'
We have several backends and a hosted docker container Livedoc-Ui. There are already outdated jsondoc backends because we can not update every backend at once with a new livedoc version
Understood, I'll do my best to work on it soon, but my free evenings are unfortunately scarce. I first need to finish the overridable IDs feature, so that problems like https://github.com/joffrey-bion/livedoc/issues/118 and https://github.com/joffrey-bion/livedoc/issues/122 can be worked around while waiting for a proper fix.
Currently it's frustrating not to be able to use an old JSON with a new version of livedoc even if the API didn't change. It'd be nice to version the spec file independently from the library so that it's actually possible.