@@ -13,6 +13,8 @@ import java.io.File
13
13
import java .nio .file .attribute .PosixFilePermissions
14
14
import java .nio .charset .StandardCharsets
15
15
import java .nio .file .Files
16
+ import java .time .LocalDate
17
+ import java .time .format .DateTimeFormatter
16
18
17
19
val usageMessage = """
18
20
|Usage:
@@ -156,7 +158,6 @@ case class ReleasesRange(first: Option[String], last: Option[String]):
156
158
val index = releases.indexWhere(_.version == version)
157
159
assert(index > 0 , s " ${version} matches no nightly compiler release " )
158
160
index
159
-
160
161
val startIdx = first.map(releaseIndex(_)).getOrElse(0 )
161
162
val endIdx = last.map(releaseIndex(_) + 1 ).getOrElse(releases.length)
162
163
val filtered = releases.slice(startIdx, endIdx).toVector
@@ -183,12 +184,15 @@ object Releases:
183
184
re.findAllMatchIn(xml.mkString)
184
185
.flatMap{ m => Option (m.group(1 )).map(Release .apply) }
185
186
.toVector
187
+ .sortBy: release =>
188
+ (release.version, release.date)
186
189
187
190
def fromRange (range : ReleasesRange ): Vector [Release ] = range.filter(allReleases)
188
191
189
192
case class Release (version : String ):
190
193
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 =
192
196
version match
193
197
case re(date, _) => date
194
198
case _ => sys.error(s " Could not extract date from release name: $version" )
0 commit comments