xamarin-macios/dotnet/targets
Rolf Bjarne Kvinge 5b1fc67694
[dotnet] Stop using a separate default platform version. (#19754)
In theory we should define the default platform version if it's not specified
in the TFM, and this default should not change for a given .NET version:

* We release support for iOS 17.0 with .NET 8
* Apple releases iOS 18.0, we're still using .NET 8. This default continues to be iOS 17.0
* .NET 9 is shipped, and at this point we bump the default to iOS 18.0

Basically: this should be the last OS version of the platform in question when
the current major .NET version is first released to stable.

Ref: 8e6394406d/accepted/2020/net5/net5.md (os-versions)

However, this doesn't work well for Apple platforms: whenever Apple releases
new Xcode versions, our existing workloads might not be compatible with the
new Xcode. We'll of course ship updateds workload with support for the new
Xcode, but defaulting to an older target platform version would mean that
developers wouldn't get the new workload, they'd get the old one. This is
exacerbated by the fact that Apple aggressively auto-updates Xcode on
developers' machines: they might wake up one day to a broken build - the
obvious fix ("dotnet workload update") doesn't fix anything - even if we've
shipped updated workloads - because the default is to use the old one. They'd
have to manually specify the target platform version in the target platform to
get the updated workload ("net8.0-ios17.2" to use the iOS 17.2 workload
instead of "net8.0-ios", which would use the default (old/initial/17.0) .NET 8
workload) - and then update _again_ when the next Xcode comes around. At this
point the point of having a sane default value is totally out the window,
because everybody would have to specify (and continuously update) a platform
version in their project files to keep their projects building.

So we've made the decision that the default target platform version is always
the latest target platform version.
2024-01-09 09:47:07 +01:00
..
.gitignore [dotnet] Templateify some build logic. (#10618) 2021-02-11 20:17:12 +01:00
AutoImport.template.props [dotnet] Generate the AutoImport.props file for each platform. (#15387) 2022-07-12 10:00:35 +02:00
Microsoft.Sdk.DefaultItems.template.props [net8.0] Revert multi-targeting support. (#19145) 2023-10-10 17:20:09 +02:00
Microsoft.Sdk.ImplicitNamespaceImports.template.props Merge remote-tracking branch 'origin/main' into net7.0 2022-07-12 11:18:39 +02:00
Microsoft.Sdk.Versions.template.props [dotnet] Stop using a separate default platform version. (#19754) 2024-01-09 09:47:07 +01:00
Xamarin.Shared.Sdk.DefaultItems.targets [dotnet] Remove support for MtouchArch and XamMacArch. (#19319) 2023-10-25 08:33:06 +02:00
Xamarin.Shared.Sdk.Publish.targets [net8.0] Change the default RuntimeIdentifier. (#18495) 2023-08-07 17:51:37 +02:00
Xamarin.Shared.Sdk.TargetFrameworkInference.props [dotnet] Stop using a separate default platform version. (#19754) 2024-01-09 09:47:07 +01:00
Xamarin.Shared.Sdk.props [dotnet] Compute the path to the Xamarin SDK root as a relative path to .NET's root directory. (#19404) 2023-12-14 15:16:36 +01:00
Xamarin.Shared.Sdk.targets [msbuild/dotnet] Add support for app extensions which are xpc services. (#18295) 2024-01-03 12:41:37 +01:00