torchbox / wagtail-footnotes

MIT License
20 stars 18 forks source link

Wagtail 3.0 Support #29

Closed BrianXu20 closed 2 years ago

BrianXu20 commented 2 years ago

Ticket

Make the current package support Wagtail 3.0.

BrianXu20 commented 2 years ago

Hi @zerolab , Can we have this merge in and have a release? Thank you

jsma commented 2 years ago

I'm not sure I understand the reasoning and decision above https://github.com/torchbox/wagtail-footnotes/pull/29#discussion_r891258536

If someone is using this package with a project that is pinned to Wagtail 2.15, Wagtail itself will constrain the version of Django installed (assuming the project hasn't also pinned the version of Django). But by restricting Django to <4.0 here, this prevents projects from running Wagtail 3 & Django 4.0.x when using wagtail-footnotes.

E.g. with requirements.txt:

wagtail==3.0.1
django==4.0.5
# Install from Github since 0.8.0 is not on PyPI yet
-e git+https://github.com/torchbox/wagtail-footnotes@0.8.0#egg=wagtail-footnotes
pip install -r requirements.txt
...snip...
ERROR: Cannot install -r requirements.txt (line 1), -r requirements.txt (line 3) and django==4.0.5 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested django==4.0.5
    wagtail 3.0.1 depends on Django<4.1 and >=3.2
    wagtail-footnotes 0.8.0 depends on Django<4.0 and >=3.2

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
zerolab commented 2 years ago

That is a valid point @jsma The rule of thumb is to support the Django versions that the supported Wagtail versions do. In this case Wagtail 3.0 supports Django 4 - https://github.com/wagtail/wagtail/tree/stable/3.0.x#compatibility

As an aside, IMHO we should strive to only depend on Wagtail, unless using specific Django functionality that would warrant having specific constraints there too

@kevinhowbrook a 0.8.1 bugfix release?