Unified native package
It's great to see the progress on NET bindings for gdal is still an ongoing work! Though I'm no longer an active contributor to GIS community, after looking at increasing number of native gdal packages, I came up with idea of creating the additional nuget package, combining references to all native ones, like NetVips.Native does. That way the library users will have to write only one explicit dependency in their .csproj files and all the new (theoretical) platforms, like e.g. linux-arm64, can be added with a simple version bump from a library-user perspective.
This is not possible, at least yet. Before making a versatile package, I must configure GH runners for all runtimes and synchronize builds. Also, here are a few cons of doing this:
- Any patch for a specific runtime will bump a minor version on the versatile package (complicated patch delivery/more frequent version change).
- Restore will be slower. Each package must be downloaded and installed (slower restore).
- Each package will be downloaded and stored in the local cache (more storage space).
Well, having unified package with other package as sources doesn't mean you have to use that one. Everyone, who cares about restore speed/storage space can just stick with the way they handle native dependencies before. It's just one more option for a user.
As the CI was configured this could be possible now. The unified runtime package which contains both arm64/x64 references is now packed with this approach. One minor thing that is for now there is no synchronization between jobs, so the bundle build must be triggered manually.
The name of the bundle could be as follows if there are no objections: MaxRev.Gdal.Bundle
Great! I don't have any objections with naming, it looks clear enough to me :+1:
Resolved in #131 Unified package is available at https://www.nuget.org/packages/MaxRev.Gdal.Universal
Works great on my end, many thanks for keeping an eye on this!