From cb609be73763d79b6ea1709a29cefd564aa2e35e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Oct 2025 23:51:07 +0000 Subject: [PATCH 1/4] Initial plan From f47234c0dcc25b0df609de76c337528f1a3f08a6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:03:20 +0000 Subject: [PATCH 2/4] Fix stable version detection to include rapid releases Co-authored-by: aheckmann <166834+aheckmann@users.noreply.github.com> --- bin/m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/m b/bin/m index a0e279e..1557bd4 100755 --- a/bin/m +++ b/bin/m @@ -1653,11 +1653,11 @@ display_latest_stable_version() { if [[ ! -z "$version" ]]; then abort "Version [$version] does not match a stable MongoDB release series (X.Y)" else + # Return latest version without RC/beta/alpha suffix (production-ready releases) echo $all_versions \ - | grep -E -o '[5-9]+\.0+\.[0-9]+\.zip' \ - | grep -E -v "\d-\d" \ + | grep -E -o '[0-9]\.[0-9]+\.[0-9]+' \ + | grep -E -v "[0-9]+-[0-9]+" \ | uniq \ - | sed s/.zip$// \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ | tail -n1 fi From 60d265a8c7e1872f0f67f9a42cd2dd4c70faf2f9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:12:05 +0000 Subject: [PATCH 3/4] Improve version detection to use JSON fields and support MongoDB 10+ Co-authored-by: aheckmann <166834+aheckmann@users.noreply.github.com> --- bin/m | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/bin/m b/bin/m index 1557bd4..8fbd8ea 100755 --- a/bin/m +++ b/bin/m @@ -1599,11 +1599,11 @@ display_latest_version() { get_all_versions - if [[ $version =~ ^[0-9]\.[0-9]+$ ]]; then + if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then echo $all_versions \ - | grep -Eo "version\":[[:space:]]*\"$version\.[0-9]+([-_\.]rc[0-9]+)?" \ + | grep -Eo "version\":[[:space:]]*\"$version\.[0-9]+([-_\.]rc[0-9]+)?\"" \ | sed 's/version\":[[:space:]]*\"//' \ - | grep -Ev "\d-\d" \ + | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ | uniq \ | tail -n1 @@ -1612,10 +1612,11 @@ display_latest_version() { abort "Version [$version] does not match the MongoDB release series format (X.Y)" else echo $all_versions \ - | grep -E -o '[0-9]\.[0-9]+\.[0-9]+([-_\.]rc[0-9]+)?' \ - | grep -E -v "\d-\d" \ - | uniq \ + | grep -E -o 'version":[[:space:]]*"[0-9]+\.[0-9]+\.[0-9]+([-_\.](rc|alpha|beta)[0-9]*)?"' \ + | sed 's/version":[[:space:]]*"//' \ + | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ + | uniq \ | tail -n1 fi fi @@ -1634,18 +1635,18 @@ display_latest_stable_version() { if [[ $version =~ ^[0-4]\.[0246]+$ ]]; then debug "Stable version < 5.0 ($version) is X.Y (Y is even)" echo $all_versions \ - | grep -Eo "version\":[[:space:]]*\"($version\.[0-9]+)" \ + | grep -Eo "version\":[[:space:]]*\"($version\.[0-9]+)\"" \ | sed 's/version\":[[:space:]]*\"//' \ - | grep -E -v "\d-\d" \ + | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ | uniq \ | tail -n1 - elif [[ $version =~ ^[5-9]\.0$ ]]; then + elif [[ $version =~ ^([5-9]|[1-9][0-9]+)\.0$ ]]; then debug "Stable version >= 5.0 ($version) is X.0" echo $all_versions \ - | grep -Eo "version\":[[:space:]]*\"($version\.[0-9]+)" \ + | grep -Eo "version\":[[:space:]]*\"($version\.[0-9]+)\"" \ | sed 's/version\":[[:space:]]*\"//' \ - | grep -E -v "\d-\d" \ + | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ | uniq \ | tail -n1 @@ -1655,10 +1656,12 @@ display_latest_stable_version() { else # Return latest version without RC/beta/alpha suffix (production-ready releases) echo $all_versions \ - | grep -E -o '[0-9]\.[0-9]+\.[0-9]+' \ - | grep -E -v "[0-9]+-[0-9]+" \ - | uniq \ + | grep -E -o 'version":[[:space:]]*"[0-9]+\.[0-9]+\.[0-9]+([-_\.](rc|alpha|beta)[0-9]*)?"' \ + | sed 's/version":[[:space:]]*"//' \ + | sed 's/"$//' \ + | grep -E -v "(rc|alpha|beta)" \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ + | uniq \ | tail -n1 fi fi From e318cc143b1a890ca5593417bed57c38e875b052 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:15:33 +0000 Subject: [PATCH 4/4] Remove redundant uniq commands after sort -u Co-authored-by: aheckmann <166834+aheckmann@users.noreply.github.com> --- bin/m | 5 ----- 1 file changed, 5 deletions(-) diff --git a/bin/m b/bin/m index 8fbd8ea..8b7cacb 100755 --- a/bin/m +++ b/bin/m @@ -1605,7 +1605,6 @@ display_latest_version() { | sed 's/version\":[[:space:]]*\"//' \ | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ - | uniq \ | tail -n1 else if [[ ! -z "$version" ]]; then @@ -1616,7 +1615,6 @@ display_latest_version() { | sed 's/version":[[:space:]]*"//' \ | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ - | uniq \ | tail -n1 fi fi @@ -1639,7 +1637,6 @@ display_latest_stable_version() { | sed 's/version\":[[:space:]]*\"//' \ | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ - | uniq \ | tail -n1 elif [[ $version =~ ^([5-9]|[1-9][0-9]+)\.0$ ]]; then debug "Stable version >= 5.0 ($version) is X.0" @@ -1648,7 +1645,6 @@ display_latest_stable_version() { | sed 's/version\":[[:space:]]*\"//' \ | sed 's/"$//' \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ - | uniq \ | tail -n1 else if [[ ! -z "$version" ]]; then @@ -1661,7 +1657,6 @@ display_latest_stable_version() { | sed 's/"$//' \ | grep -E -v "(rc|alpha|beta)" \ | sort -u -k 1,1n -k 2,2n -k 3,3n -t . \ - | uniq \ | tail -n1 fi fi