171 строка
7.5 KiB
Plaintext
171 строка
7.5 KiB
Plaintext
#
|
|
# A release branch requires updating the following six variables at the bottom of this file:
|
|
#
|
|
# IOS_PACKAGE_VERSION (major/minor/revision #)
|
|
# MAC_PACKAGE_VERSION (major/minor/revision #)
|
|
#
|
|
# IOS_NUGET_VERSION (major/minor/patch #)
|
|
# TVOS_NUGET_VERSION (major/minor/patch #)
|
|
# MACOS_NUGET_VERSION (major/minor/patch #)
|
|
# MACCATALYST_NUGET_VERSION (major/minor/patch #)
|
|
#
|
|
# Update version numbers on main as well, to the next version
|
|
#
|
|
|
|
#
|
|
# ** Version numbers **
|
|
#
|
|
# Versions are defined as: Major.Minor.Revison.Build
|
|
#
|
|
# Major/minor (first/second numbers - max 2 digits each):
|
|
# - Bump for major/minor releases.
|
|
#
|
|
# Revision (third number - max 2 digits):
|
|
# - Reset to 0 after a major or minor bump (do not use 99 for Xcode preview
|
|
# branches (use 0 instead), because otherwise we can't bump it further if
|
|
# needed).
|
|
# - Bump for service releases and previews.
|
|
# - Bump if commit distance becomes > 999.
|
|
# - Can also be bumped for other reasons (in particular there's no correlation
|
|
# between Preview/Service Release #X and Revision #Y).
|
|
# - Bumping revision to a high enough number to make it clear that there's
|
|
# no correlation is a valid reason to bump.
|
|
# - The revision must be bumped at the same time for both iOS and Mac
|
|
# (otherwise the commit distance will differ).
|
|
# - Also bump if the [IOS|MAC]_PACKAGE_VERSION lines change for any other
|
|
# reason (otherwise we end up with repeating version numbers, since the
|
|
# commit distance would restart at 0, while the other numbers wouldn't
|
|
# change).
|
|
# - Any other problem can also usually be solved by bumping the revision.
|
|
# - Do not refactor the revision to a separate variable, because the reason
|
|
# bumping the revision is a general solution for many problems is that it
|
|
# also resets the commit distance (which wouldn't happen if the revision was
|
|
# refactored to a separate variable).
|
|
#
|
|
# Build (fourth number - max 3 digits):
|
|
# - Automatically calculated as the number of commits since the last time any
|
|
# of the other three numbers changed (technically since the corresponding
|
|
# line changed in git).
|
|
#
|
|
|
|
IOS_PACKAGE_VERSION=17.99.0.$(IOS_COMMIT_DISTANCE)
|
|
MAC_PACKAGE_VERSION=9.99.0.$(MAC_COMMIT_DISTANCE)
|
|
|
|
#
|
|
# ** NuGet package version numbers **
|
|
#
|
|
# See dotnet/VERSIONS.md.
|
|
#
|
|
# Rules:
|
|
# * The first two numbers represent the major and minor version of the corresponding OS.
|
|
# * A third number will be added later (the commit distance).
|
|
#
|
|
# IMPORTANT: There must be *no* managed API differences unless the two first
|
|
# numbers (major.minor) changes.
|
|
|
|
# WARNING: Do **not** use versions higher than the available Xcode SDK or else we will have issues with mtouch (See https://github.com/xamarin/xamarin-macios/issues/7705)
|
|
|
|
IOS_NUGET_OS_VERSION=18.1
|
|
TVOS_NUGET_OS_VERSION=18.1
|
|
MACOS_NUGET_OS_VERSION=15.1
|
|
MACCATALYST_NUGET_OS_VERSION=18.1
|
|
|
|
# The following are the OS versions we first supported with the current .NET version.
|
|
# These versions must *not* change with minor .NET updates, only major .NET releases.
|
|
IOS_TARGET_PLATFORM_VERSION_LIBRARY=18.0
|
|
TVOS_TARGET_PLATFORM_VERSION_LIBRARY=18.0
|
|
MACOS_TARGET_PLATFORM_VERSION_LIBRARY=15.0
|
|
MACCATALYST_TARGET_PLATFORM_VERSION_LIBRARY=18.0
|
|
|
|
# In theory we should define the default platform version if it's not specified in the TFM. The default should not change for a given .NET version:
|
|
# * We release support for iOS 14.5 with .NET 6
|
|
# * Apple releases iOS 15.0, we're still using .NET 6. This default continues to be iOS 14.5
|
|
# * .NET 7 is shipped, and at this point we bump the default to iOS 15.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: https://github.com/dotnet/designs/blob/8e6394406d44f75f30ea2259a425cb9e38d75b69/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.
|
|
|
|
# However, this turns out to be somewhat of a complication for library developers,
|
|
# because they typically don't need Xcode to build their projects, and if we auto-
|
|
# update their TargetPlatformVersion to the latest, then all their customers
|
|
# have to also update their workloads, which for some people end up being a rather
|
|
# nasty surprise (because with the above algorithm it happens without developer
|
|
# action). Thus we follow .NET's default platform version scheme for library projects:
|
|
# it won't change in minor .NET releases.
|
|
|
|
#
|
|
# Here we list all the releases we support for each platform.
|
|
#
|
|
# Format: space-separated list of TargetFramework-OSVersion
|
|
#
|
|
# Example:
|
|
#
|
|
# SUPPORTED_API_VERSIONS_IOS=net8.0-17.0 net8.0-17.2
|
|
#
|
|
# This means the iOS workload shipped from the current branch supports projects with:
|
|
# <TargetFramework>net8.0-17.0</TargetFramework>
|
|
# and
|
|
# <TargetFramework>net8.0-17.2</TargetFramework>
|
|
# and even:
|
|
# <TargetFrameworks>net8.0-17.0;net8.0-17.2</TargetFrameworks>
|
|
#
|
|
# When shipping support for a preview Xcode, we might add entries here for a preview release into a stable release.
|
|
#
|
|
# Example:
|
|
#
|
|
# SUPPORTED_API_VERSIONS_IOS=net9.0-18.0
|
|
#
|
|
# If the current branch is stable .NET 8 using Xcode 15.0 (aka iOS 17.0), this
|
|
# would add support for trying the preview release by doing:
|
|
#
|
|
# <TargetFramework>net9.0-18.0</TargetFramework>
|
|
# <NoWarn>XCODE_16_0_PREVIEW;$(NoWarn)</NoWarn>
|
|
#
|
|
# Note that any SUPPORTED_API_VERSIONS entry below for older OS versions need a corresponding entry in
|
|
# the eng/Version.Details.xml and eng/Versions.props files.
|
|
#
|
|
|
|
# First add the versions for the current branch. DO NOT TOUCH THIS. Add older branches below.
|
|
|
|
SUPPORTED_API_VERSIONS_IOS=$(DOTNET_TFM)-$(IOS_NUGET_OS_VERSION)
|
|
SUPPORTED_API_VERSIONS_TVOS=$(DOTNET_TFM)-$(TVOS_NUGET_OS_VERSION)
|
|
SUPPORTED_API_VERSIONS_MACOS=$(DOTNET_TFM)-$(MACOS_NUGET_OS_VERSION)
|
|
SUPPORTED_API_VERSIONS_MACCATALYST=$(DOTNET_TFM)-$(MACCATALYST_NUGET_OS_VERSION)
|
|
|
|
# Add older versions here!
|
|
|
|
SUPPORTED_API_VERSIONS_IOS+=net8.0-17.0
|
|
SUPPORTED_API_VERSIONS_TVOS+=net8.0-17.0
|
|
SUPPORTED_API_VERSIONS_MACOS+=net8.0-14.0
|
|
SUPPORTED_API_VERSIONS_MACCATALYST+=net8.0-17.0
|
|
|
|
SUPPORTED_API_VERSIONS_IOS+=net8.0-18.0
|
|
SUPPORTED_API_VERSIONS_TVOS+=net8.0-18.0
|
|
SUPPORTED_API_VERSIONS_MACOS+=net8.0-15.0
|
|
SUPPORTED_API_VERSIONS_MACCATALYST+=net8.0-18.0
|
|
|
|
SUPPORTED_API_VERSIONS_IOS+=net9.0-18.0
|
|
SUPPORTED_API_VERSIONS_TVOS+=net9.0-18.0
|
|
SUPPORTED_API_VERSIONS_MACOS+=net9.0-15.0
|
|
SUPPORTED_API_VERSIONS_MACCATALYST+=net9.0-18.0
|