-
Gulp CLI: We use Gulp 4, which requires the 4.0 branch of gulp-cli. Install this with
npm install -g gulpjs/gulp-cli#4.0
. It is compatible with Gulp 3 in case you have other projects with Gulpfiles. -
Wine: Needed to build the Windows .exe file. Go here for instructions https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build
Check out this repository and run npm install
.
Run npm start
, which will compile the JavaScript, set up a file watcher to continuously build if you make changes, and launch XDE.
When you make changes to files under src
, the watcher will compile the changed files and place them under build
. Refresh XDE with Cmd+R to load the latest code.
The entry point of the app is build/main.js
. The contents of the build
directory are generated by a Gulp task that runs Babel on the files under src
. We don't commit the build
directory to Git but we do distribute it with the packaged app.
The entry point loads web/index.html
in the Chromium instance. This is a normal HTML page except that its JavaScript has access to Node's APIs and can call require()
. It mounts the root React component whose source code is under the build
directory.
-
Make sure you have the DeveloperIDApplication.p12 certificate installed
It's in Charlie's Dropbox if you need it.
Make sure it gets installed in the login keychain, NOT the system keychain.
-
run
npm run dist
-
Test the .app to make sure it works
This is dumb but you have to move it out of the directory its put in because otherwise it searches for node_modules/ in xde/ and gets confused and breaks
-
Create a git tag called vX.Y.Z in XDE, not universe. Push the tag to github.
-
Go to https://github.com/exponent/xde/releases and click on "Draft a new release". Select the tag you just pushed. Title should be same as tag name. Write a short changelog. Make sure to drag the .zip file into the release attachments. Wait for upload and publish release.