Skip to content

Latest commit

 

History

History
63 lines (41 loc) · 2.71 KB

FOR_DEVELOPERS.md

File metadata and controls

63 lines (41 loc) · 2.71 KB

For developers

Prerequisites

SuperConductor has some native dependencies which need to be (re)built from source. This requires a full Node.js native module compiler toolchain, including Python 3.

On Windows, modern versions of the Node.js installer come with all the necessary build tools, and no further action is required. If you have issues with Python, install Python 3.

On Linux, install the build-essential package and then install Python 3. Also do a sudo apt-get install libasound2-dev libudev-dev

On macOS, install XCode and its optional tools xcode-select --install and then install Python 3.

Quick start

  • Install Yarn
  • cd >>path-to-this-folder<<
  • yarn
  • yarn start (Builds the project and starts the SuperConductor)

Architecture Overview

The project consists of 3 applications:

  • React application (application UI)
  • Electron backend (hosts frontend and implements logic)
  • TSR Bridge (node app that exposes HTTP server and executes TSR)

Instructions for running each app are in their respective folder.

Installing Dependencies

This project is a Lerna monorepo, which means that installing dependencies is handled a little differently. To properly bootstrap this project, install all dependencies, and cross-link the various packages, execute the following commands in the root of the project:

# Installs all dependencies, including Lerna.
yarn

Building the project

# Compile Typescript, run Webpack, etc:
yarn build

# Make binaries for the SuperConductor UI and tsr-bridge. Must have run "yarn build" first.
# The SuperConductor UI binary will be located at apps/app/dist.
# The tsr-bridge binary will be located at apps/tsr-bridge/dist.
# This command should work on all platforms (Windows, macOS, and Linux).
yarn build:binary

Making a new release (Admins only)

  1. Run yarn release:bump in the root of the repo to bump the appropriate version numbers in the various package.json files. Lerna will automatically commit and push the changes along with the appropriate tag.
  2. Wait for the Create GitHub Release action to finish.
  3. Go to the releases page and publish the draft release.

Pre-releases

  • On the develop branch, run yarn release:preminor first time after a release: 1.5.4 -> 1.6.0-alpha.0
    • Then run yarn release:prerelease to bump the prerelease version: 1.6.0-alpha.0 -> 1.6.0-alpha.1
  • On master branch, if a bugfix needs to be tested, run yarn release:prerelease: 1.5.4 -> 1.5.5-alpha.0