django-cms / djangocms-versioning

General purpose versioning package for Django CMS 4 and above.
Other
33 stars 29 forks source link

Django-FSM archived: use django-viewflow instead. #400

Closed joshyu closed 1 month ago

joshyu commented 2 months ago

Hi team,

Yesterday django-fsm released a new version 3.0.0 and announced that django-fsm is archived, we should use django-viewflow instead.

fsbraun commented 2 months ago

@joshyu Thanks for pointing this out. We might want to consider dropping the dependency altogether. It's only a few lines of code (literally, part of the project's __init__ file plus we might want to port some of the tests.)

django-viewflow, on the other hand, is bulky, opinionated, and an overkill for the functionality we need. @marksweb @Aiky30

Aiky30 commented 2 months ago

I agree, this is a pretty bad move by the author. We could consider forking it as an alternative option too rather than making versioning bigger than it already is.

Agree completely that django-viewflow is not a direct replacement and is a bloated UI framework for django. I'm not even sure why the author is trying to push it as an alternative.

marksweb commented 2 months ago

Someone's turned FSM into a cash cow sass product by the looks of it.

Will try to find time to look at this later.

fsbraun commented 2 months ago

I could imagine bundling the FSM functionality and versioning's conditions framework both into a small package for easier reuse, maybe even in the core - a bit like classy tags (django-conditions?).

I can imagine a decent amount of improvement in readability: fsm allows declarative rules for state transitions, the conditions framework allows declarative rules for checking availability of (any) action. I hacked something together here: https://github.com/fsbraun/django-conditions (just for getting the discussion started).

rolandf commented 2 months ago

And the other issue is the license. I like Django/Django cms because their license allow me to build a business around it. I tend to avoid viral licenses.

marksweb commented 2 months ago

Quite like Fabian's idea of django-conditions. 👍

jrief commented 2 months ago

There is a fork of django-fsm: https://github.com/pfouque/django-fsm-2 which seems to be maintained.

I am strictly against using django-viewflow for the very simple reason, that it is not compatible with MIT/BSD/Apache - licensed software.