tdlib.native icon indicating copy to clipboard operation
tdlib.native copied to clipboard

Separate packages per platform and distribution

Open ForNeVeR opened this issue 1 year ago • 0 comments

The nearest plan is to:

  • [ ] create separate packages per platform (like tdlib.native.win-x64, tdlib.native.macos-x64, tdlib.native.ubuntu-20.04-x64
    • [ ] the default package tdlib.native will include references to tdlib.native.win-x64, tdlib.native.osx-x64, tdlib.native.ubuntu-20.04-x64` (note only Ubuntu 20.04 for compatibility reasons) and won't include the binaries anymore
  • [ ] create a new package for ubuntu-22.04-x64, separate for now (#66), as it'll conflict with ubuntu-20.04 if we include it into the default set
  • [ ] create new packages for macos-arm64 (#74), this one it's safe to include into the default set

All this will have a downside that the user will have to explicitly collect the correct packages for their purposes, and there won't be an universally-accepted version anymore (we'll omit compoat for Ubuntu 22.04 for now).

So, for the future, we should also do this, to have a version that just works out of the box and will include new distributions if required:

  • [ ] create a new model for the uber-package that will
    • repack the incompatible binaries into different directories (like the outdated RID graph model, linux/ubuntu-20.04 + linux/ubuntu-22.04)
    • add a special method, like TdLibNative.SetUpRuntimeResolver(), that the user will have to call manually to correctly resolve this
    • also expose constants with locations of binaries, for the users to use them in custom resolve scenarios if required

ForNeVeR avatar Feb 11 '24 21:02 ForNeVeR