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