Skip to content
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

git tag patch versions #1627

Closed
firmart opened this issue Jul 23, 2021 · 11 comments
Closed

git tag patch versions #1627

firmart opened this issue Jul 23, 2021 · 11 comments

Comments

@firmart
Copy link

firmart commented Jul 23, 2021

Sometimes I want to compile specific TDlib version as precise as patch version (e.g. 1.7.4). Would it be possible to git tag those versions in the future ? It can also be done easily retroactively: git log --grep="version" -- :CMakeLists.txt.

@levlam
Copy link
Contributor

levlam commented Jul 24, 2021

It would be wrong to tag these commits. Telegram is developed continuously and those aren't the commits you are looking for.

The TDLib version is increased the same day a Telegram update is released to denote significant changes in the TDLib API. This happens along with push of source code with all new features inplemented. After that there can be a lot of improvements and bug fixes before the next release. Therefore the exact commit, in which the version was changed, isn't recommended for usage to anyone. In fact, if you want to use the most stable TDLib 1.X.Y, you need to search for the first commit with that version and message "Update/Increase layer to ..." and use the commit just before that.

But everyone should tend to use as new TDLib version is possible. Telegram updates frequently and new features aren't available in old TDLib versions. Moreover, due to server-side changes or introduction of new features some previously working features can be broken.

So, basically, each time a version is stable enough and can be marked with a tag, there is a newer version with the latest features, which should be used instead. Most of the time, the current master version is the TDLib version, which should be used.

@firmart
Copy link
Author

firmart commented Jul 24, 2021

Ok, it's fair enough. Thanks.

@asarubbo
Copy link

asarubbo commented Jun 7, 2023

It would be wrong to tag these commits. Telegram is developed continuously and those aren't the commits you are looking for.

The TDLib version is increased the same day a Telegram update is released to denote significant changes in the TDLib API. This happens along with push of source code with all new features inplemented. After that there can be a lot of improvements and bug fixes before the next release. Therefore the exact commit, in which the version was changed, isn't recommended for usage to anyone. In fact, if you want to use the most stable TDLib 1.X.Y, you need to search for the first commit with that version and message "Update/Increase layer to ..." and use the commit just before that.

But everyone should tend to use as new TDLib version is possible. Telegram updates frequently and new features aren't available in old TDLib versions. Moreover, due to server-side changes or introduction of new features some previously working features can be broken.

So, basically, each time a version is stable enough and can be marked with a tag, there is a newer version with the latest features, which should be used instead. Most of the time, the current master version is the TDLib version, which should be used.

Hi @levlam I understand your concern but I have seen libraries with the same issues you described and to mitigate this kind of problem, they release/tag every day or so. wdyt?

@levlam
Copy link
Contributor

levlam commented Jun 7, 2023

@asarubbo
A tag is just a human-readable alias for a commit. It is useless to add a tag to each commit pushed to Github, because it would be better to use commit hash instead.

@asarubbo
Copy link

asarubbo commented Jun 9, 2023

Hello @levlam

I never asked to tag each commit , but I asked to release frequently, that is a bit different.

You should see the situation from a packager perspective where sees a tag as a point of reference, while the master version is always seen as 'unstable' version.

See also: https://github.com/boto/botocore/tags

Anyway I'm using python-telegram that uses a bundled version of tdlib-1.8.5 and it works for me.

By digging a bit into the History of CMakeLists.txt I can see that 1.8.5 was 'added' on Jul 31, 2022 so the facts says that a version from 10 months ago is still working.
Based on that I didn't really understand your idea behind not make tags, but more than this I don't understand the version increased in CMakeLists.txt without a tag.

@levlam
Copy link
Contributor

levlam commented Jun 9, 2023

For TDLib master version is always suitable for production releases. And this is always the recommended for use version, because all app users are supposed to update frequently and use the latest version. The old versions will still work, but they don't have support for all features and may be otherwise limited.

@asarubbo
Copy link

I understand your concern and you are certainly right.

What I am asking (but not only me, I see all the discussions about the tags) is at least tag when you 'declare' a new version like you did here:
8517026
eb664b4
0c09070

So at least packagers can properly use repology instead of manually monitor the git commits.

Thanks

@levlam
Copy link
Contributor

levlam commented Jun 20, 2023

Those are the latest master commits right before a new version with new API was pushed to Github. Whenever such commit can be identified, there is another newer TDLib version, which should be used instead.

@njfamirm
Copy link

I'm create tag and release in this repository: https://github.com/njfamirm/td

@667bdrm
Copy link

667bdrm commented Sep 8, 2024

So, basically, each time a version is stable enough and can be marked with a tag, there is a newer version with the latest features, which should be used instead. Most of the time, the current master version is the TDLib version, which should be used.

But I know the situations when the client used 'latest' stable tag 1.8.0 with tdlib-example based client and session kicked with UPDATE_APP_TO_LOGIN error (and session lost permanently since porting and recompiling it with latest tdlib master branch does not help).

@levlam
Copy link
Contributor

levlam commented Sep 8, 2024

@667bdrm
The latest stable version is always the latest version on Github.
A session can't be kicked with the error "UPDATE_APP_TO_LOGIN", which can be received only during logging in. The client being logged out doesn't depend on the app version, only on the behavior of the app. The error can't be received in the latest TDLib version from master branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants