Skip to content

TeselaGen/ove-electron

Repository files navigation

image

ove-electron

This packages the open-vector-editor web app as an electron tool that can be used on windows/mac/linux

image

Installation Instructions:

chmod +x Open-Vector-Editor-0.1.5.AppImage
./Open-Vector-Editor-0.1.5.AppImage

Developing

yarn
yarn start

To speed up trying out changes from OVE

cd open-vector-editor;
yarn link;
cd ove-electron;
yarn link open-vector-editor

<!-- comment in these lines in open-vector-editor nwb.config.js to speed up the build -->
esModules: console.log("commentMeBackOut") || false,
cjs: console.log("commentMeBackOut") || false

cd open-vector-editor;
yarn build; //this will now build only the UMD file that ove-electron uses

Releasing

  • Bump the package.json version number
  • Build mac, windows and linux:
yarn deploy
  • (despite having tried to remove macOS code signing from the process because it takes way too long to run, it looks like mac says the file is Damaged unless it has been code-signed - TeselaGen/openVectorEditor#862 (comment))
  • Go to https://github.com/tnrich/ove-electron/releases
  • Edit the most recently pushed release to publish it
  • Add the following instructions to the release notes <---------------Copy Paste The Following into the Release Notes------------------->

Installing on Mac

  • Download the correct mac file (arm64.dmg for M1/M2 macs or .dmg for intel macs)
  • Right click the downloaded file and hit open (can't double click to open it)
  • Accept the unknown developer warning

Installing on Ubuntu (or other .deb linux flavors):

  • Download the .deb file (either the AMD or ARM file based on the chip you're computer is using)
  • From the terminal run:
sudo dpkg -i ./Downloads/ove-electron_1.5.0_arm64.deb

Installing on Windows

  • Download the .exe file
  • Choose to keep the file (if it warns you it might be malicious)
  • Open it (it should start the installer) <---------------Copy Paste The Above into the Release Notes------------------->

Testing

I've set up a single spectron test under /test It can be run via yarn test Unfortunately spectron doesn't support interacting with native dialogs so I'd need to mock those to have the tests be at all useful. I should probably do this sometime down the line. (note OVE itself is close to full test coverage https://github.com/TeselaGen/openVectorEditor)

DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::

OLD -- Releasing

These environment variables will need to be set in a local .env file:

APPLEID=yourstringhere //my apple id
//this needs to be an app-specific password (not just my apple password) https://appleid.apple.com/account/manage
APPLEIDPASS=yourstringhere 
GH_TOKEN=yourstringhere
yarn deploy

wait for it to finish

Troubleshooting release process

How auto-updating works : https://medium.com/@johndyer24/creating-and-deploying-an-auto-updating-electron-app-for-mac-and-windows-using-electron-builder-6a3982c0cee6

If apple notarize isn't working, this can help to troubleshoot: https://stackoverflow.com/questions/58358449/notarizing-electron-apps-throws-you-must-first-sign-the-relevant-contracts-on

If you're seeing an itunes signing in error, maybe the app specific password needs to be updated: https://david.dev/how-to-notarize-your-electron-app

If you're seeing this error: The request is missing an Authorization header field containing a valid macaroon You'll need to re-login to snapcraft.io (credentials under ubuntu.com)

snapcraft login

DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::DEPRECATED::