Splitting the Linux NuGet packages because they are growing #3210
Replies: 2 comments
-
Seems NuGet has a feature to allow for splitting a nuget on RID and then bringing it all together: couldn't find a better example, but here's one: https://nuget.info/packages/NtvLibs.cuda11.cublasLt64_11.runtime.json/11.8.0 you package a file called {
"runtimes": {
"<rid>": {
"<package id>": {
"<rid-specific package id>": "<rid-specific package version>"
}
}
} This may also make things like the runtime assets be less annoying and we can just include the linux things by default - and we will be able to magically get everything |
Beta Was this translation helpful? Give feedback.
-
Since the glibc library is used by most Linux distributions, while the musl library is only used by a few Linux distributions such as Alpine Linux, bionic library is used by Android, I suggest splitting the content of the SkiaSharp.NativeAssets.Linux package into three packages: SkiaSharp.NativeAssets.Glibc, SkiaSharp.NativeAssets.Musl and SkiaSharp.NativeAssets.Bionic. The SkiaSharp.NativeAssets.Linux package itself should be changed to a meta-package, which can be used to install both SkiaSharp.NativeAssets.Glibc, SkiaSharp.NativeAssets.Musl and SkiaSharp.NativeAssets.Bionic simultaneously. The same applies to the HarfBuzzSharp.NativeAssets.Linux package. |
Beta Was this translation helpful? Give feedback.
-
Hello Good Skia-ple!
I see we are almost 30MB with our NuGet package on NuGet.org: https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux/3.118.0-preview.2.3
And we seem to be adding more:
At some point (not sure which) we will reach a large package size. We can still keep this big packaged to bring it all in, but are there thoughts on having separate packages?
Not sure if we should split on glibc/musl, or if we should go with arch (x64, arm, riscv). Or both. Or more like (debian, alpine, bionic).
Do we have any standards or general trends out there?
Beta Was this translation helpful? Give feedback.
All reactions