otfried/ipe

Decide how to continue on Windows

Opened this issue · 1 comments

With only a little extra work, the Electron edition could become the new Windows version.

Advantages:

  • It can be built automatically by github CI. We could even have snapshot releases when there are interesting updates in between full releases.
  • It looks very nice, and has all the improvements of the web edition (e.g. drag and drop for reordering layers, views, and pages).
  • It uses modern technologies and Electron provides the packaging, so it should be easy to distribute it through the Windows app store.
  • Since the code is nearly identical to the Electron version on Linux, which I use myself, it's easier to detect and fix problems early.

Disadvantages:

  • The Electron edition takes about 200MB disk space, compared to about 5MB for the current Ipe Windows version.
  • The Electron edition does not run under Wine, so if I ever need to test something specific to Windows, I need a Windows machine.
  • It will be impossible to add ipelets that are implemented in C++ without rebuilding the entire thing. However, adding C++ ipelets on Windows is also currently difficult, as they need to be compiled with the same compiler that compiles Ipe - so in the end this is a task suitable only for hard-core developers, who can anyway do whatever they want.

Multiple, in parts unrelated ideas for this:

Have you checked out tauri as alternative for electron? It should bring all the same advantages as electron plus a smaller package size (since it always uses the platform-native webview instead of packaging its own chrome version) and maybe even better wine compatibility.

For building windows packages in CI, have you considered the cpack tool? It comes pretty much for free for cmake-based builds and I recently worked on also adding this to the OGDF. Moreover, cmake would integrate well with both Qt and emscripten. I actually ported the relevant parts of the current ipe MakeFiles over to CMake as that was way easier for my initial ipe-web prototype. I could help in doing that properly for the rest of ipe as additional or even replacement build system, which would also make building and developing (cmake is good at finding dependencies and IDEs are also a lot better at understanding cmake projects) much easier on most platforms.

Independent of those technicalities, I would suggest doing what suits you best from an organisatorial perspective. If there are enough windows users that want a native version, it should be possible to find one of them who is willing to (help) maintain a native windows build. If not, it should be perfectly fine to switch to a web-based version and your resources are also better used somewhere else (which is probably also more fun for you).