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
- nodejs (version >= 10.11.0)
- Can be downloaded from nodejs.org.
- yarn
- Can be downloaded from yarnpkg.com.
- python 2.7
- Can be downloaded from python.org
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. Useyarn 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