Skip to content

Conversation

@JanisErdmanis
Copy link

I looked into ImageColorThresholderApp as an example for bundling Makie based aplications with AppBundler to find out any missing bugs. Initially the application did not have a main entry point, but adding it was relativellly straightforward. I used NativeFileDialog at the initial launch, enabling the user to select their image file for loading. UX could be enhanced, but for now, demonstrating that it can be done is more useful.

To run the build locally, run

julia --project=meta meta/build.jl --build-dir=build

Alternatively, it can be run in the Action tab with Build Release Assets. The build Release Assets should run automatically once a new version is tagged, which will upload assets to the corresponding release. I don't know how it would interact with TagBot, and hence it may necessitate triggering the action manually.

I had not previously attempted to bundle the Makie application. I encountered a minor issue with SignedDistanceFields, which uses the outdated REQUIRES format, but this has now been resolved. Another issue came from precompilation of GLMakie on a headless server for MacOS and Windows which for now I have resolved with patching GLMakie/src/precompiles.jl file by commenting out @compile_workload part. In future one can add individual precompilation statements there so OpenGL would not need to be used in compilation step.

The build is quite large. Makie is a significant dependency, and there are a total of 300 dependencies. For macOS, it creates an installer of about 500 MB, which is excessively large. Future plans include integrating PackageCompiler, which might help reduce the size.

I have tested the installers for all operating systems. On MacOS It takes only about 5 seconds to launch. The Snap is also functional. On Windows though I found out that GLMakie does not actually work on my computer, for which, I opened the issue MakieOrg/Makie.jl#5342

There is some interference during testing, especially with Aqua, that needs to be resolved. It appears that it attempts to run the ImageColorThresholderApp.main function during tests, which should be skipped. I have also updated the dependencies.

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