From 448250764a5943450540b0d0787b274730d043a4 Mon Sep 17 00:00:00 2001 From: Aparna Jyothi Date: Fri, 30 May 2025 14:48:13 +0530 Subject: [PATCH] regex and docmentation update --- .github/workflows/publish-immutable-actions.yml | 1 - dist/cleanup/index.js | 2 +- dist/setup/index.js | 2 +- docs/advanced-usage.md | 8 ++++++++ src/util.ts | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-immutable-actions.yml b/.github/workflows/publish-immutable-actions.yml index ca458fbd..cb187aea 100644 --- a/.github/workflows/publish-immutable-actions.yml +++ b/.github/workflows/publish-immutable-actions.yml @@ -4,7 +4,6 @@ on: release: types: [released] workflow_dispatch: - jobs: publish: runs-on: ubuntu-latest diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js index 4e769151..0e413c67 100644 --- a/dist/cleanup/index.js +++ b/dist/cleanup/index.js @@ -93634,7 +93634,7 @@ function getVersionFromFileContent(content, distributionName, versionFile) { const versionFileName = getFileName(versionFile); if (versionFileName == '.tool-versions') { javaVersionRegExp = - /^java\s+(?:\S*-)?(?\d+(?:\.\d+)*)(?:(?:[-_.](?:ea|LTS|beta|snapshot|internal|b\d+|\d+[a-z]*))*)(?:\+\S+)?$/im; + /^java\s+(?:\S*-)?(?\d+(?:\.\d+){0,2}(?:[+_]\d+)?)(?=(?:[-_](?!\d))|$)(?:[-_.](?:ea|LTS|beta|snapshot|internal|b\d+|\d+[a-z]*))*$/im; } else { javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; diff --git a/dist/setup/index.js b/dist/setup/index.js index 5d80b21f..5059983f 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -131639,7 +131639,7 @@ function getVersionFromFileContent(content, distributionName, versionFile) { const versionFileName = getFileName(versionFile); if (versionFileName == '.tool-versions') { javaVersionRegExp = - /^java\s+(?:\S*-)?(?\d+(?:\.\d+)*)(?:(?:[-_.](?:ea|LTS|beta|snapshot|internal|b\d+|\d+[a-z]*))*)(?:\+\S+)?$/im; + /^java\s+(?:\S*-)?(?\d+(?:\.\d+){0,2}(?:[+_]\d+)?)(?=(?:[-_](?!\d))|$)(?:[-_.](?:ea|LTS|beta|snapshot|internal|b\d+|\d+[a-z]*))*$/im; } else { javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md index 99fc0955..285703cb 100644 --- a/docs/advanced-usage.md +++ b/docs/advanced-usage.md @@ -617,3 +617,11 @@ versions with specified distribution: openjdk64-11.0.2 LTS versions : temurin-21.0.5+11.0.LTS ``` If the file contains multiple versions, only the first one will be recognized. +``` +Note: +In some complex version strings containing multiple version-like segments (e.g., java semeru-openj9-11.0.15+10_openj9-0.32.0), +the regular expression may extract the last version segment (0.32.0) instead of the intended main version (11.0.15+10). +Additionally, the regex is designed to support standard semantic versioning (semver) formats +and may not correctly parse non-standard formats such as jetbrains-21b212.1. +Users are encouraged to provide clear, semver-compliant version specifications to ensure accurate extraction. +``` diff --git a/src/util.ts b/src/util.ts index 39f9d251..1d96719d 100644 --- a/src/util.ts +++ b/src/util.ts @@ -133,7 +133,7 @@ export function getVersionFromFileContent( const versionFileName = getFileName(versionFile); if (versionFileName == '.tool-versions') { javaVersionRegExp = - /^java\s+(?:\S*-)?(?\d+(?:\.\d+)*)(?:(?:[-_.](?:ea|LTS|beta|snapshot|internal|b\d+|\d+[a-z]*))*)(?:\+\S+)?$/im; + /^java\s+(?:\S*-)?(?\d+(?:\.\d+){0,2}(?:[+_]\d+)?)(?=(?:[-_](?!\d))|$)(?:[-_.](?:ea|LTS|beta|snapshot|internal|b\d+|\d+[a-z]*))*$/im; } else { javaVersionRegExp = /(?(?<=(^|\s|-))(\d+\S*))(\s|$)/; }