@@ -13,6 +13,8 @@ import java.io.File
1313import java .nio .file .attribute .PosixFilePermissions
1414import java .nio .charset .StandardCharsets
1515import java .nio .file .Files
16+ import java .time .LocalDate
17+ import java .time .format .DateTimeFormatter
1618
1719val usageMessage = """
1820 |Usage:
@@ -156,7 +158,6 @@ case class ReleasesRange(first: Option[String], last: Option[String]):
156158 val index = releases.indexWhere(_.version == version)
157159 assert(index > 0 , s " ${version} matches no nightly compiler release " )
158160 index
159-
160161 val startIdx = first.map(releaseIndex(_)).getOrElse(0 )
161162 val endIdx = last.map(releaseIndex(_) + 1 ).getOrElse(releases.length)
162163 val filtered = releases.slice(startIdx, endIdx).toVector
@@ -183,12 +184,15 @@ object Releases:
183184 re.findAllMatchIn(xml.mkString)
184185 .flatMap{ m => Option (m.group(1 )).map(Release .apply) }
185186 .toVector
187+ .sortBy: release =>
188+ (release.version, release.date)
186189
187190 def fromRange (range : ReleasesRange ): Vector [Release ] = range.filter(allReleases)
188191
189192case class Release (version : String ):
190193 private val re = raw " .+-bin-(\d{8})-(\w{7})-NIGHTLY " .r
191- def date : String =
194+ def date : LocalDate = LocalDate .parse(dateString, DateTimeFormatter .BASIC_ISO_DATE )
195+ def dateString : String =
192196 version match
193197 case re(date, _) => date
194198 case _ => sys.error(s " Could not extract date from release name: $version" )
0 commit comments