onepercentclub / bluebottle

Bluebottle
BSD 3-Clause "New" or "Revised" License
11 stars 18 forks source link

Django 3 #4313

Open jayvdb opened 4 years ago

jayvdb commented 4 years ago

I see there is lots of work going on for Python 3 support at https://github.com/onepercentclub/bluebottle/pull/4292

I tried my hand at leveraging off that to see if I can get Django 3 working, and am mostly successful in getting it operational enough to explore the app locally. I am using django-compat-patcher to do a lot of the heavy lifting of cross-Django-version compatibility.

Latest CI result at https://travis-ci.org/github/jayvdb/bluebottle/jobs/732862786 Summary: of 1228 tests, 225 failures & 184 errors.

A lot of the errors are repetitive, and most are due to the dependencies being pinned to Django 1.x compatible versions. I'm trying to unpin only dependencies that really need unpinning, so-as to reduce the variability between Django 1.x and Django 3.x versions of bluebottle.

Other dependent PRs / branches

Why Django 3?

  1. Because most dependency projects are already dropping Django 2, so if there are problems with porting to Django 2 it would be harder to get help,
  2. All top-tier distros have dropped Django 2 from their current or pending release, and
  3. I expect the Django 3 effort to take a while to stablise and before existing bluebottle production systems would be ready to switch to Django 3, and by then Django 2 will be even more dead.
  4. Creating migration across major Django versions is quite a bit of effort. May as well skip one.

Obviously most of this needs to wait until the Python 3 work lands, but I'd like to know the best way to structure this in order to get favourable reviews to get things merged early.

I'd like to eventually be running another Travis job for Django 3, so that Django 1.x and Django 3.x are co-existing in the repo until you're ready to switch off Django 1.x . Many of my patches are already able to co-exist on Django 1.x, using fallbacks where necessary. The Django 3 job could be allowed to fail, so that it doesnt halt ongoing development of the project.

jayvdb commented 3 years ago

ping @gannetson

gannetson commented 3 years ago

Thanks. Python 3 branch is already merged and we are fully compatible. If I make ask @jayvdb: How did you find this repository and why did you choose to contribute?

jayvdb commented 3 years ago

@gannetson , this is Django 3. Please read the issue.

I found it on GitHub. I am using bluebottle. And so we give back too.

https://github.com/onepercentclub/django-tenant-extras/pull/58 is mentioned above and I pinged you there also.

jayvdb commented 3 years ago

Current list of related green PRs in @onepercentclub :

No progress on any of them yet. ping @gannetson . They are all easy wins.

gannetson commented 3 years ago

Hey @jayvdb been really busy. Will look into it shortly.