Skip to content

Commit a45a06b

Browse files
WojciechMazurtgodzik
authored andcommitted
Fix bisect scripts - Maven metadata.xml releases are no longer ordered by release date (scala#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 [Cherry-picked 7093dad]
1 parent a83f567 commit a45a06b

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
@@ -12,6 +12,8 @@ import java.io.File
1212
import java.nio.file.attribute.PosixFilePermissions
1313
import java.nio.charset.StandardCharsets
1414
import java.nio.file.Files
15+
import java.time.LocalDate
16+
import java.time.format.DateTimeFormatter
1517

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

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

Comments
 (0)