This is an automated email from the ASF dual-hosted git repository.

matrei pushed a commit to branch issue-403
in repository https://gitbox.apache.org/repos/asf/grails-static-website.git

commit d395cbb9e14854329a12834f283404559cd99a30
Author: Mattias Reichel <[email protected]>
AuthorDate: Wed Jan 14 11:52:24 2026 +0100

    fix: older downloads working
---
 buildSrc/build.gradle                              |   7 +
 .../org/grails/documentation/DownloadPage.groovy   |  31 +-
 .../grails/documentation/SoftwareVersion.groovy    |  55 +-
 .../documentation/SoftwareVersionSpec.groovy       | 110 ++-
 conf/releases.yml                                  | 738 ++++++++-------------
 release.sh                                         |   3 +-
 6 files changed, 394 insertions(+), 550 deletions(-)

diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 8b4fb6eb786..202a8f37d77 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -40,4 +40,11 @@ dependencies {
 
 tasks.withType(Jar).configureEach {
     it.duplicatesStrategy = DuplicatesStrategy.INCLUDE
+}
+
+tasks.withType(Test).configureEach {
+    useJUnitPlatform()
+    testLogging {
+        events('passed', 'skipped', 'failed', 'standardOut', 'standardError')
+    }
 }
\ No newline at end of file
diff --git 
a/buildSrc/src/main/groovy/org/grails/documentation/DownloadPage.groovy 
b/buildSrc/src/main/groovy/org/grails/documentation/DownloadPage.groovy
index 675dbfdc193..f726000da3b 100644
--- a/buildSrc/src/main/groovy/org/grails/documentation/DownloadPage.groovy
+++ b/buildSrc/src/main/groovy/org/grails/documentation/DownloadPage.groovy
@@ -41,6 +41,27 @@ class DownloadPage {
         
"https://downloads.apache.org/grails/${directory}/${version}/sources/apache-${artifact}-${version}-src.zip${ext}";
     }
 
+    /**
+     * Does not handle pre-release versions as these are not displayed in the 
select box.
+     */
+    static String resolveOldDownloadUrl(String version) {
+        def baseUrl = 'https://github.com/apache/grails-core/releases/download'
+        def parts = ((version.split(/\./)*.replaceAll(/\D.*/, 
'')*.toInteger()) + [0, 0, 0]).take(3)
+        def (major, minor, patch) = [parts[0], parts[1], parts[2]]
+        def artifactName = "apache-grails-$version-bin"
+        def tag = "v$version"
+        if (major < 7) {
+            artifactName = "grails-$version"
+            if (major == 1 && minor == 1) {
+                artifactName = "grails-bin-$version"
+            }
+            if (major <= 1 && patch == 0) {
+                tag = "v$major.$minor"
+            }
+        }
+        return "$baseUrl/$tag/${artifactName}.zip"
+    }
+
     @CompileDynamic
     static String renderDownload(String version) {
         String redisVersion = '5.0.0'
@@ -165,13 +186,13 @@ class DownloadPage {
                     mkp.yieldUnescaped(renderDownload(latest.versionText))
 
                     h3(class:'columnheader', 'Older Versions')
-                    p 'You can download previous versions as far back as 
Grails 1.2.0.'
+                    p 'You can download previous versions as far back as 
Grails 0.1.'
                     p 'NOTE: Versions prior to 7.0.0-M4 are not ASF releases. 
Links to those releases are provided here as a convenience.'
-                    div(class:'versionselector') {
-                        select(class:'form-control', 
onchange:"window.location.href=this.value.startsWith('6') ? 
'https://github.com/apache/grails-forge/releases/download/v'+this.value+'/grails-cli-'+this.value+'.zip':
 
'https://github.com/apache/grails-core/releases/download/v'+this.value+'/grails-'+this.value+'.zip'")
 {
-                            option(label:'Select a version', 
disabled:'disabled', selected:'selected')
+                    div(class: 'versionselector') {
+                        select(class: 'form-control', onchange: 
'window.location.href=this.value') {
+                            option(label: 'Select a version', disabled: 
'disabled', selected: 'selected')
                             SiteMap.stableVersions(releases)*.versionText.each 
{
-                                option(value: it, it)
+                                option(value: resolveOldDownloadUrl(it), it)
                             }
                         }
                     }
diff --git 
a/buildSrc/src/main/groovy/org/grails/documentation/SoftwareVersion.groovy 
b/buildSrc/src/main/groovy/org/grails/documentation/SoftwareVersion.groovy
index 14399e3a25d..ce986cdb8e9 100644
--- a/buildSrc/src/main/groovy/org/grails/documentation/SoftwareVersion.groovy
+++ b/buildSrc/src/main/groovy/org/grails/documentation/SoftwareVersion.groovy
@@ -13,25 +13,45 @@ class SoftwareVersion implements 
Comparable<SoftwareVersion> {
 
     String versionText
 
+    /**
+     * Parses common Grails version formats.
+     * Examples:
+     *  - 1.0 / 1.0.0
+     *  - 1.0-RC1 / 1.0.RC1 /1.0.0-RC1 / 1.0.0.RC1
+     *  - 1.0.M1 / 1.0.0-M1
+     *  - 1.0.0-SNAPSHOT / 1.0.0.BUILD-SNAPSHOT
+     */
     static SoftwareVersion build(String version) {
-        String[] parts = version ? version.split("\\.") : null
-        SoftwareVersion softVersion
-        if (parts && parts.length >= 3) {
-            softVersion = new SoftwareVersion()
-            softVersion.versionText = version
-            softVersion.major = parts[0].toInteger()
-            softVersion.minor = parts[1].toInteger()
-            if (parts.length > 3) {
-                softVersion.snapshot = new Snapshot(parts[3])
-            } else if (parts[2].contains('-')) {
-                String[] subParts = parts[2].split("-")
-                softVersion.patch = subParts.first() as int
-                softVersion.snapshot = new Snapshot(subParts[1..-1].join("-"))
-            } else {
-                softVersion.patch = parts[2].toInteger()
-            }
+        if (!version) {
+            return null
         }
-        softVersion
+
+        def v = version.trim()
+        def softVersion = new SoftwareVersion(versionText: v)
+
+        // Match: major.minor[.patch][separator qualifier]
+        // qualifier may be after '-' or '.' (e.g. 1.0-RC1 or 1.0.RC1)
+        // patch is optional (e.g. 1.0.RC1)
+        def m = (v =~ /^(\d+)\.(\d+)(?:\.(\d+))?(?:[.-](.+))?$/)
+        if (!m.matches()) {
+            return null
+        }
+
+        softVersion.major = m.group(1).toInteger()
+        softVersion.minor = m.group(2).toInteger()
+
+        def patchStr = m.group(3)
+        def qualifier = m.group(4)
+
+        // If patch is missing but the third segment is actually a qualifier 
(1.0.RC1),
+        // the regex puts it in qualifier and leaves patch null.
+        softVersion.patch = patchStr ? patchStr.toInteger() : 0
+
+        if (qualifier) {
+            softVersion.snapshot = new Snapshot(qualifier)
+        }
+
+        return softVersion
     }
 
     boolean isSnapshot() {
@@ -66,4 +86,3 @@ class SoftwareVersion implements Comparable<SoftwareVersion> {
         }
     }
 }
-
diff --git 
a/buildSrc/src/test/groovy/org/grails/documentation/SoftwareVersionSpec.groovy 
b/buildSrc/src/test/groovy/org/grails/documentation/SoftwareVersionSpec.groovy
index b5f5f764794..bf1e4f203b1 100644
--- 
a/buildSrc/src/test/groovy/org/grails/documentation/SoftwareVersionSpec.groovy
+++ 
b/buildSrc/src/test/groovy/org/grails/documentation/SoftwareVersionSpec.groovy
@@ -4,93 +4,77 @@ import spock.lang.Specification
 
 class SoftwareVersionSpec extends Specification {
 
-    void "test build snapshot SoftwareVersion from String(#versionText)"() {
+    void 'test build snapshot SoftwareVersion from String(#versionText)'() {
 
         when:
-        SoftwareVersion softwareVersion = SoftwareVersion.build(versionText)
+            def softwareVersion = SoftwareVersion.build(versionText)
 
         then:
-        noExceptionThrown()
-        softwareVersion.snapshot
-        softwareVersion.snapshot.buildSnapshot == isSnapshot
-        softwareVersion.snapshot.releaseCandidate == isReleaseCandidate
-        softwareVersion.snapshot.milestone == isMilestone
+            noExceptionThrown()
+            softwareVersion.snapshot
+            softwareVersion.snapshot.buildSnapshot == isSnapshot
+            softwareVersion.snapshot.releaseCandidate == isReleaseCandidate
+            softwareVersion.snapshot.milestone == isMilestone
 
         where:
-        versionText            || isSnapshot | isReleaseCandidate | isMilestone
-        '5.0.0-SNAPSHOT'       || true       | false              | false
-        '5.0.0-BUILD-SNAPSHOT' || true       | false              | false
-        '5.0.0.BUILD-SNAPSHOT' || true       | false              | false
+            versionText            || isSnapshot | isReleaseCandidate | 
isMilestone
+            '1.0-SNAPSHOT'         || true       | false              | false
+            '1.0.SNAPSHOT'         || true       | false              | false
+            '1.0-BUILD-SNAPSHOT'   || true       | false              | false
+            '1.0.BUILD-SNAPSHOT'   || true       | false              | false
+            '5.0.0-SNAPSHOT'       || true       | false              | false
+            '5.0.0-BUILD-SNAPSHOT' || true       | false              | false
+            '5.0.0.BUILD-SNAPSHOT' || true       | false              | false
     }
 
-    void "test build release-candidate SoftwareVersion from 
String(#versionText)"() {
+    void 'test build release-candidate SoftwareVersion from 
String(#versionText)'() {
 
         when:
-        SoftwareVersion softwareVersion = SoftwareVersion.build(versionText)
+            def softwareVersion = SoftwareVersion.build(versionText)
 
         then:
-        noExceptionThrown()
-        softwareVersion.snapshot
-        softwareVersion.snapshot.buildSnapshot == isSnapshot
-        softwareVersion.snapshot.releaseCandidate == isReleaseCandidate
-        softwareVersion.snapshot.milestone == isMilestone
-        softwareVersion.snapshot.releaseCandidateVersion == rcVersion
+            noExceptionThrown()
+            softwareVersion.snapshot
+            softwareVersion.snapshot.buildSnapshot == isSnapshot
+            softwareVersion.snapshot.releaseCandidate == isReleaseCandidate
+            softwareVersion.snapshot.milestone == isMilestone
+            softwareVersion.snapshot.releaseCandidateVersion == rcVersion
 
         where:
-        versionText || isSnapshot | isReleaseCandidate | isMilestone | 
rcVersion
-        '5.0.0-RC1' || false      | true               | false       | 1
-        '5.0.0-RC2' || false      | true               | false       | 2
-        '5.0.0.RC1' || false      | true               | false       | 1
+            versionText || isSnapshot | isReleaseCandidate | isMilestone | 
rcVersion
+            '1.0-RC1'   || false      | true               | false       | 1
+            '1.0.RC2'   || false      | true               | false       | 2
+            '5.0.0-RC1' || false      | true               | false       | 1
+            '5.0.0-RC2' || false      | true               | false       | 2
+            '5.0.0.RC1' || false      | true               | false       | 1
     }
 
-    void "test build milestone SoftwareVersion from String(#versionText)"() {
 
-        when:
-        SoftwareVersion softwareVersion = SoftwareVersion.build(versionText)
-
-        then:
-        noExceptionThrown()
-        softwareVersion.snapshot
-        softwareVersion.snapshot.buildSnapshot == isSnapshot
-        softwareVersion.snapshot.releaseCandidate == isReleaseCandidate
-        softwareVersion.snapshot.milestone == isMilestone
-        softwareVersion.snapshot.milestoneVersion == milestoneVersion
-
-        where:
-        versionText || isSnapshot | isReleaseCandidate | isMilestone | 
milestoneVersion
-        '5.0.0-M1'  || false      | false              | true        | 1
-        '5.0.0-M2'  || false      | false              | true        | 2
-        '5.0.0.M2'  || false      | false              | true        | 2
-    }
-
-    void "test that SoftwareVersion is null when build from 
String(#versionText)"() {
+    void 'test build milestone SoftwareVersion from String(#versionText)'() {
 
         when:
-        SoftwareVersion softwareVersion = SoftwareVersion.build(versionText)
+            def softwareVersion = SoftwareVersion.build(versionText)
 
         then:
-        noExceptionThrown()
-        softwareVersion == null
+            noExceptionThrown()
+            softwareVersion.snapshot
+            softwareVersion.snapshot.buildSnapshot == isSnapshot
+            softwareVersion.snapshot.releaseCandidate == isReleaseCandidate
+            softwareVersion.snapshot.milestone == isMilestone
+            softwareVersion.snapshot.milestoneVersion == milestoneVersion
 
         where:
-        versionText << ['', null]
+            versionText || isSnapshot | isReleaseCandidate | isMilestone | 
milestoneVersion
+            '1.0-M1'    || false      | false              | true        | 1
+            '1.0.M2'    || false      | false              | true        | 2
+            '5.0.0-M1'  || false      | false              | true        | 1
+            '5.0.0-M2'  || false      | false              | true        | 2
+            '5.0.0.M2'  || false      | false              | true        | 2
     }
 
-    void "test compare latest major GA is greater than pre-release"() {
-        when:
-        SoftwareVersion gaVersion = SoftwareVersion.build('6.0.0')
-        SoftwareVersion preRelease = SoftwareVersion.build('6.0.0-RC1')
-
-        then:
-        gaVersion > preRelease
-    }
-
-    void "test pre-release is greater than last stable version"() {
-        when:
-        SoftwareVersion lastStableRelease = SoftwareVersion.build('5.3.3')
-        SoftwareVersion preRelease = SoftwareVersion.build('6.0.0-RC1')
-
-        then:
-        preRelease > lastStableRelease
+    void 'compareTo orders milestone < rc < final'() {
+        expect:
+            SoftwareVersion.build('1.0.M1') < SoftwareVersion.build('1.0.RC1')
+            SoftwareVersion.build('1.0.RC1') < SoftwareVersion.build('1.0')
     }
 }
diff --git a/conf/releases.yml b/conf/releases.yml
index 07e9bba973d..cef0e85fe54 100644
--- a/conf/releases.yml
+++ b/conf/releases.yml
@@ -1,527 +1,341 @@
 releases:
-  -
-    version: 4.0.0.M1
-  -
-    version: 3.3.11
-  -
-    version: 3.3.10
-  -
-    version: 3.3.9
-  -
-    version: 3.3.8
-  -
-    version: 3.3.7
-  -
-    version: 3.3.6
-  -
-    version: 3.3.5
-  -
-    version: 3.3.4
-  -
-    version: 3.3.3
-  -
-    version: 3.3.2
-  -
-    version: 3.3.1
-  -
-    version: 3.3.0
-  -
-    version: 3.3.0.RC1
-  -
-    version: 3.3.0.M2
-  -
-    version: 3.3.0.M1
-  -
-    version: 3.2.9
-  -
-    version: 3.2.8
-  -
-    version: 3.2.7
-  -
-    version: 3.2.6
-  -
-    version: 3.2.5
-  -
-    version: 3.2.4
-  -
-    version: 3.2.3
-  -
-    version: 3.2.2
-  -
-    version: 3.2.13
-  -
-    version: 3.2.12
-  -
-    version: 3.2.11
-  -
-    version: 3.2.10
-  -
-    version: 3.2.1
-  -
-    version: 3.2.0.RC2
-  -
-    version: 3.2.0.RC1
-  -
-    version: 3.2.0.M2
-  -
-    version: 3.2.0.M1
-  -
-    version: 3.2.0
-  -
-    version: 3.1.9
-  -
-    version: 3.1.8
-  -
-    version: 3.1.7
-  -
-    version: 3.1.6
-  -
-    version: 3.1.5
-  -
-    version: 3.1.4
-  -
-    version: 3.1.3
-  -
-    version: 3.1.2
-  -
-    version: 3.1.16
-  -
-    version: 3.1.15
-  -
-    version: 3.1.14
-  -
-    version: 3.1.13
-  -
-    version: 3.1.12
-  -
-    version: 3.1.11
-  -
-    version: 3.1.10
-  -
-    version: 3.1.1
-  -
-    version: 3.1.0.RC2
-  -
-    version: 3.1.0.RC1
-  -
-    version: 3.1.0.M3
-  -
-    version: 3.1.0.M2
-  -
-    version: 3.1.0
-  -
-    version: 3.0.9
-  -
-    version: 3.0.8
-  -
-    version: 3.0.7
-  -
-    version: 3.0.6
-  -
-    version: 3.0.5
-  -
-    version: 3.0.4
-  -
-    version: 3.0.3
-  -
-    version: 3.0.2
-  -
-    version: 3.0.17
-  -
-    version: 3.0.16
-  -
-    version: 3.0.15
-  -
-    version: 3.0.14
-  -
-    version: 3.0.13
-  -
-    version: 3.0.12
-  -
-    version: 3.0.11
-  -
-    version: 3.0.10
-  -
-    version: 3.0.1
-  -
-    version: 3.0.0
-  -
-    version: 2.5.6
-  -
-    version: 2.5.5
-  -
-    version: 2.5.4
-  -
-    version: 2.5.3
-  -
-    version: 2.5.2
-  -
-    version: 2.5.1
-  -
-    version: 2.5.0
-  -
-    version: 2.4.5
-  -
-    version: 2.4.4
-  -
-    version: 2.4.3
-  -
-    version: 2.4.2
-  -
-    version: 2.4.1
-  -
-    version: 2.4.0
-  -
-    version: 2.3.9
-  -
-    version: 2.3.8
-  -
-    version: 2.3.7
-  -
-    version: 2.3.6
-  -
-    version: 2.3.5
-  -
-    version: 2.3.4
-  -
-    version: 2.3.3
-  -
-    version: 2.3.2
-  -
-    version: 2.3.11
-  -
-    version: 2.3.10
-  -
-    version: 2.3.1
-  -
-    version: 2.3.0
-  -
-    version: 2.2.5
-  -
-    version: 2.2.4
-  -
-    version: 2.2.3
-  -
-    version: 2.2.2
-  -
-    version: 2.2.1
-  -
-    version: 2.2.0
-  -
-    version: 2.1.5
-  -
-    version: 2.1.4
-  -
-    version: 2.1.3
-  -
-    version: 2.1.2
-  -
-    version: 2.1.1
-  -
-    version: 2.1.0
-  -
-    version: 2.0.4
-  -
-    version: 2.0.3
-  -
-    version: 2.0.2
-  -
-    version: 2.0.1
-  -
-    version: 2.0.0
-  -
-    version: 1.3.9
-  -
-    version: 1.3.8
-  -
-    version: 1.3.7
-  -
-    version: 1.3.6
-  -
-    version: 1.3.5
-  -
-    version: 1.3.4
-  -
-    version: 1.3.3
-  -
-    version: 1.3.2
-  -
-    version: 1.3.1
-  -
-    version: 1.3.0
-  -
-    version: 1.2.5
-  -
-    version: 1.2.4
-  -
-    version: 1.2.3
-  -
-    version: 1.2.2
-  -
-    version: 1.2.1
-  -
-    version: 1.2.0
-  -
-    version: 4.0.0.M2
+  - version: '0.1'
+  - version: '0.2'
+  - version: '0.3'
+  - version: '0.4'
+  - version: 0.4.1
+  - version: 0.4.2
+  - version: 0.5.RC1
+  - version: 0.5.RC2
+  - version: '0.5'
+  - version: 0.5.5.RC1
+  - version: 0.5.5
+  - version: 0.5.6
+  - version: 0.6.RC1
+  - version: '0.6'
+  - version: 1.0.RC1
+  - version: 1.0.RC2
+  - version: 1.0.RC3
+  - version: 1.0.RC4
+  - version: '1.0'
+  - version: 1.0.1
+  - version: 1.0.2
+  - version: 1.0.3
+  - version: 1.0.4
+  - version: 1.2.0
+  - version: 1.2.1
+  - version: 1.2.2
+  - version: 1.2.3
+  - version: 1.2.4
+  - version: 1.2.5
+  - version: 1.3.0
+  - version: 1.3.1
+  - version: 1.3.2
+  - version: 1.3.3
+  - version: 1.3.4
+  - version: 1.3.5
+  - version: 1.3.6
+  - version: 1.3.7
+  - version: 1.3.8
+  - version: 1.3.9
+  - version: 2.0.0
+  - version: 2.0.1
+  - version: 2.0.2
+  - version: 2.0.3
+  - version: 2.0.4
+  - version: 2.1.0
+  - version: 2.1.1
+  - version: 2.1.2
+  - version: 2.1.3
+  - version: 2.1.4
+  - version: 2.1.5
+  - version: 2.2.0
+  - version: 2.2.1
+  - version: 2.2.2
+  - version: 2.2.3
+  - version: 2.2.4
+  - version: 2.2.5
+  - version: 2.3.0
+  - version: 2.3.1
+  - version: 2.3.10
+  - version: 2.3.11
+  - version: 2.3.2
+  - version: 2.3.3
+  - version: 2.3.4
+  - version: 2.3.5
+  - version: 2.3.6
+  - version: 2.3.7
+  - version: 2.3.8
+  - version: 2.3.9
+  - version: 2.4.0
+  - version: 2.4.1
+  - version: 2.4.2
+  - version: 2.4.3
+  - version: 2.4.4
+  - version: 2.4.5
+  - version: 2.5.0
+  - version: 2.5.1
+  - version: 2.5.2
+  - version: 2.5.3
+  - version: 2.5.4
+  - version: 2.5.5
+  - version: 2.5.6
+  - version: 3.0.0.M1
+  - version: 3.0.0.M2
+  - version: 3.0.0.RC1
+  - version: 3.0.0.RC2
+  - version: 3.0.0.RC3
+  - version: 3.0.0
+  - version: 3.0.1
+  - version: 3.0.2
+  - version: 3.0.3
+  - version: 3.0.4
+  - version: 3.0.5
+  - version: 3.0.6
+  - version: 3.0.7
+  - version: 3.0.8
+  - version: 3.0.9
+  - version: 3.0.10
+  - version: 3.0.11
+  - version: 3.0.12
+  - version: 3.0.13
+  - version: 3.0.14
+  - version: 3.0.15
+  - version: 3.0.16
+  - version: 3.0.17
+  - version: 3.1.0
+  - version: 3.1.0.M2
+  - version: 3.1.0.M3
+  - version: 3.1.0.RC1
+  - version: 3.1.0.RC2
+  - version: 3.1.1
+  - version: 3.1.10
+  - version: 3.1.11
+  - version: 3.1.12
+  - version: 3.1.13
+  - version: 3.1.14
+  - version: 3.1.15
+  - version: 3.1.16
+  - version: 3.1.2
+  - version: 3.1.3
+  - version: 3.1.4
+  - version: 3.1.5
+  - version: 3.1.6
+  - version: 3.1.7
+  - version: 3.1.8
+  - version: 3.1.9
+  - version: 3.2.0
+  - version: 3.2.0.M1
+  - version: 3.2.0.M2
+  - version: 3.2.0.RC1
+  - version: 3.2.0.RC2
+  - version: 3.2.1
+  - version: 3.2.10
+  - version: 3.2.11
+  - version: 3.2.12
+  - version: 3.2.13
+  - version: 3.2.2
+  - version: 3.2.3
+  - version: 3.2.4
+  - version: 3.2.5
+  - version: 3.2.6
+  - version: 3.2.7
+  - version: 3.2.8
+  - version: 3.2.9
+  - version: 3.3.0.M1
+  - version: 3.3.0.M2
+  - version: 3.3.0.RC1
+  - version: 3.3.0
+  - version: 3.3.1
+  - version: 3.3.10
+  - version: 3.3.11
+  - version: 3.3.2
+  - version: 3.3.3
+  - version: 3.3.4
+  - version: 3.3.5
+  - version: 3.3.6
+  - version: 3.3.7
+  - version: 3.3.8
+  - version: 3.3.9
+  - version: 3.3.10
+  - version: 3.3.11
+  - version: 3.3.12
+  - version: 3.3.13
+  - version: 3.3.14
+  - version: 3.3.15
+    publicationDate: Jul 14, 2022
+  - version: 3.3.16
+    publicationDate: Aug 24, 2022
+  - version: 3.3.17
+    publicationDate: Dec 07, 2023
+  - version: 3.3.18
+    publicationDate: Jan 09, 2024
+  - version: 4.0.0.M1
+  - version: 4.0.0.M2
     publicationDate: Mar 26, 2019
-  -
-    version: 4.0.0.RC1
+  - version: 4.0.0.RC1
     publicationDate: Apr 17, 2019
-  -
-    version: 4.0.0.RC2
+  - version: 4.0.0.RC2
     publicationDate: Jun 04, 2019
-  -
-    version: 4.0.0
+  - version: 4.0.0
     publicationDate: Jul 11, 2019
-  -
-    version: 4.0.1
+  - version: 4.0.1
     publicationDate: Oct 14, 2019
-  -
-    version: 4.0.2
+  - version: 4.0.2
     publicationDate: Feb 21, 2020
-  -
-    version: 4.0.3
+  - version: 4.0.3
     publicationDate: Apr 03, 2020
-  -
-    version: 4.1.0.M1
-    publicationDate: May 21, 2020
-  -
-    version: 4.1.0.M1
-    publicationDate: May 22, 2020
-  -
-    version: 4.0.4
+  - version: 4.0.4
     publicationDate: Jul 15, 2020
-  -
-    version: 4.1.0.M2
-    publicationDate: Sep 23, 2020
-  -
-    version: 4.0.5
+  - version: 4.0.5
     publicationDate: Oct 25, 2020
-  -
-    version: 4.0.6
+  - version: 4.0.6
     publicationDate: Dec 19, 2020
-  -
-    version: 4.0.7
+  - version: 4.0.7
     publicationDate: Feb 01, 2021
-  -
-    version: 4.0.8
+  - version: 4.0.8
     publicationDate: Feb 19, 2021
-  -
-    version: 4.0.9
+  - version: 4.0.9
     publicationDate: Mar 12, 2021
-  -
-    version: 4.0.10
+  - version: 4.0.10
     publicationDate: Apr 09, 2021
-  -
-    version: 4.0.11
+  - version: 4.0.11
     publicationDate: Jun 24, 2021
-  -
-    version: 5.0.0.RC1
-    publicationDate: Aug 11, 2021
-  -
-    version: 4.0.12
+  - version: 4.0.12
     publicationDate: Aug 30, 2021
-  -
-    version: 5.0.0.RC2
+  - version: 4.0.13
+    publicationDate: Nov 23, 2021
+  - version: 4.1.0.M1
+    publicationDate: May 21, 2020
+  - version: 4.1.0.M2
+    publicationDate: Sep 23, 2020
+  - version: 4.1.0
+    publicationDate: May 05, 2022
+  - version: 4.1.1
+    publicationDate: Jul 13, 2022
+  - version: 4.1.2
+    publicationDate: Aug 25, 2022
+  - version: 4.1.3
+    publicationDate: Dec 06, 2023
+  - version: 4.1.4
+    publicationDate: Jan 26, 2024
+  - version: 5.0.0.M1
+    publicationDate: Jan 27, 2021
+  - version: 5.0.0.M2
+    publicationDate: Jul 21, 2021
+  - version: 5.0.0.RC1
+    publicationDate: Aug 11, 2021
+  - version: 5.0.0.RC2
     publicationDate: Sep 02, 2021
-  -
-    version: 5.0.0-RC3
+  - version: 5.0.0-RC3
     publicationDate: Sep 11, 2021
-  -
-    version: 5.0.0-RC4
+  - version: 5.0.0-RC4
     publicationDate: Oct 05, 2021
-  -
-    version: 5.0.0
+  - version: 5.0.0
     publicationDate: Oct 12, 2021
-  -
-    version: 5.0.1
+  - version: 5.0.1
     publicationDate: Nov 03, 2021
-  -
-    version: 4.0.13
-    publicationDate: Nov 23, 2021
-  -
-    version: 5.0.2
+  - version: 5.0.2
     publicationDate: Nov 26, 2021
-  -
-    version: 5.0.3
+  - version: 5.0.3
     publicationDate: Dec 14, 2021
-  -
-    version: 5.1.0
+  - version: 5.1.0
     publicationDate: Dec 17, 2021
-  -
-    version: 5.1.1
+  - version: 5.1.1
     publicationDate: Dec 19, 2021
-  -
-    version: 5.1.2
+  - version: 5.1.2
     publicationDate: Jan 18, 2022
-  -
-    version: 5.1.3
+  - version: 5.1.3
     publicationDate: Mar 10, 2022
-  -
-    version: 5.1.4
+  - version: 5.1.4
     publicationDate: Mar 22, 2022
-  -
-    version: 5.1.5
+  - version: 5.1.5
     publicationDate: Mar 29, 2022
-  -
-    version: 5.1.6
+  - version: 5.1.6
     publicationDate: Mar 31, 2022
-  -
-    version: 5.1.7
+  - version: 5.1.7
     publicationDate: Apr 14, 2022
-  -
-    version: 4.1.0
-    publicationDate: May 05, 2022
-  -
-    version: 5.1.8
+  - version: 5.1.8
     publicationDate: May 31, 2022
-  -
-    version: 5.2.0
+  - version: 5.1.9
+    publicationDate: Jul 18, 2022
+  - version: 5.1.10
+    publicationDate: Oct 13, 2022
+  - version: 5.2.0
     publicationDate: Jun 23, 2022
-  -
-    version: 5.2.1
+  - version: 5.2.1
     publicationDate: Jul 13, 2022
-  -
-    version: 4.1.1
-    publicationDate: Jul 13, 2022
-  -
-    version: 3.3.15
-    publicationDate: Jul 14, 2022
-  -
-    version: 5.1.9
-    publicationDate: Jul 18, 2022
-  -
-    version: 5.2.2
+  - version: 5.2.2
     publicationDate: Aug 02, 2022
-  -
-    version: 4.1.2
-    publicationDate: Aug 25, 2022
-  -
-    version: 5.2.3
+  - version: 5.2.3
     publicationDate: Aug 26, 2022
-  -
-    version: 5.2.4
+  - version: 5.2.4
     publicationDate: Sep 14, 2022
-  -
-    version: 5.1.10
-    publicationDate: Oct 13, 2022
-  -
-    version: 5.2.5
+  - version: 5.2.5
     publicationDate: Nov 09, 2022
-  -
-    version: 6.0.0-M1
-    publicationDate: Dec 08, 2022
-  -
-    version: 5.3.0
-    publicationDate: Feb 06, 2023
-  -
-    version: 5.2.6
+  - version: 5.2.6
     publicationDate: Feb 13, 2023
-  -
-    version: 5.3.1
+  - version: 5.3.0
+    publicationDate: Feb 06, 2023
+  - version: 5.3.1
     publicationDate: Feb 14, 2023
-  -
-    version: 5.3.2
+  - version: 5.3.2
     publicationDate: Feb 14, 2023
-  -
-    version: 5.3.3
+  - version: 5.3.3
     publicationDate: Jul 11, 2023
-  -
-    version: 5.3.4
-    publicationDate: Dec 02, 2023    
-  -
-    version: 6.0.0-M2
+  - version: 5.3.4
+    publicationDate: Dec 02, 2023
+  - version: 5.3.5
+    publicationDate: Dec 19, 2023
+  - version: 5.3.6
+    publicationDate: Jan 09, 2024
+  - version: 6.0.0-M1
+    publicationDate: Dec 08, 2022
+  - version: 6.0.0-M2
     publicationDate: Mar 22, 2023
-  -
-    version: 6.0.0-M3
+  - version: 6.0.0-M3
     publicationDate: May 16, 2023
-  -
-    version: 6.0.0-M4
+  - version: 6.0.0-M4
     publicationDate: May 18, 2023
-  -
-    version: 6.0.0-RC1
-    publicationDate: May 22, 2023    
-  -
-    version: 6.0.0
+  - version: 6.0.0-RC1
+    publicationDate: May 22, 2023
+  - version: 6.0.0
     publicationDate: Jul 24, 2023
-  -
-    version: 6.1.0
+  - version: 6.1.0
     publicationDate: Nov 06, 2023
-  -
-    version: 4.1.3
-    publicationDate: Dec 06, 2023
-  -
-    version: 3.3.17
-    publicationDate: Dec 07, 2023
-  -
-    version: 6.1.1
-    publicationDate: Dec 13, 2023
-  -
-    version: 6.1.1
+  - version: 6.1.1
     publicationDate: Dec 18, 2023
-  -
-    version: 5.3.5
-    publicationDate: Dec 19, 2023
-  -
-    version: 3.3.18
-    publicationDate: Jan 09, 2024
-  -
-    version: 5.3.6
-    publicationDate: Jan 09, 2024
-  -
-    version: 4.1.4
-    publicationDate: Jan 26, 2024
-  -
-    version: 6.1.2
-    publicationDate: Jan 30, 2024
-  -
-    version: 6.1.2
+  - version: 6.1.2
     publicationDate: Jan 31, 2024
-  -
-    version: 6.2.0
-    publicationDate: Apr 05, 2024
-  -
-    version: 6.2.0
+  - version: 6.2.0
     publicationDate: Apr 05, 2024
-  -
-    version: 6.2.1
+  - version: 6.2.1
     publicationDate: Oct 03, 2024
-  -
-    version: 6.2.2
+  - version: 6.2.2
     publicationDate: Nov 20, 2024
-  -
-    version: 6.2.3
+  - version: 6.2.3
     publicationDate: Jan 03, 2025
-  -
-    version: 7.0.0-M3
+  - version: 7.0.0-M1
+    publicationDate: Dec 23, 2024
+  - version: 7.0.0-M3
     publicationDate: Mar 05, 2025
-  -
-    version: 7.0.0-M4
+  - version: 7.0.0-M4
     publicationDate: Jun 10, 2025
-  -
-    version: 7.0.0-M5
+  - version: 7.0.0-M5
     publicationDate: Jul 15, 2025
-  -
-    version: 7.0.0-RC1
+  - version: 7.0.0-RC1
     publicationDate: Aug 10, 2025
-  -
-    version: 7.0.0-RC2
+  - version: 7.0.0-RC2
     publicationDate: Sep 12, 2025
-  -
-    version: 7.0.0
+  - version: 7.0.0
     publicationDate: Oct 19, 2025
-  -
-    version: 7.0.1
+  - version: 7.0.1
     publicationDate: Nov 02, 2025
-  -
-    version: 7.0.2
+  - version: 7.0.2
     publicationDate: Nov 10, 2025
-  -
-    version: 7.0.3
+  - version: 7.0.3
     publicationDate: Nov 27, 2025
-  -
-    version: 7.0.4
+  - version: 7.0.4
     publicationDate: Dec 01, 2025
-  -
-    version: 7.0.5
+  - version: 7.0.5
     publicationDate: Jan 12, 2026
diff --git a/release.sh b/release.sh
index 44e74dcc8df..9ebfbc992d2 100755
--- a/release.sh
+++ b/release.sh
@@ -1,5 +1,4 @@
 DATE=`date +'%b %d, %Y'`
-echo "  -" >> conf/releases.yml
-echo "    version: $1" >> conf/releases.yml
+echo "  - version: $1" >> conf/releases.yml
 echo "    publicationDate: $DATE" >> conf/releases.yml
 echo ""

Reply via email to