From d3407146543e813c00fa8dc4f081d31deca74d26 Mon Sep 17 00:00:00 2001 From: "Deeksitha Merugu (LTIMINDTREE LIMITED)" Date: Mon, 24 Nov 2025 18:10:06 +0530 Subject: [PATCH 1/4] Add versioning scheme BySemVerBuildNumber --- Tasks/DotNetCoreCLIV2/packcommand.ts | 16 ++++++++++++++++ Tasks/DotNetCoreCLIV2/task.json | 5 +++-- Tasks/DotNetCoreCLIV2/task.loc.json | 5 +++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Tasks/DotNetCoreCLIV2/packcommand.ts b/Tasks/DotNetCoreCLIV2/packcommand.ts index 10d35b037873..10d8e2944a7b 100644 --- a/Tasks/DotNetCoreCLIV2/packcommand.ts +++ b/Tasks/DotNetCoreCLIV2/packcommand.ts @@ -74,6 +74,22 @@ export async function run(): Promise { version = versionMatches[0]; break; + + case "bySemVerBuildNumber": + tl.debug("Getting version number using SemVer build number"); + + let semVerBuildNumber: string = tl.getVariable("BUILD_BUILDNUMBER"); + tl.debug(`Build number: ${semVerBuildNumber}`); + + // Validate full SemVer 2.0 format + let semVerRegex = /^\d+\.\d+\.\d+(?:\.\d+)?(?:[-\w\.]+)?(?:\+[0-9A-Za-z\-\.]+)?$/; + if (!semVerRegex.test(semVerBuildNumber)) { + tl.setResult(tl.TaskResult.Failed, tl.loc("Error_InvalidSemVer")); + + version = semVerBuildNumber; + break; + } + } tl.debug(`Version to use: ${version}`); diff --git a/Tasks/DotNetCoreCLIV2/task.json b/Tasks/DotNetCoreCLIV2/task.json index 63979cd75fa6..a1b7dabb6c23 100644 --- a/Tasks/DotNetCoreCLIV2/task.json +++ b/Tasks/DotNetCoreCLIV2/task.json @@ -18,7 +18,7 @@ "version": { "Major": 2, "Minor": 266, - "Patch": 0 + "Patch": 1 }, "minimumAgentVersion": "2.144.0", "instanceNameFormat": "dotnet $(command)", @@ -419,7 +419,8 @@ "off": "Off", "byPrereleaseNumber": "Use the date and time", "byEnvVar": "Use an environment variable", - "byBuildNumber": "Use the build number" + "byBuildNumber": "Use the build number", + "bySemVerBuildNumber": "Use full SemVer build number" } }, { diff --git a/Tasks/DotNetCoreCLIV2/task.loc.json b/Tasks/DotNetCoreCLIV2/task.loc.json index 46536f1d261d..56b0a5e887d9 100644 --- a/Tasks/DotNetCoreCLIV2/task.loc.json +++ b/Tasks/DotNetCoreCLIV2/task.loc.json @@ -18,7 +18,7 @@ "version": { "Major": 2, "Minor": 266, - "Patch": 0 + "Patch": 1 }, "minimumAgentVersion": "2.144.0", "instanceNameFormat": "ms-resource:loc.instanceNameFormat", @@ -419,7 +419,8 @@ "off": "Off", "byPrereleaseNumber": "Use the date and time", "byEnvVar": "Use an environment variable", - "byBuildNumber": "Use the build number" + "byBuildNumber": "Use the build number", + "bySemVerBuildNumber": "Use full SemVer build number" } }, { From 17e286a0f210a8c548e1dbf798a11ab7ee5820fc Mon Sep 17 00:00:00 2001 From: "Deeksitha Merugu (LTIMINDTREE LIMITED)" Date: Tue, 25 Nov 2025 12:14:17 +0530 Subject: [PATCH 2/4] adding fall back logic --- Tasks/DotNetCoreCLIV2/packcommand.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Tasks/DotNetCoreCLIV2/packcommand.ts b/Tasks/DotNetCoreCLIV2/packcommand.ts index 10d8e2944a7b..f279184dc9c6 100644 --- a/Tasks/DotNetCoreCLIV2/packcommand.ts +++ b/Tasks/DotNetCoreCLIV2/packcommand.ts @@ -84,11 +84,25 @@ export async function run(): Promise { // Validate full SemVer 2.0 format let semVerRegex = /^\d+\.\d+\.\d+(?:\.\d+)?(?:[-\w\.]+)?(?:\+[0-9A-Za-z\-\.]+)?$/; if (!semVerRegex.test(semVerBuildNumber)) { - tl.setResult(tl.TaskResult.Failed, tl.loc("Error_InvalidSemVer")); - + + tl.warning("Build number is not SemVer-compliant. Falling back to numeric version."); + + let fallbackRegex = /\d+\.\d+\.\d+(?:\.\d+)?/; + let fallbackMatch = semVerBuildNumber.match(fallbackRegex); + if (!fallbackMatch) { + tl.warning("No numeric version found in build number. Using default version: 1.0.0"); + version = "1.0.0" + } + else + version = fallbackMatch[0]; + + } + else{ + tl.debug("here semver"); version = semVerBuildNumber; - break; + } + break; } From db68cc24b44be48169ceccb7f4c911b14b644deb Mon Sep 17 00:00:00 2001 From: "Deeksitha Merugu (LTIMINDTREE LIMITED)" Date: Tue, 2 Dec 2025 16:57:57 +0530 Subject: [PATCH 3/4] revert fallback --- Tasks/DotNetCoreCLIV2/packcommand.ts | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/Tasks/DotNetCoreCLIV2/packcommand.ts b/Tasks/DotNetCoreCLIV2/packcommand.ts index f279184dc9c6..4c0c201b5def 100644 --- a/Tasks/DotNetCoreCLIV2/packcommand.ts +++ b/Tasks/DotNetCoreCLIV2/packcommand.ts @@ -84,24 +84,10 @@ export async function run(): Promise { // Validate full SemVer 2.0 format let semVerRegex = /^\d+\.\d+\.\d+(?:\.\d+)?(?:[-\w\.]+)?(?:\+[0-9A-Za-z\-\.]+)?$/; if (!semVerRegex.test(semVerBuildNumber)) { - - tl.warning("Build number is not SemVer-compliant. Falling back to numeric version."); - - let fallbackRegex = /\d+\.\d+\.\d+(?:\.\d+)?/; - let fallbackMatch = semVerBuildNumber.match(fallbackRegex); - if (!fallbackMatch) { - tl.warning("No numeric version found in build number. Using default version: 1.0.0"); - version = "1.0.0" + tl.setResult(tl.TaskResult.Failed, tl.loc("Error_InvalidSemVer")); + return; } - else - version = fallbackMatch[0]; - - } - else{ - tl.debug("here semver"); version = semVerBuildNumber; - - } break; } From a351e6b5da2e90280c921e3c915d7a8392b81acd Mon Sep 17 00:00:00 2001 From: "Deeksitha Merugu (LTIMINDTREE LIMITED)" Date: Tue, 2 Dec 2025 17:06:01 +0530 Subject: [PATCH 4/4] add loc error message --- Tasks/DotNetCoreCLIV2/task.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Tasks/DotNetCoreCLIV2/task.json b/Tasks/DotNetCoreCLIV2/task.json index a1b7dabb6c23..305ff58ce238 100644 --- a/Tasks/DotNetCoreCLIV2/task.json +++ b/Tasks/DotNetCoreCLIV2/task.json @@ -603,6 +603,7 @@ "DeprecatedDotnet2_2_And_3_0": "Info: .NET Core SDK/runtime 2.2 and 3.0 are now End of Life(EOL) and have been removed from all hosted agents. If you're using these SDK/runtimes on hosted agents, kindly upgrade to newer versions which are not EOL, or else use UseDotNet task to install the required version.", "Warning_IncludeNuGetOrgEnabled": "IncludeNugetOrg is currently enabled for this task. To resolve this warning, edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'.", "Error_IncludeNuGetOrgEnabled": "Packages failed to restore. Edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'.", - "Warning_UnsupportedServiceConnectionAuth": "The service connection does not use a supported authentication method. Please use a service connection with personal access token based auth." + "Warning_UnsupportedServiceConnectionAuth": "The service connection does not use a supported authentication method. Please use a service connection with personal access token based auth.", + "Error_InvalidSemVer": "Build number is not a valid SemVer 2.0 string." } }