Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 1.64 KB

DEVELOPING.md

File metadata and controls

63 lines (46 loc) · 1.64 KB

How this works

There are 2 main parts of the app:

  1. renderer: this is the HTML/Javascript-based UI rendered within the Electron container. This runs Vue.js, a React-like Javascript framework for rendering front-end.
  2. main: includes the main app (written in Electron). Handles keyboard shortcuts, brings up the UI and overlays.

Note that these 2 both depend on each other, and one cannot run without the other.

How to develop

The most up-to-date instructions can always be derived from CI:

.github/workflows/main.yml

Here's what that looks like as of 2023-12-03.

cd renderer
npm install
npm run make-index-files
npm run dev

# In a second shell
cd main
npm install
npm run dev

How to build

cd renderer
npm install
npm run make-index-files
npm run build

cd ../main
npm run build
# We want to sign with a distribution certificate to ensure other users can
# install without errors
CSC_NAME="Certificate name in Keychain" yarn package

How to release a build

  1. Commit all changes
  2. Bump version in main/package.json
  3. npm i in renderer & main (update package-lock.json with new version)
  4. npm run build in renderer & main
  5. Stage & commit bumped version
  6. git push
  7. git tag vX.X.X
  8. git push origin vX.X.X
  9. Open release page, create release with tag & title as text of tag & save as draft

How to build yourself

sh testUpdate.sh

Read the contents of testUpdate.sh to understand what it does. Running random scripts from the internet is not recommended so you really should read the code before running it.