@@ -12,6 +12,8 @@ import java.io.File
1212import java .nio .file .attribute .PosixFilePermissions
1313import java .nio .charset .StandardCharsets
1414import java .nio .file .Files
15+ import java .time .LocalDate
16+ import java .time .format .DateTimeFormatter
1517
1618val usageMessage = """
1719 |Usage:
@@ -154,7 +156,6 @@ case class ReleasesRange(first: Option[String], last: Option[String]):
154156 val index = releases.indexWhere(_.version == version)
155157 assert(index > 0 , s " ${version} matches no nightly compiler release " )
156158 index
157-
158159 val startIdx = first.map(releaseIndex(_)).getOrElse(0 )
159160 val endIdx = last.map(releaseIndex(_) + 1 ).getOrElse(releases.length)
160161 val filtered = releases.slice(startIdx, endIdx).toVector
@@ -181,12 +182,15 @@ object Releases:
181182 re.findAllMatchIn(xml.mkString)
182183 .flatMap{ m => Option (m.group(1 )).map(Release .apply) }
183184 .toVector
185+ .sortBy: release =>
186+ (release.version, release.date)
184187
185188 def fromRange (range : ReleasesRange ): Vector [Release ] = range.filter(allReleases)
186189
187190case class Release (version : String ):
188191 private val re = raw " .+-bin-(\d{8})-(\w{7})-NIGHTLY " .r
189- def date : String =
192+ def date : LocalDate = LocalDate .parse(dateString, DateTimeFormatter .BASIC_ISO_DATE )
193+ def dateString : String =
190194 version match
191195 case re(date, _) => date
192196 case _ => sys.error(s " Could not extract date from release name: $version" )
0 commit comments