Overview
NOTE: This readme is a brief overview. For more in-depth docs on any specific component, refer to the wiki.
Dawn is a cross-platform frontend for the PiE robotics control system. It is the applications students will see and use when programming and testing their robots.
Dawn is a desktop app, but it is written with web technologies and packaged via Electron.
Development Quickstart
- Install Required Software:
- Install the latest NodeJS
- Once npm is installed, install electron:
sudo npm install -g electron
- Get code and dependencies
- Pull the latest code:
git clone https://github.com/pioneers/dawn
. - Get the submodules:
git submodule update --init --recursive
- This should create a
dawn
directory wherever you typed this command. Enter the dawn directory:cd dawn
. - Install dependencies with npm:
npm install
. Remember to do this step whenever you pull changes!
- Pull the latest code:
- Start developing (assuming you are in the
dawn
directory):- Start webpack in watch mode:
npm run-script watch
- Leave this terminal window running: webpack compiles your code, and automatically recompiles it when it detects changes.
- This also runs a code linter, which will check for errors and incorrect code style.
- Note:
npm run-script build
does a similar thing tonpm run-script watch
, but it does not watch for changes, and it builds for production, not development. Usewatch
for development andbuild
when you are about to package an app for production.
- Launch the application:
npm start
.- Leave this terminal window running also. Dawn should open.
- When you make a change, the webpack watcher should automatically recompile your code. To see your changes, you can refresh by pressing
Debug > Reload
from the menu bar.
- Start webpack in watch mode:
Packaging Dawn
This is only relevant(if you are releasing for production. If you are just developing you can ignore this.
-
Install electron-packager:
npm install -g electron-packager
-
Build for production:
npm run-script build
(as opposed tonpm run-script watch
during production). -
Package app:
- Packaging Dawn is done via a release script. To build for all platforms, run the following from the
dawn
folder:
node release.js
You can build for a specific platform and arch by adding
--platform=<PLATFORM> --arch=<ARCH>
, where<PLATFORM>
is one of {win32, darwin, linux} and<ARCH>
is one of {ia32, x64}. To build without pruning (which removes your devDependencies) add--noprune
. - Packaging Dawn is done via a release script. To build for all platforms, run the following from the
Experimental builds:
These are experimental builds for internal PiE use, and contain the latest features. For the latest stable release, download from here.