Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What might ara 2.0 look like ? #388

Open
dmsimard opened this issue May 20, 2022 · 4 comments
Open

What might ara 2.0 look like ? #388

dmsimard opened this issue May 20, 2022 · 4 comments
Labels

Comments

@dmsimard
Copy link
Contributor

dmsimard commented May 20, 2022

An issue to discuss this blog post (because the blog doesn't have comments enabled): https://ara.recordsansible.org/blog/2022/05/19/what-might-ara-2.0-look-like/

Thank you for reading and providing your feedback !

@dmsimard dmsimard added the meta label May 20, 2022
@dmsimard dmsimard pinned this issue May 20, 2022
@dericcrago
Copy link

👋 hi @dmsimard - thanks for writing up the blog post with your thoughts. Perhaps not the feedback you're looking for, but the explanation about going from flask to django with ara 0.x to ara 1.x got me thinking... Is the next bump, going from django 3.2 to django 4.2 and dropping python < 3.8? I don't know how it will line up with the intended release schedule for ara and I'm sure you're already familiar and thinking about this, but for anyone who isn't, django 4.2 is scheduled to release in April 2023 and django 3.2 is end of extended support April 2024.

https://www.djangoproject.com/download/#supported-versions
https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django

@dmsimard
Copy link
Contributor Author

Hey @dericcrago and thanks for reaching out :)

We're bumping django from 2.2 to 3.2 with the upcoming release of ara (1.6.0) and frankly, thumbs up to the Django maintainers because the update hardly required any changes (see PR).

I'm not sure whether or not to expect the same thing for Django 4.2, there are already reports of issues when trying with django 4.x: #393

That said, I don't think an update to django, by itself, is sufficient to warrant a major version bump. It needs to signal breaking changes and backwards incompatibility and I think we can get away with updating django without doing much of that.

When we start talking about refactoring the database model -- I talk in the blog post about JSONField which landed in django 3.2.
I haven't even started to look at doing it yet but I know for sure that the changes are going to be significant enough to cause some amount of backwards incompatibility.

Perhaps everything could be made compatible but it would require a lot of work and a lot of time to an extent where it may not be sustainable for a little humble project with few contributors and that's why I would consider taking that opportunity to not carry that maintenance burden and allow ourselves to break compatibility.

Hope that makes sense.

@dericcrago
Copy link

@dmsimard - yep, that makes sense and I agree with all of that. You might even be able to get away with a database migration as part of the upgrade documentation to make changing any fields seamless as well. Django 4.2 does drop python < 3.8 though, would you put that in a major or minor release?

@dmsimard
Copy link
Contributor Author

We will learn about how complicated database migrations will be in due time :p

To give a bit of perspective, ara 1.5.8 is the last release that will support python3.5 but that's because 1.6.0 will ship with django 3.2 which dropped support for it. I consider that it's a big enough change to warrant going from 1.5 to 1.6 but not from 1.x to 2.0.

Otherwise, Django 4.2 is still some ways out:
release-roadmap 4cf783b31fbe

Judging by that timeline, I would like to think we could work through the database (and to an extent, the API) refactor and reach a 2.0 before 4.2 comes out and then maybe it would warrant a 2.1 or something.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants