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

Are you willing to consider dropping python2.7 support ? #163

Open
ticosax opened this issue Jan 14, 2019 · 15 comments
Open

Are you willing to consider dropping python2.7 support ? #163

ticosax opened this issue Jan 14, 2019 · 15 comments

Comments

@ticosax
Copy link
Contributor

ticosax commented Jan 14, 2019

https://pythonclock.org/

@lyschoening
Copy link
Contributor

lyschoening commented Jan 14, 2019

Do you have a change in mind that would necessitate dropping Python 2.7 support or that would be more difficult to implement in Python 2.7? At this point, I find that there is not much overhead in maintaining the Python 2 version of the code for this project, so I would not drop support before EOY or before it ceases to be a requirement for official Flask extensions:

An extension currently has to support Python 3.4 and newer and 2.7.

http://flask.pocoo.org/docs/1.0/extensiondev/#approved-extensions

@ticosax
Copy link
Contributor Author

ticosax commented Jan 14, 2019

that would be more difficult to implement in Python 2.7

  • generalizing type annotations
  • maintaining the project
  • driving away potential contributors because of the need to maintain obsolete code

We are less than a year before extinction of python2.7, if ppl are still interested in python 2.7 they will have to use a pinned version of their dependencies anyway.

  • We have to stop at some point. the flask eco-system will also have to move away from it.
  • potion is not an approved extension
  • it will make maintenance easier
  • Plenty of interesting feature will be available: like type annotations, ordered dicts, str vs bytes, no more compatibility code.

You refer to the list of approved extensions, as authority to take decision, but this document seems largely unmaintained and I woudn't rely on those guidelines too strictly.
for instance https://github.com/ask/flask-celery/ is listed while this project has not received contributions since 7years.

I'm afraid that this recommendation of keeping python2.7 is just some historical decision that is no longer valid.

Since you seem to care about python 2.7, can you explain why ?

@lyschoening
Copy link
Contributor

I'm simply cautious about dropping support without good reason. In my view, if there is code that is currently harder to maintain because of support for Python 2 and there is a need to touch that code, that is a good reason to drop support a few months earlier. It sounds as if you are looking to refactor the library significantly and that could be a very good reason.

@ticosax
Copy link
Contributor Author

ticosax commented Jan 17, 2019

We are using potion for our production workload. If you welcome contributions we will do more of them, to make sure potion stays relevant for us, as we need to grow.
Also if we are able to make option attractive again, we might be able to welcome more developers willing to help.
With a bit of anticipation and communication towards a release plan, we should be able to break backward compatibility with a new major version. Explaining for users stuck with python2.7 that potion maintenance will be discontinued for them.
I think it is time to consider dropping python2.7, if you agree, we could discuss here how we get there, in terms of release schedule ?

@lyschoening
Copy link
Contributor

lyschoening commented Jan 17, 2019 via email

@lyschoening
Copy link
Contributor

@ticosax Thanks for your patience. Yes, dropping Python 2.7 support with an upcoming release is on the table. #161 and #162 are also interesting – and overdue – initiatives. What would be a good way to discuss the development that you are looking to have done on Potion to keep it relevant for your products?

@ticosax
Copy link
Contributor Author

ticosax commented Jan 23, 2019

Thanks @lyschoening

What would be a good way to discuss the development that you are looking to have done on Potion to keep it relevant for your products?

I suggest to discuss our intentions on separate github issues. Once we agree, then we'll know we can make the effort to bring improvements knowing that it won't be forgotten.
I expect from the maintainer of the project like you to use your general knowledge and experience to challenge the proposals and keep the project on good track, with a consistent and developer-friendly API, and with the level of quality one would expect to run critical products. In short you'll be a decision maker, which is a tough role !

Be prepared for some controversial debates like dropping some ORM support and encouraging maintenance of them as third party library 😄
That's the kind of things I'd like to discuss, in order to keep the maintenance as sustainable as possible.

Also, to give you some context, coming from django world, most of my technical and governance inspirations will come from django-rest-framework, which I believe choose the right abstractions in order to expose models on an Rest API. This project grow a lot in the last years with an active community behind supporting it, including a rich eco-system of third party libraries. potion could become the equivalent for flask.

@ticosax
Copy link
Contributor Author

ticosax commented Apr 24, 2019

@lyschoening just for your Information, we are maintaining our own fork under infarm/potion. We aim to submit every patches to the upstream repository and keep the delta as small as possible.
Have you considered inviting external maintainers or transferring the project to another organization ? https://github.com/jazzband could be a good option for instance.

@lyschoening
Copy link
Contributor

@ticosax Would you be interested in taking over the project at Infarm?

@ticosax
Copy link
Contributor Author

ticosax commented Apr 25, 2019

Yes, but to be honest I a firm believer that it should become a community project, it means we will probably transfer ownership to jazzband or similar.
Out of curiosity, are you yourself still using potion ?

@lyschoening
Copy link
Contributor

Out of curiosity, are you yourself still using potion ?

No. I can no longer speak for DTU Biosustain, as I have since moved on to another company and am only a part of the organization as a maintainer of potion. Due to changing needs, we did drop potion in favor graphene (GraphQL) in my time at DTU Biosustain and I don't know that this has changed.

Jazzband may be the right option. I will have to reach out to Jazzband as I am not certain I will be able to transfer the biosustain/potion repository. I'll either have to fork the repository or create a new one. As you have correctly observed, maintenance under the current repository is certainly not the way forward.

@ticosax
Copy link
Contributor Author

ticosax commented Apr 26, 2019

I see, that explain a lot.
I suggest, I take care of transferring the project to jazzband, as it can be a tedious process.
For that you would only need to transfer ownership to infarm first.
If you agree, I'm going to delete our fork, to make some clearance for your transfer.
Please confirm.

@lyschoening
Copy link
Contributor

@ticosax Due to internal politics I can't transfer the repository away from the DTU Biosustain organization. Otherwise, I would likely have done so much earlier. We can make a copy of the repository and update this repository with a message pointing to the new location. This of course means that we'll lose the stars and any current issues.

I will do another push to allow a direct transfer to another organization, but I cannot guarantee its success.

@ticosax
Copy link
Contributor Author

ticosax commented Apr 29, 2019

I see, so it means we won't have access to the namespace on pypi either, I assume.
You should advertise the state of the project on the README anyway, to help contributors managing their expectation.
We don't care much about maintaining this project on the long run. We are also transitioning to GraphQL, In the mean time we want to make sure potion stays at quality level it should be, Like supporting python3.7 and eventually bring some performance optimization here and there. Low hanging fruit only.

@lyschoening
Copy link
Contributor

I see, so it means we won't have access to the namespace on pypi either, I assume.

I do have access to the namespace on PyPI and can share that with other maintainers. Only the access to the GitHub repository was retained, so all that would be lost with a transfer is the stars and automatic redirect. It would be good to move the project over to Jazzband regardless.

You should advertise the state of the project on the README anyway, to help contributors managing their expectation.
We don't care much about maintaining this project on the long run. We are also transitioning to GraphQL, In the mean time we want to make sure potion stays at quality level it should be, Like supporting python3.7 and eventually bring some performance optimization here and there. Low hanging fruit only.

That is fair enough. Other than supporting OpenAPI I don't think there is very much to be done anyway. It's a fine opinionated REST API framework for Flask + single page application pairings that need a simple permission system and can benefit from the TypeScript or Python clients. GraphQL covers the pains this library was written to solve and much more, so anyone considering Potion should first look if they can find comparable tooling for GQL, e.g. Graphene-SQLAlchemy.

I will update the README to indicate that the project essentially in maintenance mode.

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

No branches or pull requests

2 participants