gunicorn
gunicorn copied to clipboard
gunicorn 21
meta issue to track changes needed to release the version 21. After the talk I gave at the FOSDEM I thought it would be interesting to track the different tasks we need for the new version. Feedback and help is more than welcome.
tasks
- [ ] release imsg
- [ ] add regression test to the supervision
- [ ] replace the temporary file notification system by imsg
- [ ] add/increase tests for the logging (if needed)
- [ ] handle logging via a separate process coupled with imsg
- [ ] add new Proc class
- [ ] add HTTP 2 support
- [x] remove all python2 compatibility bits (PR: #1764)
cc @berkerpeksag @tilgovi
What does:
remove all python3 compatibility bits
Mean? That's not gunicorn dropping support for Python 3.x is it?
@dstufft ah... fixed it. I meant python 2 of course :) Thanks!
So, does that mean dropping support for Python 2.x then? :)
@dstufft totally. New version will only support python 3. Python 2 will only have the maintenance updates on the 19.x branch.
Cool. Thanks!
@benoitc For HTTP/2, if you're interested in supporting it using hyper-h2 I may be able to spare some time to do help out with integration work.
@dstufft we talk about that last year in #1029 :)
@Lukasa nice! It seems to have the exact level of abstraction needed for gunicorn. Maybe we could sync each others next week on IRC when I'm back from the FOSDEM? I will toy with it in the mean time :)
@benoitc You bet! Come join us in #python-hyper on freenode whenever suits.
:+1:
and some abstractions for non http protocol, like Thrift-rpc? It's already doable with ugly hack with gunicorn 19.
@Lukasa was busy last week. Let's try to discuss that on #gunicorn next week or your channel if you want to.
@athoune what would it requires?
@benoitc so gunicorn 20 will not support Python 2.7? Why not just drop 2.6?
@RyPeck Support for 2.x is not dropped. What it means is that gunicorn 19.X will get maintenance updates but no more new features, while gunicorn 20.x and sup will continue to evolve, just like python 2.x is vs 3.x. There may be from time to time backports anyway.
At least that the plan :) Any opinion is welcome.
@benoitc good to know - if you could codify that plan somewhere more obvious that would be great! In the mean time I'll update my relevant requirements files to gunicorn<20 which should always get me the latest 19.x.y.
@athoune
and some abstractions for non http protocol, like Thrift-rpc? It's already doable with ugly hack with gunicorn 19.
IMO, if the abstractions in gunicorn holds relatively the same, it won't be that dirty for non http protocols. See our https://github.com/eleme/gunicorn_thrift/ , we'll keep up with gunicorn 20 once it's released.
It would be good to add to the README.md and docs of 19+ that 19.x is the last to support Python2 but will continue to be maintained.
Any news on a new release? Stumbled across this fix that I'd like to see released to the wild: 610596c9d93b3c9086becd6212ab4ba81d476dc4
@jimmywan Gunicorn 20 is not ready yet but we can indeed make a new 19.x release.
@berkerpeksag i guess we can cut a release now. Then do some grooming Thoughts ? cc @tilgovi
Just curious. Do you have an ETA for release? It looks like it has been about a year since the last release. I would like to get #1616 into production.
@altaurog see #1634 for the next (19.8.0) release
remove all python2 compatibility bits
As a first step towards this, is there any interest in first dropping support for EOL Python versions: 2.6 and 3.2-3.3? They no longer receive security updates (or any updates) from the core Python team and they're little used.
Here's the pip installs for Gunicorn from PyPI for last month:
| python_version | percent | download_count |
|---|---|---|
| 2.7 | 43.17% | 310,345 |
| 3.6 | 27.45% | 197,303 |
| 3.5 | 25.37% | 182,372 |
| 3.4 | 3.83% | 27,540 |
| 3.7 | 0.07% | 504 |
| 2.6 | 0.06% | 397 |
| 3.3 | 0.05% | 348 |
| 3.2 | 0.00% | 27 |
| None | 0.00% | 7 |
Source: pypinfo --start-date -46 --end-date -19 --percent --pip --markdown gunicorn pyversion
I doubt we have a lot of compatibility code for those EOL Pythons. We could probably get rid all of them (all pre 3.5 versions) in same PR.
Oh, by the way, thanks for the installation stats!
Here's a few more stats for good measure.
$ pypinfo --start-date -46 --end-date -19 --percent --pip --markdown gunicorn system distro
| system_name | distro_name | percent | download_count |
|---|---|---|---|
| Linux | Debian GNU/Linux | 49.80% | 352,524 |
| Linux | Ubuntu | 24.38% | 172,604 |
| Linux | None | 5.94% | 42,071 |
| Linux | Alpine Linux | 5.92% | 41,902 |
| Linux | Amazon Linux AMI | 4.24% | 30,016 |
| Linux | CentOS Linux | 3.88% | 27,471 |
| Linux | debian | 2.89% | 20,454 |
| Darwin | macOS | 1.41% | 9,965 |
| Windows | None | 0.79% | 5,610 |
| Linux | Red Hat Enterprise Linux Server | 0.74% | 5,255 |
$ pypinfo --start-date -46 --end-date -19 --percent --pip --markdown gunicorn country
| country | percent | download_count |
|---|---|---|
| US | 84.67% | 545,887 |
| IE | 3.58% | 23,060 |
| DE | 2.69% | 17,326 |
| FR | 1.80% | 11,628 |
| GB | 1.40% | 9,051 |
| CA | 1.40% | 8,999 |
| AU | 1.16% | 7,503 |
| NL | 1.15% | 7,444 |
| RU | 1.14% | 7,349 |
| JP | 1.01% | 6,496 |
removing support of python2 is planned for next major release.
However, one stats though you were forgetting is how much I were using python2 ;) Hopefully not that much anymore.
On Mon, Mar 19, 2018 at 10:02 AM, Hugo [email protected] wrote:
Here's a few more stats for good measure.
$ pypinfo --start-date -46 --end-date -19 --percent --pip --markdown gunicorn system distro system_name distro_name percent download_count Linux Debian GNU/Linux 49.80% 352,524 Linux Ubuntu 24.38% 172,604 Linux None 5.94% 42,071 Linux Alpine Linux 5.92% 41,902 Linux Amazon Linux AMI 4.24% 30,016 Linux CentOS Linux 3.88% 27,471 Linux debian 2.89% 20,454 Darwin macOS 1.41% 9,965 Windows None 0.79% 5,610 Linux Red Hat Enterprise Linux Server 0.74% 5,255
$ pypinfo --start-date -46 --end-date -19 --percent --pip --markdown gunicorn country country percent download_count US 84.67% 545,887 IE 3.58% 23,060 DE 2.69% 17,326 FR 1.80% 11,628 GB 1.40% 9,051 CA 1.40% 8,999 AU 1.16% 7,503 NL 1.15% 7,444 RU 1.14% 7,349 JP 1.01% 6,496
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/benoitc/gunicorn/issues/1195#issuecomment-374142996, or mute the thread https://github.com/notifications/unsubscribe-auth/AAA4ojqC7BLlbFyIS6Mu49hrggRel_28ks5tf3QsgaJpZM4HPzot .
https://github.com/benoitc/gunicorn/pull/1764 has been merged which drops Python 2 support, and can be checked off the task list above.
@hugovk done!