Skip to content

Commit 7093dad

Browse files
Fix bisect scripts - Maven metadata.xml releases are no longer ordered by release date (#23410)
Fixes bisect script which stopped to work correctly with latest https://repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/maven-metadata.xml revisions where releases are no longer sorted by date
1 parent 60fa07a commit 7093dad

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

project/scripts/bisect.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import java.io.File
1313
import java.nio.file.attribute.PosixFilePermissions
1414
import java.nio.charset.StandardCharsets
1515
import java.nio.file.Files
16+
import java.time.LocalDate
17+
import java.time.format.DateTimeFormatter
1618

1719
val 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

189192
case 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

Comments
 (0)