From 8b3ad71ed7b0c71ee19d71810ae1420e3c51aabf 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 f5d4662e5214..8cfef52bae1e 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 38deb043a5dbc7244b55a86d209700d63f9d2a9b 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 8cfef52bae1e..8a25b948d46c 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 aba5ffcf5db0..24c2192d4db2 100644 --- a/dotnet/Makefile +++ b/dotnet/Makefile @@ -362,7 +362,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 $$@ @@ -395,7 +395,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 $$@ @@ -423,7 +423,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 5093ac579731ccbb748d0057bf6b522da32c02b5 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 174da3a4d840..3284911992eb 100644 --- a/dotnet/package/common.csproj +++ b/dotnet/package/common.csproj @@ -43,7 +43,7 @@ - + From fe1ed12bbc7d5a36ee7281b6b23e2b8b97397402 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 2dcc82c616b08b5e938278636b2cc78272633549 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