Skip to content

aiohttp 3.0 release #2343

Closed
Closed

Description

@asvetlov

I'd like to name the next release 3.0
3.0 means the major.

Let's drop Python 3.4 and use async/await everywhere.
Another important question is what 3.5 release to cut off?

Honestly I want to support 3.5.3+ only: the release fixes well known ugly bug for asyncio.get_event_loop().
Debian stable has shipped with Python 3.5.3, not sure about RHEL.
All other distributions with faster release cycle support 3.5.3 too at least or event 3.6.

The transition should not be done at once.

  1. Let's pin minimal required Python version first in setup.py.
  2. Translate test suite to use async/await.
  3. Modify aiohttp itself to use new syntax.

Every bullet except number one could be done in a long series of PRs, part by part.

BTW at the end I hope to get minor performance increase :)

Activity

  1. added this to the 3.0 milestone on Oct 18, 2017
  2. samuelcolvin commented on Oct 18, 2017

    @samuelcolvin
    Member

    async/await everywhere. 🍾 🎆

  3. kxepal commented on Oct 18, 2017

    @kxepal
    Member

    I think at 3.0 time it would better to drop even 3.5 support.

  4. fafhrd91 commented on Oct 18, 2017

    @fafhrd91
    Member

    +1

    We should drop all depredations. Convert write method for response and send method for websockets to real coroutines

  5. fafhrd91 commented on Oct 18, 2017

    @fafhrd91
    Member

    @kxepal what we can simplify by dropping 3.5?

  6. samuelcolvin commented on Oct 18, 2017

    @samuelcolvin
    Member

    @kxepal what we can simplify by dropping 3.5?

    • async generators are way simpler with just 3.6
    • f-strings can make formatted strings much cleaner
    • less confusion about which patch of 3.5 is support and which not. Simply ">=3.6".

    The show stopper I guess is Debian, I don't know when it will upgrade to 3.6.

  7. asvetlov commented on Oct 18, 2017

    @asvetlov
    MemberAuthor

    We should drop all deprecations. Convert write method for response and send method for websockets to real coroutines

    +100. But let's be careful about dropping everything. Let's look on every deprecation one by one.
    Sure, we have a deprecation warning for old-styled middlewares for example.
    Removing the support for these middlewares just in two months after introduction is too rude.

  8. samuelcolvin commented on Oct 18, 2017

    @samuelcolvin
    Member

    on old middleware: I agree with have to keep it for longer.

  9. kxepal commented on Oct 18, 2017

    @kxepal
    Member

    @samuelcolvin
    I wonder if we should count one of Linux distributive as stopper for us. So far, we don't target to any specific Linux distro support AFAIK.

  10. asvetlov commented on Oct 18, 2017

    @asvetlov
    MemberAuthor

    @samuelcolvin @kxepal I would love to drop 3.5 at all but one of our major downstreams is https://home-assistant.io/
    @balloob asked me to keep 3.4 support until RaspberryPi will have 3.5 in batteries by default.
    They are depending from Debian. I hope it's done.

    aiohttp 2.3 was waiting for a long (we had security issues etc.), I hope to release 3.0 at the end of the year.

  11. kxepal commented on Oct 18, 2017

    @kxepal
    Member

    @asvetlov
    How about keep 2.3.x release with 3.4 and 3.5 support while drop them for 3.0? IIRC we had some LTS policy for such cases.

    I fear that trying to satisfy everyone will keep us slow in adapting new features.

  12. fafhrd91 commented on Oct 18, 2017

    @fafhrd91
    Member

    @asvetlov
    I am talking about deprecations that was introduced <= 2.0, sure deprecation from 2.3 we should keep.

    @kxepal
    3.5 does not make code backward incompatible like 3.4,
    we still can implement async generators, they are just not supported by 3.5

    -1 for dropping 3.5

  13. fafhrd91 commented on Oct 18, 2017

    @fafhrd91
    Member

    big -1 for splitting release branches.

  14. jettify commented on Oct 18, 2017

    @jettify
    Member

    Since 3.7 coming soon 3.5.3+ sound reasonable, but dropping 3.5 altogether might be very problematic for home-assistant.io people.

  15. kxepal commented on Oct 18, 2017

    @kxepal
    Member

    Ok, not today, 3.5, not today (:

    P.S. May be offtopic, but why it's so problematic for home-asistant.io to move to 3.6?

  16. 39 remaining items

  17. webknjaz commented on Feb 8, 2018

    @webknjaz
    Member

    it's not that hard: just a bit of copy-paste involved :)

  18. asvetlov commented on Feb 9, 2018

    @asvetlov
    MemberAuthor

    Everything is done.
    https://pypi.python.org/pypi/aiohttp/3.0.0b4 is available for testing.
    I'll publish release tomorrow if nobody will report about problems

  19. fafhrd91 commented on Feb 9, 2018

    @fafhrd91
    Member

    you should for couple more days

  20. asvetlov commented on Feb 9, 2018

    @asvetlov
    MemberAuthor

    On Monday?

  21. fafhrd91 commented on Feb 9, 2018

    @fafhrd91
    Member

    Monday is good, people can test over weekend

  22. asvetlov commented on Feb 9, 2018

    @asvetlov
    MemberAuthor

    ok

  23. samuelcolvin commented on Feb 10, 2018

    @samuelcolvin
    Member

    aiohttp-devtools is ready for a new release as soon as aiohttp is released, required a big rewrite to use AppRunner in a coroutine rather than multiple processes.

  24. asvetlov commented on Feb 10, 2018

    @asvetlov
    MemberAuthor

    cool!
    Checked aiohttp-jinja2 and aiohttp-session, they didn't require changes.

  25. modified the milestones: 3.0, 3.1 on Feb 12, 2018
  26. asvetlov commented on Feb 13, 2018

    @asvetlov
    MemberAuthor

    release is out

  27. lock commented on Oct 28, 2019

    @lock

    This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a [new issue] for related bugs.
    If you feel like there's important points made in this discussion, please include those exceprts into that [new issue].
    [new issue]: https://github.com/aio-libs/aiohttp/issues/new

  28. locked as resolved and limited conversation to collaborators on Oct 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions