Merge pull request #1959 from SiboVG/22.02_prep

Prep OR for 22.02 release candidate 1
This commit is contained in:
Sibo Van Gool 2023-01-26 10:33:46 +01:00 committed by GitHub
commit b052508f03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 709 additions and 689 deletions

View File

@ -60,6 +60,7 @@ OpenRocket 22.02.RC.01 (2023-01-xx)
</div>
<div id="22.02.beta.05">
OpenRocket 22.02.beta.05 (2022-09-28)

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

View File

@ -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!

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

View File

@ -36,6 +36,7 @@ public class UpdateInfoRetriever {
private static final Map<String, Integer> 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:

View File

@ -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");

View File

@ -20,3 +20,4 @@ media/
.DS_Store
code_signing/
openrocket-22.xx.install4j~

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<install4j version="10.0.4" transformSequenceNumber="10">
<directoryPresets config="../../core/resources-src/pix/icon" />
<application name="OpenRocket 22.02.beta.05" applicationId="8434-9327-1469-6373" mediaDir="media" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.version}_${compiler:sys.platform}" shortName="OpenRocket" publisher="OpenRocket" publisherWeb="http://openrocket.info" version="22.02.beta.05" allPathsRelative="true" convertDotsToUnderscores="false" macVolumeId="5f58a2be20d8e22f" javaMinVersion="11" javaMaxVersion="11" jdkMode="jdk" jdkName="JDK 11.0">
<directoryPresets config="../../core/resources/pix/icon" />
<application name="OpenRocket 22.02.RC.01" applicationId="8434-9327-1469-6373" mediaDir="media" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.version}_${compiler:sys.platform}" shortName="OpenRocket" publisher="OpenRocket" publisherWeb="http://openrocket.info" version="22.02.RC.01" allPathsRelative="true" convertDotsToUnderscores="false" macVolumeId="5f58a2be20d8e22f" javaMinVersion="11" javaMaxVersion="11" jdkMode="jdk" jdkName="JDK 11.0">
<codeSigning macEnabled="true" macPkcs12File="./code_signing/OpenRocket_macOS.p12" windowsEnabled="true" windowsPkcs12File="./code_signing/OpenRocket_Windows.pfx" macNotarize="true" appleId="sibo.vangool@hotmail.com" />
<jreBundles jdkProviderId="Liberica" release="11/11.0.15+10">
<jreBundles jdkProviderId="Liberica" release="11/11.0.17+7">
<modules>
<defaultModules set="jre" />
<module name="java.scripting" />
@ -19,110 +19,67 @@
</entries>
</files>
<launchers>
<launcher name="OpenRocket 22.02.beta.05" id="59" icnsFile="OpenRocket.icns">
<executable name="OpenRocket" iconSet="true" iconFile="../../core/resources-src/pix/icon/icon-windows.ico" executableDir="." executableMode="gui">
<versionInfo legalCopyright="Copyright 2007-2022 Sampo Niskanen and Others" />
<launcher name="OpenRocket 22.02" id="59" icnsFile="../../core/resources/pix/icon/icon-macos.icns">
<executable name="OpenRocket" iconSet="true" iconFile="../../core/resources/pix/icon/icon-windows.ico" executableDir="." executableMode="gui">
<versionInfo include="true" fileDescription="A model rocket flight-trajectory simulator." legalCopyright="Copyright 2007-2023 Sampo Niskanen and Others" internalName="${compiler:sys.shortName} ${compiler:sys.version}" />
</executable>
<splashScreen show="true" bitmapFile="../../core/resources/pix/splashscreen.png" />
<splashScreen show="true" width="662" height="336" bitmapFile="../../core/resources/pix/splashscreen.png">
<text>
<statusLine x="491" y="200" fontColor="255,255,255" />
<versionLine x="489" y="143" text="version ${compiler:sys.version}" fontSize="10" fontColor="255,255,255" />
</text>
</splashScreen>
<java mainClass="net.sf.openrocket.startup.OpenRocket">
<classPath>
<archive location="OpenRocket.jar" failOnError="false" />
</classPath>
</java>
<iconImageFiles>
<file path="../../core/resources-src/pix/icon/icon-016-4bit.png" />
<file path="../../core/resources-src/pix/icon/icon-016-8bit.png" />
<file path="../../core/resources-src/pix/icon/icon-016.png" />
<file path="../../core/resources-src/pix/icon/icon-032-4bit.png" />
<file path="../../core/resources-src/pix/icon/icon-032-8bit.png" />
<file path="../../core/resources-src/pix/icon/icon-032.png" />
<file path="../../core/resources-src/pix/icon/icon-048.png" />
<file path="../../core/resources-src/pix/icon/icon-048-4bit.png" />
<file path="../../core/resources-src/pix/icon/icon-048-8bit.png" />
<file path="../../core/resources-src/pix/icon/icon-064-4bit.png" />
<file path="../../core/resources-src/pix/icon/icon-064-8bit.png" />
<file path="../../core/resources-src/pix/icon/icon-064.png" />
<file path="../../core/resources-src/pix/icon/icon-256-1.png" />
<file path="../../core/resources-src/pix/icon/icon-256.png" />
<file path="../../core/resources/pix/icon/icon-016.png" />
<file path="../../core/resources/pix/icon/icon-032.png" />
<file path="../../core/resources/pix/icon/icon-048.png" />
<file path="../../core/resources/pix/icon/icon-064.png" />
<file path="../../core/resources/pix/icon/icon-128.png" />
<file path="../../core/resources/pix/icon/icon-256.png" />
</iconImageFiles>
<macStaticAssociations>
<fileAssociation extension="ork" description="OpenRocket Design" iconFile="./OpenRocket.icns" role="editor" />
<fileAssociation extension="ork" description="OpenRocket Design" iconFile="../../core/resources/pix/icon/icon-macos.icns" role="editor" />
</macStaticAssociations>
</launcher>
</launchers>
<installerGui>
<applications>
<application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" customIcnsFile="./OpenRocket.icns" customIcoFile="../../core/resources-src/pix/icon/icon-windows.ico">
<application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" customIcnsFile="../../core/resources/pix/icon/icon-macos.icns" customIcoFile="../../core/resources/pix/icon/icon-windows.ico">
<serializedBean>
<property name="customIconImageFiles">
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-016-4bit.png</string>
<string>../../core/resources/pix/icon/icon-016.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-016-8bit.png</string>
<string>../../core/resources/pix/icon/icon-032.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-016.png</string>
<string>../../core/resources/pix/icon/icon-048.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-032-4bit.png</string>
<string>../../core/resources/pix/icon/icon-064.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-032-8bit.png</string>
<string>../../core/resources/pix/icon/icon-128.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-032.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-048-4bit.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-048-8bit.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-048.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-064-4bit.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-064-8bit.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-064.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-256-1.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-256.png</string>
<string>../../core/resources/pix/icon/icon-256.png</string>
</object>
</add>
</property>
@ -267,12 +224,12 @@ return console.askOkCancel(message, true);
</property>
<property name="icon">
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-windows.ico</string>
<string>../../core/resources/pix/icon/icon-windows.ico</string>
</object>
</property>
<property name="unixIconFile">
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-048.png</string>
<string>../../core/resources/pix/icon/icon-048.png</string>
</object>
</property>
</serializedBean>
@ -299,12 +256,12 @@ return console.askOkCancel(message, true);
<property name="name" type="string">${compiler:sys.fullName}</property>
<property name="unixIconFile">
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-064.png</string>
<string>../../core/resources/pix/icon/icon-064.png</string>
</object>
</property>
<property name="winIconFile">
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-windows.ico</string>
<string>../../core/resources/pix/icon/icon-windows.ico</string>
</object>
</property>
</serializedBean>
@ -318,13 +275,13 @@ return console.askOkCancel(message, true);
<property name="unix" type="boolean" value="true" />
<property name="unixIconFile">
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-064.png</string>
<string>../../core/resources/pix/icon/icon-064.png</string>
</object>
</property>
<property name="unixMimeType" type="string">application/x-openrocket</property>
<property name="windowsIconFile">
<object class="com.install4j.api.beans.ExternalFile">
<string>../../core/resources-src/pix/icon/icon-windows.ico</string>
<string>../../core/resources/pix/icon/icon-windows.ico</string>
</object>
</property>
</serializedBean>
@ -658,18 +615,25 @@ return console.askYesNo(message, true);
</jreBundle>
</windows>
<unixInstaller name="Unix Installer" id="168" mediaFileName="${compiler:sys.shortName}-${compiler:sys.version}-Linux" />
<macosArchive name="macOS Single Bundle Archive (Intel)" id="213" mediaFileName="${compiler:sys.shortName}-${compiler:sys.version}-macOS" launcherId="59">
<macosArchive name="macOS (Intel)" id="213" mediaFileName="${compiler:sys.shortName}-${compiler:sys.version}-macOS-Intel" launcherId="59">
<topLevelFiles>
<file name=".DS_Store" file="./macOS_resources/DS_Store" />
<file name=".background/macOS_installer_background.png" file="./macOS_resources/macOS_installer_background.png" />
<symlink name="Applications" target="/Applications" />
</topLevelFiles>
</macosArchive>
<macosArchive name="macOS (Apple Silicon)" id="240" mediaFileName="${compiler:sys.shortName}-${compiler:sys.version}-macOS-AppleSilicon" architecture="aarch64" launcherId="59">
<topLevelFiles>
<file name=".DS_Store" file="./macOS_resources/DS_Store" />
<file name=".background/macOS_installer_background.png" file="./macOS_resources/macOS_installer_background.png" />
<symlink name="Applications" target="/Applications" />
</topLevelFiles>
</macosArchive>
<macos name="macOS Single Bundle" id="224" mediaFileName="${compiler:sys.shortName}-${compiler:sys.version}-macOS_ARM" launcherId="59" />
</mediaSets>
<buildIds buildAll="false">
<buildIds>
<mediaSet refId="60" />
<mediaSet refId="168" />
<mediaSet refId="213" />
<mediaSet refId="240" />
</buildIds>
</install4j>

Binary file not shown.

View File

@ -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!