-
Notifications
You must be signed in to change notification settings - Fork 613
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kindly Clarify Stability Policy #686
Comments
Bot API handles all backward-compatibility itself. If you don't want to break backward compatibility while updating the library, then you can add new methods and fields, but also keep all removed fields and changed methods, only marking them as deprecated. All old code will continue to work subject to interaction of the bot with new features. There are no reasons to ever remove backward compatibility from Bot API. API versioning only creates new issues without actually solving anything. You can't pretend that new features don't exist in |
Thank you for your swift reply. IMO it would be helpful to have this statement as official part of https://core.telegram.org/bots/api. Could you kindly also comment on point 2.ii? I found one case in the very early days of the bot API that would have been relevant IISC: https://core.telegram.org/bots/api-changelog#july-2015
If a wrapper assumes that |
It is irrelevant to cite change logs from 2015th.
You can add the new method, but also keep the old method, only marking it as deprecated. |
I realize I made a typo: I meant to ask about 2.iii, which is the scenario that the 2015 case matches. Please excuse my mistake.
I tend to disagree. Without an explicit confirmation about how such cases are handled, my best guess is to have a look at how it was handled previously. Yes, all later cases that I know of were handled differently. But this case is frankly enough to question the reliability of the handling. |
This was a fix of documentation error in 2015th. API wasn't changed. |
I see, thanks for the clarification. As a side note: I'm aware that the Bot API is a free-to-use product and as a user I don't have any say in it's maintenance. OTOH the public TG APIs are clearly a community engagement tool meant to widen the user base and as such the profitability of TG. As such, I hope that you can understand my comments and questions (in this and previous threads) as feedback from the community that are intended to point out aspects of the Bot API that are uncomfortable to use/could be improved. |
I will not make impossible to enforce statements. Also, see https://telegram.org/tos/bot-developers#9-1-unilateral-termination, which is the most precise statement that can be documented. |
Hi.
As maintainer of a Bot API wrapper (python-telegram-bot.org), it's in my interest to ensure a stable interface for the users. For everything that passes data to the Bot API, I need to consider two cases:
So far, the Bot API has done a tremenduous job in ensuring compatibility between versions, shout out for that :)
Unfortunately, the information about only comes with the release notes themself which often contain hints such as "The field is still returned in the object for backward compatibility, but new bots should use the field sticker_type instead.". This makes it harder to implement the logic necessary for the stability as explained above beforehand - currently I'm mainly concerned aboit 2.iii here.
Hence my request
I would like to ask Telegram to document their Bot API stability policy on https://core.telegram.org/bots/api.
Please consider that being explicit about a stability policy can also be a benefit for maintaining the Bot API itself, as it allows to specify when deprecated functionality will actually be dropped such that legacy logic can be removed from the Bot API servers at some point rather than carrying it around for ever.
I'm looking forward to your reply :)
One could even go further and introduce api versioning, where e.g. making requests to
api.telegram.org/v8/…
is guaranteed to be backward compatible for the 8.x series, while switching toapi.telegram.org/v9/…
may contain breaking changes. And/v8
will be removed e.g. once/v10/
is there.This would be an extremely large change though and I'm listing it mostly for completeness :D
The text was updated successfully, but these errors were encountered: