-
Choose a new version. To avoid confusion, all the packages should follow the versioning of the upstream Telegram library, and should have the same version among them. Increment the fourth version number is a re-packaging of the same TDLib is performed.
-
Update the Git submodule containing the TDLib sources, if this is a release with the new TDLib version.
-
Optionally, also update the submodule containing the tdsharp sources.
-
Prepare a corresponding entry in the
CHANGELOG.md
. -
Update the license, if required.
Note that Windows package bundles dependencies, so their licenses have to be checked as well.
-
Update the copyright information in the
Copyright
element of theDirectory.Build.props
file. -
Update the
PACKAGE_VERSION_BASE
to the new library version in thegithub-actions.fsx
. -
Regenerate the GitHub Actions workflow by running
dotnet fsi github-actions.fsx
. -
Create a pull request, verify that the tests are okay. Merge it afterward.
-
Make sure the NuGet key you use for publishing is still active. If not, then rotate the key as explained in the corresponding section of this document.
-
Push a version tag (
v1.x.x
) to this repository. CI servers will do their job and upload the artifacts to the Releases page. -
If the release is not synchronized with a corresponding release of tdsharp, then it's recommended to unlist it until the corresponding release of tdsharp is available. This will help the users to do a coordinated update and not update only a part of the libraries.
CI relies on NuGet API key being added to the secrets. From time to time, this key requires maintenance: it will become obsolete and will have to be updated.
To update the key:
-
Sign in onto nuget.org.
-
Go to the API keys section.
-
Create a new key with permission to Push only new package versions named
github-actions.tdlib.native
with a glob pattern oftdlib.native*
.Alternately, if you have such key already and want to regenerate it, press the Regenerate button in its page section.
If you are adding a new package, then use the Push new packages and package versions permission, but limit the key lifetime to the minimum possible date range — you will refresh it again using the limited set of permissions next time.
-
Paste the generated API keys to the action secrets section on GitHub settings (update the
NUGET_KEY
secret).