pallets-eco / flask-debugtoolbar

A toolbar overlay for debugging Flask applications
https://flask-debugtoolbar.readthedocs.io
BSD 3-Clause "New" or "Revised" License
953 stars 146 forks source link

Update PyPI metadata files: add `setup.cfg` etc #164

Closed jeffwidman closed 2 years ago

jeffwidman commented 2 years ago

Update to the newer PyPI / python packaging metadata file structure.

A lot of this was cribbed from how Flask itself exposes its metadata.

jeffwidman commented 2 years ago

I'm not 100% sure of all of these flags, so if anyone sees something amiss, please holler.

jeffwidman commented 2 years ago

@nickjj can you take a look at this PR?

I'd like to land it before tagging a new release that incorporates #157 as this will be smoother pushing it up to PyPI.

nickjj commented 2 years ago

Oh yeah, I know what you mean about not being 100% sure on the flags. This file has always been a thing for me where I get it working in 1 project after lots of experimenting and then copy / paste it in every other project I use.

With that said, I haven't used this style of setting it up but I put your PR side by side with Flask's set up and it looks good based on I don't see anything syntactically different and all of the major properties are present.

One suggestion I'd make is to bump up the python_requires version. Version 2.7 has been end of life since January 2020 and using it nowadays will be a constant battle of compatibility issues.

Flask 1.1.X requires Python 3.5+ and Flask 2.X requires Python 3.7+. Flask 2.X is less than a year old and I know plenty of folks are still using 1.X but I do know a lot of people / companies are using Python 3.7+ since anything before that has been end of life'd too. For example Python 3.5 was released in 2015 and EOL'd in 2020.

With that said, despite Python's support since this is a Flask extension what do you think about sticking with Flask's Python support? That would mean selecting Python 3.5 in this case. Folks can still use the latest and newest versions on their own, this is just the minimum version enforcement from a code compatibility point of view.

The one downside to picking 3.5 over 3.7 is it would limit this code base to using features that only exist in 3.5 or lower. For example f-strings are wildly useful but they're only available in Python 3.6+. It's not the end of the world not to have access to them but it's something to think about.

jeffwidman commented 2 years ago

Yeah, it's definitely time to drop python 2 and bump the minimum version of python 3. However, that's out of scope for this PR, so I filed https://github.com/flask-debugtoolbar/flask-debugtoolbar/issues/165.

I was confused that you mentioned Flask 2.x requiring 3.7, when the blog post says it only requires 3.6+... https://palletsprojects.com/blog/flask-2-0-released/

But let's not chat about that here, do it over in #165