From 042c5929f258f567a8b38264163dbfb9878d6b69 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 20 Aug 2024 12:59:04 -0400 Subject: [PATCH 1/5] [build] Update package metadata Looking at the package explorer for recent .NET 9 preview 7 builds I noticed that other packages do not include sha metadata in the version element. Compare the following by clicking "View Metadata source": https://nuget.info/packages/Microsoft.iOS.Ref.net9.0_17.5/17.5.9231-net9-p7 https://nuget.info/packages/Microsoft.NETCore.App.Runtime.Mono.ios-arm64/9.0.0-preview.7.24405.7 https://nuget.info/packages/Microsoft.Maui.Sdk/9.0.0-preview.7.24407.4 I believe the sha metadata was added when we were initially figuring out a package versioning schema that would produce unique package versions, however our usage of commit distance in both preview and stable versions should address this concern. The sha metadata inclusion in the version element but not the .nupkg name also causes conflicts with the latest version of the [arcade publishing tooling][0] which expects these to be in sync. The short hash in the metadata can be be replaced by the `repository` element which contains the repo url, branch, and full commit hash. The icon and other package metadata have been updated to better match other .NET packages. [0]: https://github.com/dotnet/arcade/blob/b4f4d40741f161e2c0d96c19c51a4013850ef65f/src/Microsoft.DotNet.Build.Tasks.Feed/src/PushToBuildStorage.cs --- Make.config | 2 +- dotnet/VERSIONS.md | 20 +------------------- dotnet/Workloads/Icon.png | Bin 0 -> 2140 bytes dotnet/package/common.csproj | 7 ++++++- 4 files changed, 8 insertions(+), 21 deletions(-) create mode 100644 dotnet/Workloads/Icon.png diff --git a/Make.config b/Make.config index db61e46d6f09..8381a355e185 100644 --- a/Make.config +++ b/Make.config @@ -161,7 +161,7 @@ else NUGET_PRERELEASE_IDENTIFIER=-ci.$(CURRENT_BRANCH_ALPHANUMERIC) endif -NUGET_BUILD_METADATA=sha.$(CURRENT_HASH) +NUGET_BUILD_METADATA= IOS_PRODUCT=Xamarin.iOS IOS_PACKAGE_NAME=Xamarin.iOS diff --git a/dotnet/VERSIONS.md b/dotnet/VERSIONS.md index 092f4d32ae06..58c6a3ade1e6 100644 --- a/dotnet/VERSIONS.md +++ b/dotnet/VERSIONS.md @@ -4,7 +4,7 @@ Our NuGet packages are versioned using [Semver 2.0.0][2]. -This is the scheme: `OsMajor.OsMinor.InternalRelease[-prereleaseX]+sha.1b2c3d4`. +This is the scheme: `OsMajor.OsMinor.InternalRelease[-prereleaseX].CommitDistance`. * Major: The major OS version. * Minor: The minor OS version. @@ -36,24 +36,6 @@ This is the scheme: `OsMajor.OsMinor.InternalRelease[-prereleaseX]+sha.1b2c3d4`. * Example: `iOS 15.1.123-rt` (and nothing else). This makes these versions exactly 3 characters longer than the release version, which is hopefully enough to avoid MAX_PATH issues on Windows. -* Build metadata: Required Hash - * This is `sha.` + the short commit hash. - * Use the short hash because the long hash is quite long and - cumbersome. This leaves the complete version open for duplication, - but this is extremely unlikely. - * Example: `iOS 14.0.123+sha.1a2b3c` - * Example (CI build): `iOS 15.0.123-ci.main+sha.1a2b3c` - * Since the build metadata is required for all builds, we're able to - recognize incomplete version numbers and determine if a particular - version string refers to a stable version or not. - * Example: `iOS 15.0.123`: incomplete version - * Example: `iOS 15.0.123+sha.1a2b3c`: stable - * Example: `iOS 15.0.123-ci.d17-0+sha.1a2b3c`: CI build - * Example: `iOS 15.0.123-xcode13-1.beta+sha.1a2b3c`: official - preview - * Technically it's possible to remove the prerelease part, but - we’d still be able to figure out it’s not a stable version by - using the commit hash. [1]: https://github.com/dotnet/designs/blob/master/accepted/2018/sdk-version-scheme.md [2]: https://semver.org diff --git a/dotnet/Workloads/Icon.png b/dotnet/Workloads/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fb00ecf91e4b78804c636194bb323bf3710fa1c6 GIT binary patch literal 2140 zcmeHIX;4#F6iz}QBp3(*v25~!F*qzP0ojoU1Wja7KpD}12oa>Xrfece2to*M4{<@1 zP%%ms&>BGn2e5_86S0m&0z?*tFd77$B7y>vzNa&tPJedV>7UNLH{U(qJ@=gNJNL&G zZwy{XCYg~i7z~-iW`$xfSQ!0vwGifWRzWuc0UHB1`G?p&M?Q^4^TQdnylqlFJQMHV zlMy}8cyoMm;xpH^t5o#5@y2-k+Mdkle$k#mS^4OrhKW<@s@vsbjW^%%!+QI>rn#<) z{_bgV=B_HFEH)`LIBec*h>(fF5SlnFpG|4X(PvmP2D6~~`@Sai?5+nm4-!M>!#e`& z78+VFVXe(SMlq!^eg7xWd6boUvM4P&8=5T0wgi! zp<$6Qus?iG)+d;(0n8C!5))oCLL24Oym*Gn(Wz_qt3FCV776EaQ0@8?Z;*X?j^|Sm zn!Z?CE$ZK^Bel^@7%D^$=pOWDB0`L52FJhnR;@@*4VX&YV4t-$6D&!6S(50;t4kpO zSu@uc7lG;JP{4;;gTKszM|=8RA1W@lCalj952n{cQ<2H{5Ho%XwCWD_{Z4eMJK>$z zk!wqDgEouoAc>PS^6@?wtqyq}w+)qQ-k}&oy@>2Jq0>$(&(2yz!kQ$B-aeP1JVAwi zLdDN$6HyHca*;h+GLwCO>;wmB&|!(*}Njk+((AJ3{PGOdx_ow6Z(=O$zl0DfhA9qWN%*0384ZX-%PdlCVsU;^WuLWS6 zFXEf8|L9P?|BxkhKeqYq++65zuqrIXB_=k7X0>One(W+8@jAr|KOqE zA{8rpb%xTK*LyH?wH7r3VwmvsXBR83fP-{+TLwEzY04n+9E2=$_+^Svj1xydpdM_| zOAWL@lsIQ|g;s%d*cN6$i7RV!TL3t`Nippk%z?;2>&ui}v9{Qry++zPRCad)IAFrl zVrN|@85!_xg;Kwn%BW~--xx!>Wk=-d&Bet~zEI_-Jkz#l_a=BNo+EN{T-sGgLK>2R zTl1?679M`Te?VAqflxs-Xlp(?+z^mfcBjCASoPc0Eo+$1Ukv);wnZsCeH&`cr6V+- zlv98Q2P&n*!Bn0NQC5WS;Rxq;oYdzbZwp4})3$-jUb&QY)+bmNVpr+``XIZdFn@{R z-y&lERCUNMmld3Uk>W<<`>Kw>#6lx$oBxuCIFtk;kF{VWJb!KMr(kW0zjXo2SiFoH kLN8~t3iGWE|8=58=$f)MBl>~e*<^I~9RFa}4c}$(CurrentHash) Microsoft © Microsoft Corporation. All rights reserved. - https://github.com/xamarin/xamarin-macios + https://dot.net + microsoft,dotnetframework LICENSE + Icon.png + true + true false false @@ -39,6 +43,7 @@ + From 444f10c51a71ea7ff42b11f36876a59632986374 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 20 Aug 2024 15:02:47 -0400 Subject: [PATCH 2/5] Allow $(NUGET_BUILD_METADATA) to be empty --- Make.config | 10 +++++----- dotnet/Makefile | 6 +++--- tools/common/Make.common | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Make.config b/Make.config index 8381a355e185..ae9ab35078f9 100644 --- a/Make.config +++ b/Make.config @@ -178,7 +178,7 @@ IOS_NUGET_VERSION_MAJOR=$(word 1, $(subst ., ,$(IOS_NUGET_VERSION))) IOS_NUGET_VERSION_MINOR=$(word 2, $(subst ., ,$(IOS_NUGET_VERSION))) IOS_NUGET_VERSION_PATCH=$(word 3, $(subst ., ,$(IOS_NUGET_VERSION))) IOS_NUGET_VERSION_NO_METADATA=$(IOS_NUGET_VERSION)$(NUGET_PRERELEASE_IDENTIFIER) -IOS_NUGET_VERSION_FULL=$(IOS_NUGET_VERSION_NO_METADATA)+$(NUGET_BUILD_METADATA) +IOS_NUGET_VERSION_FULL=$(IOS_NUGET_VERSION_NO_METADATA)$(NUGET_BUILD_METADATA) IOS_WINDOWS_NUGET=Microsoft.iOS.Windows IOS_WINDOWS_NUGET_VERSION_MAJOR=$(IOS_NUGET_VERSION_MAJOR) @@ -193,7 +193,7 @@ TVOS_NUGET_VERSION_MAJOR=$(word 1, $(subst ., ,$(TVOS_NUGET_VERSION))) TVOS_NUGET_VERSION_MINOR=$(word 2, $(subst ., ,$(TVOS_NUGET_VERSION))) TVOS_NUGET_VERSION_PATCH=$(word 3, $(subst ., ,$(TVOS_NUGET_VERSION))) TVOS_NUGET_VERSION_NO_METADATA=$(TVOS_NUGET_VERSION)$(NUGET_PRERELEASE_IDENTIFIER) -TVOS_NUGET_VERSION_FULL=$(TVOS_NUGET_VERSION_NO_METADATA)+$(NUGET_BUILD_METADATA) +TVOS_NUGET_VERSION_FULL=$(TVOS_NUGET_VERSION_NO_METADATA)$(NUGET_BUILD_METADATA) WATCHOS_NUGET=Microsoft.watchOS WATCHOS_NUGET_VERSION=$(WATCHOS_NUGET_OS_VERSION).$(WATCHOS_NUGET_COMMIT_DISTANCE) @@ -201,7 +201,7 @@ WATCHOS_NUGET_VERSION_MAJOR=$(word 1, $(subst ., ,$(WATCHOS_NUGET_VERSION))) WATCHOS_NUGET_VERSION_MINOR=$(word 2, $(subst ., ,$(WATCHOS_NUGET_VERSION))) WATCHOS_NUGET_VERSION_PATCH=$(word 3, $(subst ., ,$(WATCHOS_NUGET_VERSION))) WATCHOS_NUGET_VERSION_NO_METADATA=$(WATCHOS_NUGET_VERSION)$(NUGET_PRERELEASE_IDENTIFIER) -WATCHOS_NUGET_VERSION_FULL=$(WATCHOS_NUGET_VERSION_NO_METADATA)+$(NUGET_BUILD_METADATA) +WATCHOS_NUGET_VERSION_FULL=$(WATCHOS_NUGET_VERSION_NO_METADATA)$(NUGET_BUILD_METADATA) MACCATALYST_NUGET=Microsoft.MacCatalyst MACCATALYST_NUGET_VERSION=$(MACCATALYST_NUGET_OS_VERSION).$(MACCATALYST_NUGET_COMMIT_DISTANCE) @@ -209,7 +209,7 @@ MACCATALYST_NUGET_VERSION_MAJOR=$(word 1, $(subst ., ,$(MACCATALYST_NUGET_VERSIO MACCATALYST_NUGET_VERSION_MINOR=$(word 2, $(subst ., ,$(MACCATALYST_NUGET_VERSION))) MACCATALYST_NUGET_VERSION_PATCH=$(word 3, $(subst ., ,$(MACCATALYST_NUGET_VERSION))) MACCATALYST_NUGET_VERSION_NO_METADATA=$(MACCATALYST_NUGET_VERSION)$(NUGET_PRERELEASE_IDENTIFIER) -MACCATALYST_NUGET_VERSION_FULL=$(MACCATALYST_NUGET_VERSION_NO_METADATA)+$(NUGET_BUILD_METADATA) +MACCATALYST_NUGET_VERSION_FULL=$(MACCATALYST_NUGET_VERSION_NO_METADATA)$(NUGET_BUILD_METADATA) # Xcode version should have both a major and a minor version (even if the minor version is 0) XCODE_VERSION=15.4 @@ -581,7 +581,7 @@ MACOS_NUGET_VERSION_MAJOR=$(word 1, $(subst ., ,$(MACOS_NUGET_VERSION))) MACOS_NUGET_VERSION_MINOR=$(word 2, $(subst ., ,$(MACOS_NUGET_VERSION))) MACOS_NUGET_VERSION_PATCH=$(word 3, $(subst ., ,$(MACOS_NUGET_VERSION))) MACOS_NUGET_VERSION_NO_METADATA=$(MACOS_NUGET_VERSION)$(NUGET_PRERELEASE_IDENTIFIER) -MACOS_NUGET_VERSION_FULL=$(MACOS_NUGET_VERSION_NO_METADATA)+$(NUGET_BUILD_METADATA) +MACOS_NUGET_VERSION_FULL=$(MACOS_NUGET_VERSION_NO_METADATA)$(NUGET_BUILD_METADATA) ifneq ($(TESTS_USE_SYSTEM),) MAC_DESTDIR ?= / diff --git a/dotnet/Makefile b/dotnet/Makefile index 06ed12c0aa80..03e6c6809a1b 100644 --- a/dotnet/Makefile +++ b/dotnet/Makefile @@ -358,7 +358,7 @@ $(TMP_PKG_DIR)/Microsoft.$1.Templates.$2.pkg: $(TEMPLATE_PACKS_$(4)) | $(TMP_PKG $$(Q) rm -f $$@ $$(Q) rm -rf tmpdir/Microsoft.$1.Templates.$2/ $$(Q) mkdir -p tmpdir/Microsoft.$1.Templates.$2/usr/local/share/dotnet/template-packs/ - $$(Q) $$(CP) $(TEMPLATE_PACKS_$(4)) tmpdir/Microsoft.$1.Templates.$2/usr/local/share/dotnet/template-packs/$(subst +$(NUGET_BUILD_METADATA),,$(notdir $(TEMPLATE_PACKS_$(4)))) + $$(Q) $$(CP) $(TEMPLATE_PACKS_$(4)) tmpdir/Microsoft.$1.Templates.$2/usr/local/share/dotnet/template-packs/$(subst $(NUGET_BUILD_METADATA),,$(notdir $(TEMPLATE_PACKS_$(4)))) $$(Q_GEN) pkgbuild --quiet --version '$2' --root tmpdir/Microsoft.$1.Templates.$2 --component-plist PackageInfo.plist --install-location / --identifier com.microsoft.net.$3.template.pkg $$@.tmp $$(Q) mv $$@.tmp $$@ @@ -391,7 +391,7 @@ $(TMP_PKG_DIR)/Microsoft.$1.Bundle.$2.zip: $($(1)_NUGET_TARGETS) $(WORKLOAD_TARG $$(Q) $(CP) -r Workloads/Microsoft.NET.Sdk.$1 $$@.tmpdir/dotnet/sdk-manifests/$(MACIOS_MANIFEST_VERSION_BAND)/microsoft.net.sdk.$3 $$(Q) $(CP) -r $(DOTNET_DESTDIR)/$($(1)_NUGET_SDK_NAME) $$@.tmpdir/dotnet/packs/$($(1)_NUGET_SDK_NAME)/$2 $$(Q) $(CP) -r $(DOTNET_DESTDIR)/$($(1)_NUGET_REF_NAME) $$@.tmpdir/dotnet/packs/$($(1)_NUGET_REF_NAME)/$2 - $$(Q) $(CP) $(TEMPLATE_PACKS_$(4)) $$@.tmpdir/dotnet/template-packs/$(subst +$(NUGET_BUILD_METADATA),,$(notdir $(TEMPLATE_PACKS_$(4)))) + $$(Q) $(CP) $(TEMPLATE_PACKS_$(4)) $$@.tmpdir/dotnet/template-packs/$(subst $(NUGET_BUILD_METADATA),,$(notdir $(TEMPLATE_PACKS_$(4)))) $$(Q_GEN) cd $$@.tmpdir && zip -9rq $$(abspath $$@.tmp) . $$(Q) mv $$@.tmp $$@ $$(Q) echo Created $$@ @@ -419,7 +419,7 @@ $(TMP_PKG_DIR)/Microsoft.$1.Windows.Bundle.$2.zip: $($(1)_NUGET_TARGETS) $($(1)_ $$(Q) $(CP) -r $(DOTNET_DESTDIR)/$($(1)_NUGET_SDK_NAME) $$@.tmpdir/dotnet/packs/$($(1)_NUGET_SDK_NAME)/$2 $$(Q) $(CP) -r $(DOTNET_DESTDIR)/$($(1)_NUGET_WINDOWS_SDK_NAME) $$@.tmpdir/dotnet/packs/$($(1)_NUGET_WINDOWS_SDK_NAME)/$2 $$(Q) $(CP) -r $(DOTNET_DESTDIR)/$($(1)_NUGET_REF_NAME) $$@.tmpdir/dotnet/packs/$($(1)_NUGET_REF_NAME)/$2 - $$(Q) $(CP) $(TEMPLATE_PACKS_$(4)) $$@.tmpdir/dotnet/template-packs/$(subst +$(NUGET_BUILD_METADATA),,$(notdir $(TEMPLATE_PACKS_$(4)))) + $$(Q) $(CP) $(TEMPLATE_PACKS_$(4)) $$@.tmpdir/dotnet/template-packs/$(subst $(NUGET_BUILD_METADATA),,$(notdir $(TEMPLATE_PACKS_$(4)))) $$(Q_GEN) cd $$@.tmpdir && zip -9rq $$(abspath $$@.tmp) . $$(Q) mv $$@.tmp $$@ $$(Q) echo Created $$@ diff --git a/tools/common/Make.common b/tools/common/Make.common index ef34668c0fa8..838256b0934d 100644 --- a/tools/common/Make.common +++ b/tools/common/Make.common @@ -33,22 +33,22 @@ -e "s/@IOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \ -e 's/@IOS_REVISION@/$(IOS_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \ -e "s/@IOS_NUGET_VERSION@/$(IOS_NUGET_VERSION)/g" \ - -e "s/@IOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(IOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \ + -e "s/@IOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(IOS_NUGET_COMMIT_DISTANCE)$(NUGET_BUILD_METADATA)/g" \ \ -e "s/@TVOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \ -e 's/@TVOS_REVISION@/$(IOS_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \ -e "s/@TVOS_NUGET_VERSION@/$(TVOS_NUGET_VERSION)/g" \ - -e "s/@TVOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(TVOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \ + -e "s/@TVOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(TVOS_NUGET_COMMIT_DISTANCE)$(NUGET_BUILD_METADATA)/g" \ \ -e "s/@WATCHOS_VERSION@/$(IOS_PACKAGE_VERSION_MAJOR).$(IOS_PACKAGE_VERSION_MINOR).$(IOS_PACKAGE_VERSION_REV)/g" \ -e 's/@WATCHOS_REVISION@/$(IOS_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \ -e "s/@WATCHOS_NUGET_VERSION@/$(WATCHOS_NUGET_VERSION)/g" \ - -e "s/@WATCHOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(WATCHOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \ + -e "s/@WATCHOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(WATCHOS_NUGET_COMMIT_DISTANCE)$(NUGET_BUILD_METADATA)/g" \ \ -e "s/@MACOS_VERSION@/$(MAC_PACKAGE_VERSION_MAJOR).$(MAC_PACKAGE_VERSION_MINOR).$(MAC_PACKAGE_VERSION_REV)/g" \ -e 's/@MACOS_REVISION@/$(MAC_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g' \ -e "s/@MACOS_NUGET_VERSION@/$(MACOS_NUGET_VERSION)/g" \ - -e "s/@MACOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(MACOS_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g" \ + -e "s/@MACOS_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$(MACOS_NUGET_COMMIT_DISTANCE)$(NUGET_BUILD_METADATA)/g" \ \ -e "s/@TARGET_PLATFORM_VERSION_IOS@/$(IOS_NUGET_OS_VERSION)/g" \ -e "s/@TARGET_PLATFORM_VERSION_TVOS@/$(TVOS_NUGET_OS_VERSION)/g" \ @@ -72,7 +72,7 @@ \ $(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e 's/@$(platform)_REVISION@/$($(platform)_COMMIT_DISTANCE) ($(CURRENT_BRANCH_SED_ESCAPED): $(CURRENT_HASH))/g') \ $(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e 's/@$(platform)_NUGET_VERSION@/$($(platform)_NUGET_VERSION)/g') \ - $(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e "s/@$(platform)_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$($(platform)_NUGET_COMMIT_DISTANCE)+$(NUGET_BUILD_METADATA)/g") \ + $(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e "s/@$(platform)_NUGET_REVISION@/$(NUGET_PRERELEASE_IDENTIFIER)$($(platform)_NUGET_COMMIT_DISTANCE)$(NUGET_BUILD_METADATA)/g") \ \ -e "s/@PRODUCT_HASH@/$(CURRENT_HASH_LONG)/g" \ $< > $@ From 511d2afcce7f3eb88fabccb856211a644d1d989d Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 20 Aug 2024 15:59:12 -0400 Subject: [PATCH 3/5] Update icon path --- dotnet/{Workloads => package}/Icon.png | Bin dotnet/package/common.csproj | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename dotnet/{Workloads => package}/Icon.png (100%) diff --git a/dotnet/Workloads/Icon.png b/dotnet/package/Icon.png similarity index 100% rename from dotnet/Workloads/Icon.png rename to dotnet/package/Icon.png diff --git a/dotnet/package/common.csproj b/dotnet/package/common.csproj index ea04be9e8294..a9981785ad09 100644 --- a/dotnet/package/common.csproj +++ b/dotnet/package/common.csproj @@ -43,7 +43,7 @@ - + From 2fb836d39edda8ec20e12cb3c78c3dcb6feb3d1e Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 22 Aug 2024 09:01:27 -0400 Subject: [PATCH 4/5] Update dotnet/VERSIONS.md Co-authored-by: Rolf Bjarne Kvinge --- dotnet/VERSIONS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/VERSIONS.md b/dotnet/VERSIONS.md index 58c6a3ade1e6..3de057ed9b44 100644 --- a/dotnet/VERSIONS.md +++ b/dotnet/VERSIONS.md @@ -4,7 +4,7 @@ Our NuGet packages are versioned using [Semver 2.0.0][2]. -This is the scheme: `OsMajor.OsMinor.InternalRelease[-prereleaseX].CommitDistance`. +This is the scheme: `OsMajor.OsMinor.InternalRelease[-prereleaseX]`. * Major: The major OS version. * Minor: The minor OS version. From 2812b6edcb318cfeacf4f08824984b153027c00d Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 22 Aug 2024 09:03:42 -0400 Subject: [PATCH 5/5] Feedback --- dotnet/VERSIONS.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dotnet/VERSIONS.md b/dotnet/VERSIONS.md index 3de057ed9b44..a55bb91c8ff6 100644 --- a/dotnet/VERSIONS.md +++ b/dotnet/VERSIONS.md @@ -36,6 +36,13 @@ This is the scheme: `OsMajor.OsMinor.InternalRelease[-prereleaseX]`. * Example: `iOS 15.1.123-rt` (and nothing else). This makes these versions exactly 3 characters longer than the release version, which is hopefully enough to avoid MAX_PATH issues on Windows. +* Build metadata: Optional Hash + * This is `sha.` + the short commit hash. + * Use the short hash because the long hash is quite long and + cumbersome. This leaves the complete version open for duplication, + but this is extremely unlikely. + * Example: `iOS 14.0.123+sha.1a2b3c` + * Example (CI build): `iOS 15.0.123-ci.main+sha.1a2b3c` [1]: https://github.com/dotnet/designs/blob/master/accepted/2018/sdk-version-scheme.md [2]: https://semver.org