Skip to content

Commit 3dabed0

Browse files
authored
Merge pull request #3659 from guardian/jsh-rb/hash-does-not-indicate-snapshot
Prevent version.isSnapshot from incorrectly identifying versions with hashes as snapshots
2 parents 26d54ba + e930c3c commit 3dabed0

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

modules/core/src/main/scala/org/scalasteward/core/data/Version.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,9 @@ final case class Version(value: String) {
9999
case _ => false
100100
}
101101

102-
private def isSnapshot: Boolean =
102+
def isSnapshot: Boolean =
103103
components.exists {
104104
case a: Version.Component.Alpha => a.isSnapshotIdent
105-
case _: Version.Component.Hash => true
106105
case _ => false
107106
}
108107

modules/core/src/test/scala/org/scalasteward/core/data/VersionTest.scala

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,6 @@ class VersionTest extends DisciplineSuite {
267267
List("0.21.7+81-a0ff7dd-SNAPSHOT", "0.22.0+99-a0087dd-SNAPSHOT"),
268268
Some("0.22.0+99-a0087dd-SNAPSHOT")
269269
),
270-
("0.1.1", List("0.2.1-485fdf3b"), None),
271-
("0.1.1-RC1", List("0.2.1-485fdf3b"), None),
272270
("0.1.1-ALPHA", List("0.2.1-SNAPSHOT"), None),
273271
("0.21.5", List("0.21.6+75-6ad94f6f-SNAPSHOT"), None),
274272
("0.21.6", List("0.21.6+75-6ad94f6f-SNAPSHOT"), None),
@@ -282,14 +280,13 @@ class VersionTest extends DisciplineSuite {
282280
("0.1.1", List("0.1.2"), Some("0.1.2")),
283281
("0.1.1-RC1", List("0.1.2"), Some("0.1.2")),
284282
("0.1.1-ALPHA", List("0.1.2"), Some("0.1.2")),
285-
("0.1.1", List("0.1.2-FEAT"), Some("0.1.2-FEAT")),
286-
("0.1.1", List("0.1.2-FEAT+3dfde9d7"), None)
283+
("0.1.1", List("0.1.2-FEAT"), Some("0.1.2-FEAT"))
287284
)
288285

289286
val rnd = new Random()
290287
nextVersions.foreach { case (current, versions, result) =>
291288
val obtained = Version(current).selectNext(rnd.shuffle(versions).map(Version.apply), true)
292-
assertEquals(obtained, result.map(Version.apply))
289+
assertEquals(obtained, result.map(Version.apply), s"For current release $current")
293290
}
294291
}
295292

@@ -306,6 +303,12 @@ class VersionTest extends DisciplineSuite {
306303
assertEquals(Component.render(Component.Empty :: Component.parse(original)), original)
307304
}
308305

306+
test("Stable preview releases should not be identified as snapshots") {
307+
val previewVersion =
308+
Version("0.0.37-PREVIEW.try-out-verify-artifact-hashes.2024-04-25T1652.c7fa7c2b")
309+
assertEquals(previewVersion.isSnapshot, false)
310+
}
311+
309312
def checkPairwise(versions: List[String]): Unit = {
310313
val pairs = versions.tails.flatMap {
311314
case h :: t => t.map(v => (Version(h), Version(v)))

0 commit comments

Comments
 (0)