A digital logic simulator, written in Java.
- Update
src/jls/JLSInfo.java
'sver
,release
, andbuildNum
- Rebuild and export to Jar (File > Export; Java > Runnable JAR)
- Launch Config
JLS - JLS
- Place it in JLS/releases/JLS.jar
- Select "Extract required libraries into generated JAR`
- Launch Config
- Navigate to
releases
Skip to step 3 if not updating the JRE.
- Create certificates for Application install to login keychain. (https://developer.apple.com/help/account/create-certificates/create-developer-id-certificates/)
- Create a multi-platform version of jre (using notes from https://incenp.org/notes/2023/universal-java-app-on-macos.html)
- Get latest tgz bundles from Adoptium: https://adoptium.net/temurin/releases/?os=mac and place in jre folder (OpenJDK*-jre_x64_mac_hotspot_*.tar.gz and OpenJDK.+-jre_x64_mac_hotspot_(.+).tar.gz)
- Run
jre/mergeVersions.sh
to extract them and create a merged Universal version
- Update
remakeMacBundle.sh
with updates to files, directories, versions.- Update
app-version
- If jre has been updated, update
runtime-image
path
- Update
- Run
remakeMacBundle.sh
Login to windows, Academic lab; Open bash and navigate to H:\git\JLS; git pull
Skip to step 2 if not updating the JRE.
- Get the jre (https://adoptium.net/temurin/releases/), put it in
jre
, and unzip it. - Copy the JLS jar to the contents folder (
cd releases/windows
,cp ../JLS.jar contents
) - Update the
remakeExe.sh
script with version number and any changes to jre directory/name. - Remove old version (remove the JLS director in releases/windows)
- Run
remakeExe.sh
Create a Tag for most recent commit. Create a release. Add .jar and _macOS.zip and .zip from windows to the release.
git tag -a v4.6.0 -m "Version 4.6 Release"
git push origin tag v4.6.0
Got to GitHub repo @ https://github.com/bsiever/JLS/releases and Draft a new release.
Attach executables. Need to upload windows (maybe via google drive transfer. Ugh)
-
Resources for converting svgs to icons (macOS icons)
-
brew install svg2png
-
Script from https://gist.github.com/adriansr/1da9b18a8076b0f8a977a5eea0ae41ef
-
-
Convert SVGs to ico
brew install ImageMagick
mogrify -format ico -density 1200 -background transparent -trim -resize 256x256 -gravity center -extent 256x256 -define icon:auto-resize *.svg
(https://superuser.com/questions/260047/batch-convert-svg-images-to-desired-size-png-or-ico)
-
Package specific resources
-
jpackage for creating Java packages
-
macOS build / bundle attempts
jpackage --type app-image --app-version 4.4 --copyright "" --description "J(ava) Logic Simulator" \
--icon /Users/bsiever/git/JLS/macOS/icon/JLSicon.icns \
--mac-package-identifier "info.siever.JLS" --mac-package-name "JLS" \
--file-associations /Users/bsiever/git/JLS/macOS/mac_associations.properties \
--runtime-image /Users/bsiever/git/JLS/macOS/jre/universal/jdk-21.0.3+9-jre/Contents/jre \
--input contents --main-jar JLS.jar --main-class jls.JLS \
--mac-sign
jpackage --type dmg --app-version 4.3 --copyright "" --description "J(ava) Logic Simulator" \
--icon /Users/bsiever/git/JLS/macOS/icon/icon.icns \
--mac-package-identifier "info.siever.JLS" --mac-package-name "JLS" \
--file-associations /Users/bsiever/git/JLS/macOS/associations.info \
--runtime-image /Users/bsiever/git/JLS/macOS/jre/universal/jdk-21.0.3+9-jre/Contents/jre \
--input contents --main-jar JLS.jar --main-class jls.JLS \
--mac-sign --mac-app-category education --mac-app-store --license-file LICENSE --type dmg`