Skip to content
This repository has been archived by the owner on Sep 25, 2018. It is now read-only.

Latest commit

 

History

History
43 lines (24 loc) · 2.08 KB

PACKAGING.md

File metadata and controls

43 lines (24 loc) · 2.08 KB

Working on XDE

Prerequisites

Check out this repository and run npm install.

Running XDE

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.

Directory Structure

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.

To create a signed version of the app

  1. 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.

  2. run npm run dist

  3. 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

  4. Create a git tag called vX.Y.Z in XDE, not universe. Push the tag to github.

  5. 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.