Development

Getting Started

See the quick installation guide.

Use the command: npm run watch to enable automatic recompilation.

submodules

Especially after synchronizing with the original repository, it is necessary to update the submodules. For example:

git submodule update --recursive

Or if the clone was done incorrectly. (without --recurse-submodules) :

git submodule update --init --recursive

To remove any local changes made to the submodules, use:

git submodule foreach --recursive git reset --hard

To verify a feature that has not yet been integrated into a submodule, it is necessary to use the Holusion copy (via https://github.com/Holusion/ff-*). Preferably, create a feature branch, contribute it upstream, and use it very temporarily if absolutely necessary.

Modify the .gitmodules file to change the source URL, then run:

git submodule sync --recursive

Then, in the changed module folder (i.e., libs/ff-x) :

cd libs/ff-xx
git fetch
git checkout origin/<feature-branch>

Finally, in the root folder:

git add libs/ff-x

Commit the changes to the URL and the submodule’s HEAD.

Tests

The server part of the code is tested with mocha and chai. See source/server/**/*.test.js.

Run the unit tests with:

npm test

Or to select specific tests:

(cd source/server && npm test -- --grep "test name")

Some console.log lines are disabled to make the standard output of the tests more readable. They can be reactivated by forcing the TEST=0 variable in the command line.

Synchronization with the original repository

This repository is synchronized with upstream. The changes are made in a master branch and are merged with the upstream/masterbranch. It is important to keep the code porting as simple as possible (see for example: friendly forks management).

git merge -m "merge branch 'master' on $(git rev-parse --short master)" master