gunicorn icon indicating copy to clipboard operation
gunicorn copied to clipboard

gunicorn 21

Open benoitc opened this issue 9 years ago • 48 comments
trafficstars

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)

benoitc avatar Jan 30 '16 13:01 benoitc

cc @berkerpeksag @tilgovi

benoitc avatar Jan 30 '16 13:01 benoitc

What does:

remove all python3 compatibility bits

Mean? That's not gunicorn dropping support for Python 3.x is it?

dstufft avatar Jan 30 '16 16:01 dstufft

@dstufft ah... fixed it. I meant python 2 of course :) Thanks!

benoitc avatar Jan 30 '16 16:01 benoitc

So, does that mean dropping support for Python 2.x then? :)

dstufft avatar Jan 30 '16 16:01 dstufft

@dstufft totally. New version will only support python 3. Python 2 will only have the maintenance updates on the 19.x branch.

benoitc avatar Jan 30 '16 16:01 benoitc

Cool. Thanks!

dstufft avatar Jan 30 '16 16:01 dstufft

@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.

Lukasa avatar Jan 30 '16 17:01 Lukasa

@dstufft we talk about that last year in #1029 :)

benoitc avatar Jan 30 '16 17:01 benoitc

@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 avatar Jan 30 '16 17:01 benoitc

@benoitc You bet! Come join us in #python-hyper on freenode whenever suits.

Lukasa avatar Jan 30 '16 17:01 Lukasa

:+1:

tilgovi avatar Jan 30 '16 23:01 tilgovi

and some abstractions for non http protocol, like Thrift-rpc? It's already doable with ugly hack with gunicorn 19.

athoune avatar Jan 31 '16 21:01 athoune

@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 avatar Feb 07 '16 22:02 benoitc

@benoitc so gunicorn 20 will not support Python 2.7? Why not just drop 2.6?

RyPeck avatar May 30 '16 23:05 RyPeck

@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 avatar May 31 '16 17:05 benoitc

@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.

RyPeck avatar May 31 '16 17:05 RyPeck

@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.

wooparadog avatar Nov 16 '16 12:11 wooparadog

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.

Code0x58 avatar Aug 31 '17 07:08 Code0x58

Any news on a new release? Stumbled across this fix that I'd like to see released to the wild: 610596c9d93b3c9086becd6212ab4ba81d476dc4

jimmywan avatar Oct 12 '17 01:10 jimmywan

@jimmywan Gunicorn 20 is not ready yet but we can indeed make a new 19.x release.

berkerpeksag avatar Oct 12 '17 05:10 berkerpeksag

@berkerpeksag i guess we can cut a release now. Then do some grooming Thoughts ? cc @tilgovi

benoitc avatar Oct 16 '17 07:10 benoitc

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 avatar Mar 18 '18 14:03 altaurog

@altaurog see #1634 for the next (19.8.0) release

Code0x58 avatar Mar 19 '18 00:03 Code0x58

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

hugovk avatar Mar 19 '18 08:03 hugovk

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.

berkerpeksag avatar Mar 19 '18 08:03 berkerpeksag

Oh, by the way, thanks for the installation stats!

berkerpeksag avatar Mar 19 '18 08:03 berkerpeksag

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

hugovk avatar Mar 19 '18 09:03 hugovk

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 .

benoitc avatar Mar 20 '18 10:03 benoitc

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 avatar Sep 04 '18 10:09 hugovk

@hugovk done!

berkerpeksag avatar Sep 04 '18 10:09 berkerpeksag