/launcher

A launcher program to install and launch all the micro-services of the system

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Build status David Dependency Status David Dev Dependency Status

FIRST LEGO League TMS Launcher

This is the "FIRST LEGO League - Tournament Management System" Launcher. This project connect all the tournament management system components to create a single user-friendly application.

Using

You can find the installation file of the launcher at the FIRST LEGO League software page here.

Contributing

To contribute to this repository, please make a fork, make your changes and submit a pull request.

This way of work allows us to maintain proper code quality, which is important when working with a large amount of people on the same project. Feel free to join the discussion on the issues page.

The best way to work on a feature or a bug is to follow these steps:

  • fork the repository to your own github account
  • if already forked, make sure your fork is up to date with the base repo
  • create a new branch for your feature or bugfix
  • work
  • test
  • create a pull request to merge your development branch into a branch in the base repo
  • we will review your pull request, when ok, we will merge it into master

In your own fork, you can create any branch structure you like, however, some best practices / tips are:

  • use git flow to structure your branches
  • keep pull requests small and concise. Try to limit a pr to only one feature / bug fix. We'd rather have many small pull requests than one large one
  • keep your fork up to date with the base repo on a regular basis, by rebasing against it. This makes sure your pull requests will merge nicely

Updates

Module updates

To update a module versions in the launcher, make a change in ./dev-scripts/config-get.js. Some modules are fetched from the npm, the Javascript Package Manager, while others are taken directly from github.

  • To update a module fetched from npm, update the version field with the version published to npm.
  • To update a module fetched from github, update the version field with the github commit hash.
Module npm / github
identity-provider github
display npm
tournament npm
scoring npm
rankings github
clock github

Launcher version update

TBD

Development

Prerequisites

For windows platform:

  • MS build tool 2017 + VC++ 2015.3 v140 toolset (x86,x64)

Development Installation

  • Clone the repository
  • Run from cmd yarn install
  • Run from cmd yarn get all - this would download all external modules for the launcher. Use yarn get --help to change the modules that you want to download.

Run Program Locally

The simple way run:

yarn start

The advanced way (usually if you want to config debug in your ide) run:

node ./node_modules/.bin/electron app/main.js

Debugging Node Modules

While running the launcher in development mode, each of the node modules is given a port for debug with the port 1#### where #### is the main port of the module itself. To use connect use your node debugger (For more information: node-debugging)

Building

To run the build, use the following script:

yarn build:dir --${platform}

where $platform$ must be replaced with either win or linux depend on your environment. You would be able to find the directory with the compiled application's files ./dist/${platform}-upacked. This directory contains the the application files only without the modules (and internals modules). Use the right packaging to create an installation file.

NOTE: the build script is not cross-compile script, so you should run the script on your desired platform.

Official platforms:

  • windows