flask-restless icon indicating copy to clipboard operation
flask-restless copied to clipboard

Flask-Restless 1.0.0 is unfixably incompatible to 0.17.0…

Open Natureshadow opened this issue 8 years ago • 4 comments

…which is known and the intention of version 1.0.0.

However, it has turned out in production that migrating to the new JSONAPI stuff is not always possible, and in at least one project it is not desired at all. We have to decide now whether to move to 1.0.0 and unnecessarily re-design the entire API, or drop Flask-Restless and lose most of its conveniences.

I tried forking flask-restless as flask-restless-legacy, but it starts producing strange behaviour when renamed, and I didn't really find out why.

In any case, do you think there would be some way to keep the traditional flask-restless around? I think that JSONAPI is a huge mess in itself, but apart from that, as explained above, migration is not always possible, and as things stand now, having both the traditional and the new flask-restless is not possible.

Natureshadow avatar Nov 29 '16 14:11 Natureshadow

In retrospect it was not a good decision for me to make such a drastic change without creating a new project entirely. My apologies for that. I have definitely learned a lot about managing open source software while working on this project the last few years. However, the 0.17.0 version of Flask-Restless has so many problems, I don't feel comfortable recommending anyone to use it. So I'm going to mark this as "won't fix".

My advice is to do what you attempted, create a fork and replace every occurrence of flask_restless with flask_restless_legacy (or whatever name you like). I'm not sure exactly what the strange behavior is, but take a look at the Flask Extension Development guidelines. Direct me to your fork if you want me to take a quick look and see if I can help.

As a last resort, you will always be able to check out the 0.17.0 tag of the Git repository, or download the tarball for that version at https://github.com/jfinkels/flask-restless/releases/tag/0.17.0.

jfinkels avatar Dec 15 '16 21:12 jfinkels

OK, I will give it another try tomorrow.

You know, I would like to get both versions into the Debian distribution. I expect other people to have the same issue, and I'd rather have at least some maintenance and security support for the legacy version by having it maintained in a distribution than people operating software with some old dependency they grabbed form just somewhere.

That said, do you have a roadmap for the 1.0.0 release? To get it into Debian 9, I would have to get it uplaoded by middle of January.

Natureshadow avatar Dec 15 '16 21:12 Natureshadow

While I understand that the Debian release cycle can be slow and therefore it is important to get things packaged as timely as possible, this will not be ready by then. There are still a few crucial things that need to get done, including creating a migration guide (#535) and full association proxy support (#480).

jfinkels avatar Dec 15 '16 21:12 jfinkels

I know this is probably no longer relevant to @Natureshadow's original question, but for others that stumble upon this issue, I think that http://thelaziestprogrammer.com/sharrington/web-development/upgrading-to-flask-restless-v1.0.0-part-1 is a good introduction into the changes and how to migrate. @jfinkels maybe including a migration document would help folks?

Good stuff, thanks for supporting Flask-Restless!

sholsapp avatar Jul 13 '17 19:07 sholsapp