Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding a Gradle Build system to the Processing IDE #888

Open
wants to merge 101 commits into
base: main
Choose a base branch
from

Conversation

Stefterv
Copy link
Collaborator

@Stefterv Stefterv commented Dec 14, 2024

Here's the first pull-request adding a new Gradle build system to the Processing IDE.

The GitHub Actions will create distributable binaries for macOS (x64, aarch64), windows (x64) and linux (x64). The other platforms will need their own CI/CD system, but I think the repo will already build on the other platforms.

In terms of compatibility I've come pretty far but I'm sure there is some functionality that I have missed.

New Features

  • Installers for macOS (dmg), Widows (msi), linux (deb)
  • Windows: Start menu item
  • Jetpack Compose
  • Kotlin Support for the IDE
  • Splash screen Refactor + Animation

Functionality to test and verify

  • Examples
  • Tweaks mode
  • P2D
  • Debugger
  • Languages
  • Contributed libraries
  • Autocomplete
  • MovieMaker
  • Exporting Applications
  • processing-java
  • java mode default libraries (dxf,svg,io,net,serial,pdf)
  • Python mode (BROKEN, already on 4.3.1 macOS aarch64, other platforms okay)
  • Android mode

To add during this pull request

To improve during this pull request

  • Legacy resource handling (rn it copies all assets to temp folder on launch)
  • Move all dependencies to libs.versions.toml
  • Version and Build number

After pull request

To consider

  • Appstores

In any case, this pull request does not break the existing Ant build system so we can either wait with the merge or we can have the Gradle version available as a preview.

The bundle size has increased quite a bit since we are shipping a JRE and a JDK instead of using the JDK to run the IDE
|linux-x64 | 257 MB |  
|macos-aarch64 | 294 MB |  
|macos-x64 | 289 MB |  
|windows-x64 | 275 MB |

P.S. this also includes the pre-processor as a Maven library, so merging this PR will add processing:java:prepocessor as a Maven package

@Stefterv
Copy link
Collaborator Author

Stefterv commented Dec 18, 2024

Screen.Recording.2024-12-18.at.09.14.01.mov

Little preview of the new splash screen and the tweak to the macOS titlebar

Before

Screen.Recording.2024-12-18.at.09.16.56.mov

errStr = DefaultErrorLocalStrSet.get().get("editor.status.error.syntax").orElse("Error");
retStr = DefaultErrorLocalStrSet.get().get(stringName).orElse(stringName);
}
var errStr = DefaultErrorLocalStrSet.get().get("editor.status.error.syntax").orElse("Error");
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still not sure how to fix this

The Processing Website has more meta-data related to the examples. I'd like to use that meta-data going forward so I've added it
@Stefterv
Copy link
Collaborator Author

Stefterv commented Dec 18, 2024

Screen.Recording.2024-12-18.200843.mp4

Windows adjusted titlebar

Suhailmo99
Suhailmo99 previously approved these changes Dec 18, 2024
@SableRaf SableRaf dismissed Suhailmo99’s stale review December 19, 2024 07:06

This PR is not ready for review.

Using the work by @mingness to simplify the contributions workflow.
Disabled the post request because that data is not saved anywhere and most hosts do not support it
@Stefterv Stefterv added this to the pde-gradle milestone Dec 20, 2024
@Stefterv Stefterv requested a review from SableRaf January 10, 2025 07:45
@Stefterv Stefterv self-assigned this Jan 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

3 participants