Investigate CPU specific nuget packaging strategy
We are considering modifying the nuget packaging strategy.
The problem:
- NuGet are getting heavy... on Windows for example, it is ~ 130MB with only the x64 and x86 builds. Adding aarch64 and armv7 will make it unsustainable to download... and update. Especially considering many people will only want and need x64. More granularity might be needed.
One solution:
- Use nuget metapackages. The idea is to:
- Create new nugets per platform and CPU arch. eg.
VideoLAN.LibVLC.Windows.x64
- Transform the current VideoLAN.LibVLC.[Platform] nugets into metapackages.
This means that new users can still download a nuget with all arch for a given platform if they choose to, and it makes it easy and straightforward.
For "advanced" usage, or people who don't want/can't download the whole package, they can reference instead just the package with the arch that they need. eg VideoLAN.LibVLC.Windows.ARM64
.
This would also simplify CD in the VideoLAN CI context, as we could package and deploy one single nuget after a single CI build instead of having necessary intermediate CI steps to gather all builds for all arch into one single package.
/cc @jeremyVignelles