Skip to content

Readme updates#13

Merged
dereklopes merged 8 commits intodevelopfrom
master
Mar 19, 2026
Merged

Readme updates#13
dereklopes merged 8 commits intodevelopfrom
master

Conversation

@dereklopes
Copy link
Copy Markdown
Owner

No description provided.

dereklopes and others added 8 commits June 14, 2019 21:26
Updated jar file to match source code
Updating Readme on Master
Updated usage instructions PDF
Fix for MFH as axis of rotation calculations not using normalized input numbers
* Migrate build to Maven + Java 21 with jpackage distribution

- Add pom.xml: Java 21, OpenJFX 21.0.2, JUnit 5.10.2, javafx-maven-plugin
- Add module-info.java (JPMS module 'Calculator')
- Restructure sources into Maven standard layout (src/main/java, src/main/resources, src/test/java)
- Add .github/workflows/build.yml: CI on ubuntu/windows/macos with jpackage app-image output
- Update .gitignore to exclude Maven target/ directory

Run the app: mvn javafx:run
Run tests:   mvn test
Build dist:  mvn package (then see GitHub Actions for jpackage step)

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Add macos-13 runner to CI matrix for Intel Mac support

macos-latest now runs on ARM64 (Apple Silicon), so Intel Mac users
need a separate macos-13 job to get a compatible x86-64 artifact.

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Publish platform artifacts to GitHub Releases on version tags

- Add tags: ["v*"] trigger so pushing e.g. v1.0.0 kicks off a release
- Zip each jpackage output (zip on Linux/macOS, Compress-Archive on Windows)
  so each platform produces a single downloadable archive
- Add a release job (needs: build) that downloads all four zips and
  publishes them to the GitHub release via softprops/action-gh-release

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Rename macos-13 artifact to macos-intel for clarity

Uses matrix include to set artifact-name: macos-intel on the macos-13
runner; other runners fall back to the OS name as before.

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Use clean platform names and version tag in artifact filenames

Switches matrix to include-only so every platform gets an explicit
short name (ubuntu, windows, macos, macos-intel). Appends github.ref_name
to each zip so release assets read e.g. PelvicRotationCalculator-macos-intel-v1.0.0.zip.

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Rename ubuntu artifact to linux

The app-image bundles the JVM so it's not Ubuntu-specific; it runs on
any modern Linux distro with glibc >= 2.35 (Debian 12+, Fedora 36+, Arch, etc.).

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Fix zip failure caused by slash in ref name

github.ref_name for branch builds (e.g. claude/feature-branch) contains
a '/' which the shell interprets as a directory separator, causing the
zip/Compress-Archive command to fail with "no such file or directory".

Add a sanitize step that replaces '/' with '-' before using the ref name
in the zip filename. Tags like v1.0.0 are unaffected.

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Fix jpackage on macOS Intel by selecting full Xcode toolchain

On macOS 13 Intel runners, xcode-select often points to the CLT
directory rather than the full Xcode app, which causes jpackage to
fail when it invokes xcrun-backed tools to assemble the app bundle.
Explicitly switch to /Applications/Xcode.app before jpackage.

Also add --verbose to jpackage on all non-Windows platforms so any
future failure produces actionable output in the Actions log.

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Remove macos-13 (Intel) runner — no longer supported by GitHub Actions

The macos-13 runner image has been retired; attempting to use it
produces "The configuration 'macos-13-us-default' is not supported".
GitHub no longer offers hosted Intel Mac runners. The macos-latest
(Apple Silicon) build remains as the macOS artifact.

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Use OpenJFX jmods instead of Maven jars for jpackage bundling

The Maven JavaFX artifacts split Java classes and native libraries
into separate jars (main artifact vs platform classifier). jpackage's
internal jlink only processes the modular jar and misses the native
libs, producing an app image that fails with "Failed to launch JVM".

OpenJFX jmods bundle classes and native libraries together, which is
exactly what jlink/jpackage needs. Download platform-specific jmods
from Gluon for each matrix entry and use them on the module path.

https://claude.ai/code/session_01DdbecMTtUNzx9BA5TdY9iB

* Open Calculator package to javafx.graphics for reflective instantiation

jpackage enforces strict module boundaries, so javafx.graphics needs
access to construct CalculatorApplication via reflection at launch.



* Fix artifact zip structure — upload directory instead of zip file

upload-artifact already creates a zip for download, so uploading a zip
file caused double-zipping. Now the build job uploads the dist directory
directly and the release job handles creating zips for release assets.

Also removes the ref-name sanitize step which is no longer needed.



* Switch macOS packaging from app-image to DMG to fix Gatekeeper block

Zipping an app-image breaks the ad-hoc code signature, causing macOS to
show "is damaged and can't be opened" with no bypass. A DMG preserves
the signature, so users see the bypassable "developer cannot be verified"
dialog instead (right-click > Open works).



* Update instructions for opening on Mac

* Remove old source files superseded by Maven directory layout

These files under src/Calculator/ were replaced by the Maven standard
layout (src/main/java/, src/main/resources/, src/test/java/) but never
deleted.



---------

Co-authored-by: Claude <noreply@anthropic.com>
…install instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dereklopes dereklopes merged commit 7352f6a into develop Mar 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant