diff --git a/ReleaseNotes.md b/ReleaseNotes.md
index 823d24092..31ad1d18e 100644
--- a/ReleaseNotes.md
+++ b/ReleaseNotes.md
@@ -13,6 +13,10 @@ Release Notes
+
+
+
+
OpenRocket 22.02.beta.05 (2022-09-28)
diff --git a/core/resources/build.properties b/core/resources/build.properties
index 9a47045d2..acda27846 100644
--- a/core/resources/build.properties
+++ b/core/resources/build.properties
@@ -1,6 +1,6 @@
# The OpenRocket build version
-build.version=22.02.RC1
+build.version=22.02.RC.01
# The copyright year for the build. Displayed in the about dialog.
# Will show as Copyright 2013-${build.copyright}
diff --git a/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java b/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java
index d587f1c1c..4437340f0 100644
--- a/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java
+++ b/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java
@@ -36,6 +36,7 @@ public class UpdateInfoRetriever {
private static final Map
devTags = Stream.of(new Object[][] {
{ "alpha", 1 },
{ "beta", 2 },
+ { "RC", 3 }, // Release Candidate
}).collect(Collectors.toMap(c -> (String) c[0], c -> (Integer) c[1]));
/* Enum for the current build version. Values:
diff --git a/core/test/net/sf/openrocket/communication/UpdateInfoTest.java b/core/test/net/sf/openrocket/communication/UpdateInfoTest.java
index 3f13cfb52..95bf1e5ba 100644
--- a/core/test/net/sf/openrocket/communication/UpdateInfoTest.java
+++ b/core/test/net/sf/openrocket/communication/UpdateInfoTest.java
@@ -92,6 +92,12 @@ public class UpdateInfoTest extends BaseTestCase {
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.beta.01", "22.beta.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.beta.02", "22.beta.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.RC.01", "22.RC.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.LATEST,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.RC.01", "22.RC.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.RC.02", "22.RC.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.alpha.01", "22.02.alpha.02"));
@@ -105,6 +111,12 @@ public class UpdateInfoTest extends BaseTestCase {
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.beta.01", "22.02.beta.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.beta.02", "22.02.beta.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.RC.01", "22.02.RC.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.RC.01", "22.02.RC.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.RC.02", "22.02.RC.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.alpha.01", "22.02.beta.02"));
@@ -112,12 +124,36 @@ public class UpdateInfoTest extends BaseTestCase {
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.alpha.01", "22.02.beta.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.alpha.02", "22.02.beta.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.alpha.01", "22.02.RC.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.alpha.01", "22.02.RC.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.alpha.02", "22.02.RC.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.beta.01", "22.02.RC.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.beta.01", "22.02.RC.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.beta.02", "22.02.RC.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.beta.01", "22.02.alpha.02"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.beta.01", "22.02.alpha.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.beta.02", "22.02.alpha.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.02.alpha.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.02.alpha.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.02", "22.02.alpha.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.02.beta.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.02.beta.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.02", "22.02.beta.01"));
assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.alpha.01", "22"));
@@ -149,6 +185,21 @@ public class UpdateInfoTest extends BaseTestCase {
assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.beta.01", "22.02.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.02"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.02.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.03"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.NEWER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.01"));
+ assertEquals(UpdateInfoRetriever.ReleaseStatus.OLDER,
+ UpdateInfoRetriever.UpdateInfoFetcher.compareLatest("22.02.RC.01", "22.02.02"));
+
// Test bogus releases
assertExceptionCompareLatest("22.02.gamma.01", "22.02");
diff --git a/install4j/22.02/macOS_resources/DS_Store b/install4j/22.02/macOS_resources/DS_Store
index 7b4b11a18..a572a3aad 100755
Binary files a/install4j/22.02/macOS_resources/DS_Store and b/install4j/22.02/macOS_resources/DS_Store differ
diff --git a/install4j/22.02/openrocket-22.02.install4j b/install4j/22.02/openrocket-22.02.install4j
index d31546c6c..1ac751328 100644
--- a/install4j/22.02/openrocket-22.02.install4j
+++ b/install4j/22.02/openrocket-22.02.install4j
@@ -1,7 +1,7 @@
-
+