guijs icon indicating copy to clipboard operation
guijs copied to clipboard

Tauri Bundling & Updating

Open nothingismagick opened this issue 4 years ago • 4 comments

  1. There is the @guijs/server-core which we will build and ship as a sideloaded node app in the binary space of the tauri bundle for MacOS, Linux (arch, rpm, deb, ubuntu), Windows 10 - we won't ship the node binary, expecting that the dev has it installed in their $path.

  2. There is the @guijs/frontend-core which we will build and ship as the HTML/JS/CSS app in the tauri binarys space using the no-server methodology.

  3. Ideally, the "first run" of the binary would do some system analysis and if the specs aren't met, then enquire if the user wants the binary to drop to an internal shell and install nodejs with nvm etc - or if it should close and let the user do that themselves.

  4. Publishing an app will be made with GH Actions using the matrix like at Tauri. All node modules will be hosted at NPM - but we can build the tauri app from source.

  5. Updating will be done via GH artifact download.

Todo List:

  • [x] icon creation with tauricon
  • [x] app.js and deps bundled into sideloader space (consider compression options)
  • [x] build of the frontend, transpilation for no-server drop into app-binary
  • [x] first run "wizard" and API hooks with platform and dependency detection
  • [x] CI build pipeline with "release" strategy
  • [ ] updater (will require a number of utility releases to get right. probably 5-10)

nothingismagick avatar Jan 17 '20 12:01 nothingismagick

Updating in this issue should be limited to the tauri app, since guijs will have it's own updating system. :)

Ideally guijs should work both with and without Tauri on the user computer, for example with the vue ui command. I think we will only bundle an installer package with the Tauri app, which will take care of downloading the frontend app and the node backend.

Akryum avatar Jan 17 '20 22:01 Akryum

So the status on this issue is looking good. The updating of guijs-server seems to be working well, but we don't yet have a working POC for updating the binary. This is being tracked over at tauri: https://github.com/tauri-apps/tauri/issues/68

nothingismagick avatar Feb 24 '20 10:02 nothingismagick

@nothingismagick Thanks for the breakdown https://github.com/Akryum/guijs/issues/2#issue-551386074 it's really interesting. I was wondering what you used to package the server as a binary, I can't seem to see build instructions in package.json or src-tauri

gregpalaci avatar Oct 03 '20 22:10 gregpalaci

I don't speak shell script that well but is this the binary that runs the server-core? https://github.com/Akryum/guijs/tree/master/packages/%40guijs/tauri-app/src-tauri/bin

gregpalaci avatar Oct 05 '20 19:10 gregpalaci