diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 23da6b4cd..68bd5bde3 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -14,7 +14,7 @@ Release Notes
- + OpenRocket 22.02.RC.01 (2023-01-xx) ------------------------ (through PR1996) @@ -60,6 +60,7 @@ OpenRocket 22.02.RC.01 (2023-01-xx)
+
OpenRocket 22.02.beta.05 (2022-09-28) diff --git a/core/resources-src/pix/icon/OR_15.03-icon-256.png b/core/resources-src/pix/icon/OR_15.03-icon-256.png new file mode 100644 index 000000000..c2170d358 Binary files /dev/null and b/core/resources-src/pix/icon/OR_15.03-icon-256.png differ diff --git a/core/resources-src/pix/icon/icon-windows.ico b/core/resources-src/pix/icon/icon-windows.ico deleted file mode 100644 index 44eb480a2..000000000 Binary files a/core/resources-src/pix/icon/icon-windows.ico and /dev/null differ diff --git a/core/resources/build.properties b/core/resources/build.properties index 7a49d2a88..acda27846 100644 --- a/core/resources/build.properties +++ b/core/resources/build.properties @@ -1,10 +1,10 @@ # The OpenRocket build version -build.version=22.02.beta.05 +build.version=22.02.RC.01 # The copyright year for the build. Displayed in the about dialog. # Will show as Copyright 2013-${build.copyright} -build.copyright=2022 +build.copyright=2023 # The source of the package. When building a package for a specific # distribution (Debian, Fedora etc.), this should be changed appropriately! diff --git a/core/resources/pix/icon/icon-macos.icns b/core/resources/pix/icon/icon-macos.icns new file mode 100644 index 000000000..eb307de84 Binary files /dev/null and b/core/resources/pix/icon/icon-macos.icns differ diff --git a/core/resources/pix/icon/icon-windows.ico b/core/resources/pix/icon/icon-windows.ico new file mode 100644 index 000000000..3b0725e0a Binary files /dev/null and b/core/resources/pix/icon/icon-windows.ico differ 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.xx/.gitignore b/install4j/22.02/.gitignore similarity index 86% rename from install4j/22.xx/.gitignore rename to install4j/22.02/.gitignore index 60eadae4b..e5a57839b 100644 --- a/install4j/22.xx/.gitignore +++ b/install4j/22.02/.gitignore @@ -20,3 +20,4 @@ media/ .DS_Store code_signing/ +openrocket-22.xx.install4j~ diff --git a/install4j/22.xx/macOS_resources/DS_Store b/install4j/22.02/macOS_resources/DS_Store similarity index 56% rename from install4j/22.xx/macOS_resources/DS_Store rename to install4j/22.02/macOS_resources/DS_Store index e02d00e00..a572a3aad 100755 Binary files a/install4j/22.xx/macOS_resources/DS_Store and b/install4j/22.02/macOS_resources/DS_Store differ diff --git a/install4j/22.xx/macOS_resources/macOS_installer_background.png b/install4j/22.02/macOS_resources/macOS_installer_background.png similarity index 100% rename from install4j/22.xx/macOS_resources/macOS_installer_background.png rename to install4j/22.02/macOS_resources/macOS_installer_background.png diff --git a/install4j/22.xx/macOS_resources/macOS_installer_background.psd b/install4j/22.02/macOS_resources/macOS_installer_background.psd similarity index 100% rename from install4j/22.xx/macOS_resources/macOS_installer_background.psd rename to install4j/22.02/macOS_resources/macOS_installer_background.psd diff --git a/install4j/22.xx/openrocket-22.xx.install4j b/install4j/22.02/openrocket-22.02.install4j similarity index 85% rename from install4j/22.xx/openrocket-22.xx.install4j rename to install4j/22.02/openrocket-22.02.install4j index 569397b9f..3030bc349 100644 --- a/install4j/22.xx/openrocket-22.xx.install4j +++ b/install4j/22.02/openrocket-22.02.install4j @@ -1,675 +1,639 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ../../core/resources-src/pix/icon/icon-016-4bit.png - - - - - ../../core/resources-src/pix/icon/icon-016-8bit.png - - - - - ../../core/resources-src/pix/icon/icon-016.png - - - - - ../../core/resources-src/pix/icon/icon-032-4bit.png - - - - - ../../core/resources-src/pix/icon/icon-032-8bit.png - - - - - ../../core/resources-src/pix/icon/icon-032.png - - - - - ../../core/resources-src/pix/icon/icon-048-4bit.png - - - - - ../../core/resources-src/pix/icon/icon-048-8bit.png - - - - - ../../core/resources-src/pix/icon/icon-048.png - - - - - ../../core/resources-src/pix/icon/icon-064-4bit.png - - - - - ../../core/resources-src/pix/icon/icon-064-8bit.png - - - - - ../../core/resources-src/pix/icon/icon-064.png - - - - - ../../core/resources-src/pix/icon/icon-256-1.png - - - - - ../../core/resources-src/pix/icon/icon-256.png - - - - - - - - - - - - - - - - - - - sys.installationDir - - - context.getBooleanVariable("sys.confirmedUpdateInstallation") - - - - - - ${form:welcomeMessage} - - !context.isConsole() - - - - - - String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName()); -return console.askOkCancel(message, true); - - - - - - - - updateCheck - - - - - ${i18n:ClickNext} - - - - - - !context.getBooleanVariable("sys.confirmedUpdateInstallation") - - - - ${i18n:SelectDirLabel(${compiler:sys.fullName})} - - - - - - - - suggestAppDir - validateApplicationId - existingDirWarning - checkWritable - manualEntryAllowed - checkFreeSpace - showRequiredDiskSpace - showFreeDiskSpace - allowSpacesOnUnix - validationScript - standardValidation - - - - - - - - - ${i18n:SelectAssociationsLabel} - - - - - - - - showSelectionButtons - selectionButtonPosition - - - - - - - - - ${form:confirmationMessage} - - !context.isConsole() - - - - ${i18n:CreateDesktopIcon} - - createDesktopLinkAction - - - - - ${i18n:AddToDock} - - addToDockAction - - Util.isMacOS() - - - - - - - - - ${i18n:UninstallerMenuEntry(${compiler:sys.fullName})} - - !context.getBooleanVariable("sys.programGroupDisabled") - - - - OpenRocket - - - OpenRocket - - - - - ../../core/resources-src/pix/icon/icon-windows.ico - - - - - ../../core/resources-src/pix/icon/icon-048.png - - - - !context.getBooleanVariable("sys.programGroupDisabled") - - - - - - OpenRocket - - - - context.getBooleanVariable("addToDockAction") - - - - OpenRocket Model Rocket Simulator - - - OpenRocket - - - ${compiler:sys.fullName} - - - ../../core/resources-src/pix/icon/icon-064.png - - - - - ../../core/resources-src/pix/icon/icon-windows.ico - - - - context.getBooleanVariable("createDesktopLinkAction") - - - - OpenRocket Design - ork - 59 - - - - ../../core/resources-src/pix/icon/icon-064.png - - - application/x-openrocket - - - ../../core/resources-src/pix/icon/icon-windows.ico - - - - - - - ${compiler:sys.fullName} ${compiler:sys.version} - - - - - - - ${i18n:WizardPreparing} - - - - - - - - - ${form:finishedMessage} - - - - - - - - - ${i18n:UninstallerMenuEntry(${compiler:sys.fullName})} - - - - - - - - - - - - - - - - ${form:welcomeMessage} - - !context.isConsole() - - - - - - String message = context.getMessage("ConfirmUninstall", context.getApplicationName()); -return console.askYesNo(message, true); - - - - - - - - - - - - - - - ${i18n:UninstallerPreparing} - - - - - - - - - - ${form:successMessage} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ../../core/resources/pix/icon/icon-016.png + + + + + ../../core/resources/pix/icon/icon-032.png + + + + + ../../core/resources/pix/icon/icon-048.png + + + + + ../../core/resources/pix/icon/icon-064.png + + + + + ../../core/resources/pix/icon/icon-128.png + + + + + ../../core/resources/pix/icon/icon-256.png + + + + + + + + + + + + + + + + + + + sys.installationDir + + + context.getBooleanVariable("sys.confirmedUpdateInstallation") + + + + + + ${form:welcomeMessage} + + !context.isConsole() + + + + + + String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName()); +return console.askOkCancel(message, true); + + + + + + + + updateCheck + + + + + ${i18n:ClickNext} + + + + + + !context.getBooleanVariable("sys.confirmedUpdateInstallation") + + + + ${i18n:SelectDirLabel(${compiler:sys.fullName})} + + + + + + + + suggestAppDir + validateApplicationId + existingDirWarning + checkWritable + manualEntryAllowed + checkFreeSpace + showRequiredDiskSpace + showFreeDiskSpace + allowSpacesOnUnix + validationScript + standardValidation + + + + + + + + + ${i18n:SelectAssociationsLabel} + + + + + + + + showSelectionButtons + selectionButtonPosition + + + + + + + + + ${form:confirmationMessage} + + !context.isConsole() + + + + ${i18n:CreateDesktopIcon} + + createDesktopLinkAction + + + + + ${i18n:AddToDock} + + addToDockAction + + Util.isMacOS() + + + + + + + + + ${i18n:UninstallerMenuEntry(${compiler:sys.fullName})} + + !context.getBooleanVariable("sys.programGroupDisabled") + + + + OpenRocket + + + OpenRocket + + + + + ../../core/resources/pix/icon/icon-windows.ico + + + + + ../../core/resources/pix/icon/icon-048.png + + + + !context.getBooleanVariable("sys.programGroupDisabled") + + + + + + OpenRocket + + + + context.getBooleanVariable("addToDockAction") + + + + OpenRocket Model Rocket Simulator + + + OpenRocket + + + ${compiler:sys.fullName} + + + ../../core/resources/pix/icon/icon-064.png + + + + + ../../core/resources/pix/icon/icon-windows.ico + + + + context.getBooleanVariable("createDesktopLinkAction") + + + + OpenRocket Design + ork + 59 + + + + ../../core/resources/pix/icon/icon-064.png + + + application/x-openrocket + + + ../../core/resources/pix/icon/icon-windows.ico + + + + + + + ${compiler:sys.fullName} ${compiler:sys.version} + + + + + + + ${i18n:WizardPreparing} + + + + + + + + + ${form:finishedMessage} + + + + + + + + + ${i18n:UninstallerMenuEntry(${compiler:sys.fullName})} + + + + + + + + + + + + + + + + ${form:welcomeMessage} + + !context.isConsole() + + + + + + String message = context.getMessage("ConfirmUninstall", context.getApplicationName()); +return console.askYesNo(message, true); + + + + + + + + + + + + + + + ${i18n:UninstallerPreparing} + + + + + + + + + + ${form:successMessage} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/install4j/22.xx/OpenRocket.icns b/install4j/22.xx/OpenRocket.icns deleted file mode 100644 index 2a47188fd..000000000 Binary files a/install4j/22.xx/OpenRocket.icns and /dev/null differ diff --git a/install4j/README.md b/install4j/README.md index 29633da7c..4374b443c 100644 --- a/install4j/README.md +++ b/install4j/README.md @@ -7,22 +7,24 @@ The [OpenRocket](http://www.openrocket.info) project will do its best to publish installers for the following platforms. * Windows, 64-bit -* macOS, 64-bit +* macOS, 64-bit (Intel & Apple Silicon) * Linux, 64-bit # Maintainers * Neil Weinstock * Justin Hanney * Joe Pfeiffer +* Sibo Van Gool # Instructions on updating the macOS drag-and-drop installer -This is an example of updating the installer from 22.02.beta.01 to 22.02.beta.02: -1. Download the OpenRocket-22.02.beta.01-macOS.dmg file -2. Make a read/write .dmg file using the terminal command `hdiutil convert OpenRocket-22.02.beta.01-macOS.dmg -format UDRW -o 22.02.beta.01_rw.dmg` -3. Enlarge the writable DMG, by first checking the current size: `hdiutil resize 22.02.beta.01_rw.dmg`, e.g. you get 370000 in the 'cur' column, then just resize it to e.g. 400000: `hdiutil resize -sectors 400000 22.02.beta.01_rw.dmg` -4. Mount the DMG: `hdiutil attach 22.02.beta.01_rw.dmg` -5. Open the OpenRocket-disk from your desktop and change the app name from 22.02.beta.01 to 22.02.beta.02 -6. Copy the .DS_Store to `openrocket/install4j/22.xx/macOS_resources` by running the command `cp /Volumes/OpenRocket/.DS_Store openrocket/install4j/22.xx/macOS_resources/DS_Store` -7. Eject the OpenRocket DMG disk from your desktop (important step) -8. Delete `22.02.beta.01_rw.dmg` -9. You're all done! +This is an example of updating the installer from 22.02.beta.05 to 22.02: +1. Make sure install4j is not opened +2. Download the OpenRocket-22.02.beta.05-macOS.dmg file +3. Make a read/write .dmg file using the terminal command `hdiutil convert OpenRocket-22.02.beta.05-macOS.dmg -format UDRW -o 22.02.beta.05_rw.dmg` +4. Enlarge the writable DMG, by first checking the current size: `hdiutil resize 22.02.beta.05_rw.dmg`, e.g. you get 430000 in the 'cur' column, then just resize it to e.g. 500000: `hdiutil resize -sectors 500000 22.02.beta.05_rw.dmg` +5. Mount the DMG: `hdiutil attach 22.02.beta.05_rw.dmg` +6. Open the OpenRocket-disk from your desktop and change the app name from 22.02.beta.05 to 22.02 +7. Copy the .DS_Store to `openrocket/install4j/22.02/macOS_resources` by running the command `cp /Volumes/OpenRocket/.DS_Store openrocket/install4j/22.02/macOS_resources/DS_Store` +8. Eject the OpenRocket DMG disk from your desktop (important step) +9. Delete `22.02.beta.05_rw.dmg` +10. You're all done!