I still don't have a general policy on how to deal with dependencies. Some considerations regarding nuget versions.
- Tested. By Specifying an upper limit on the minor version we can be sure it is run with a version we tested with - assuming the patches don't break anything.
- Protect against known bugs. In the case of skiasharp 1.68.0 we knew that that version had a bug we had to protect our users against. So we made Mapsui use SkiaSharp < 1.68.0.
- Breaking changes: According to semver.org we should not expect breaking changes on a patch or minor release but this depends on the implementator of the nuget and we know mistakes are made. We could however assume they are not breaking and only release Mapsui with a capped dependency version if this actually happens.
- Future releases. Mapsui 2.0 will be out for a long time before we releease 3.0. Several new versions of libraries will be released. One way to go about this is by releasing new versions of Mapsui with higher dependencies so we can be sure we tested with that version. Another is to leave more space for upgrades. Perhaps we should cap only on the major version. Perhaps this also depends on the library. For json.net it might not be a problem to have no cap at all since major version upgrades rarely break anything.
I now think we should release with Xamarin.Forms (> = 4.4.0 && <5.0.0). And then it would make sense to also cap SkiaSharp on the major version.
Most helpful comment
I also run on the newest Xamarin.Forms (4.5.0.495) and have no issues so far 馃憤