v2 is still not complete. A lot of cleanup still needs to be done.
In particular, entities still need some care. However, most of it
is there, and keeping up with two branches is annoying.
This also lets me close a lot of issues to reduce noise
and focus on the important ones.
Closes#354 (input entities have been reworked).
Closes#902 (sessions were overhauled).
Closes#1125, #3253, #1589, #1634, #3150, #3668 (updates are reworked, gaps are properly handled now).
Closes#1169 (2.0 is now merged).
Closes#1311 (proper usage should not trigger this issue on the reworked connection code).
Closes#1327 (there have been some stringify changes).
Closes#1330 (gaps are now detected).
Closes#1366 (sessions are now async).
Closes#1476, #1484 (asyncio open connection is no longer used).
Closes#1529 (commonmark is now used).
Closes#1721 (update gaps are now properly handled).
Closes#1724 (a gap that fixes this will eventually trigger).
Closes#3006 (force_sms is gone).
Closes#3041 (a clean implementation to get difference now exists).
Closes#3049 (commonmark is now used).
Closes#3111 (to_dict has changed).
Closes#3117 (SMS is no longer an option).
Closes#3171 (connectivity bug is unlikely to be a bug in the library).
Closes#3206 (Telethon cannot really fix broken SSL).
Closes#3214, #3257, #3661 (not enough information).
Closes#3215 (this had already been fixed).
Closes#3230, #3674 (entities were reworked).
Closes#3234, #3238, #3245, #3258, #3264 (the layer has been updated).
Closes#3242 (bot-API file IDs have been removed).
Closes#3244 (the error is now documented).
Closes#3249 (errors have been reworked).
Updated some documentation regarding raw API.
get_permissions has been adjusted.
Expose more parameters when sending messages.
Update chat action.
Support sending spoilers.
Update buttons.
Use a fixed-size queue instead of a callback to deal with updates.
Port the message box and entity cache from grammers to start off
with a clean design.
Temporarily get rid of other cruft such as automatic pings or old
catch up implementation.
Entity cache uses are removed. It was a source of ever-growing memory
usage that has to be reworked. This affects everything that tried to
obtain an input entity, input sender or input chat (such as the
SenderGetter or calls to _get_entity_pair). Input entities need to be
reworked in any case.
Its removal also affects the automatic cache of any raw API request.
Raise last error parameter is removed, and its behaviour made default.
The connection type parameter has been removed, since users really have
no need to change it.
A few more attributes have been made private, since users should not
mess with those.
Forward and delete are meant to delete lists.
Now only lists are supported, which should not be an issue
as message.forward_to and message.delete both exist.
mark_read really only works with one message at a time,
so list support was removed for it, as well as the now
redundant max_id.
Reduce abstraction leaks. Now the transport can hold any state,
rather than just the tag. It's also responsible to initialize on
the first connection, and they can be cleanly reset.
asyncio connections are no longer used, in favour of raw sockets,
which should avoid some annoyances.
For the time being, more obscure transport modes have been removed,
as well as proxy support, until further cleaning is done.