You need the following installed on your computer:
- Git
- Node.js (with NPM)
- Ember CLI
- Yarn
- We use eslint, so ensure your editor has a linter with the eslint package installed.
- Clone this repo
git clone <repository-url>
- Change into the new directory
- Run
yarn setup
To run the app against the local development environment:
- Firstly clone the dev environment and start it with the command:
./start.sh
(this can take a while if it's the first time you've run it). - Install dependencies using
yarn
, do NOT usenpm
, it does not work:yarn install
- To allow the local frontend to talk to these other services, run:
yarn startLocal
(or alternativelyyarn startLocalOnNewMac
on Mac with the fancy keyboard display) - Visit your app at http://localhost:4200.
We use ember-cli-mocha for running our tests. This uses the Chai assertion library. Ember-cli-mocha overrides the test blueprints of ember-cli.
The actual testing modules are from ember-mocha, so reference this when writing tests.
We also use ember-sinon for spies and better stubbing.
To run the tests use: ember test --server
or ember t -s
for short.
It's easy to cut corners. We have in the past, however this leaves us with nasty code which comes with many undesirable traits.
To ensure our code follows best practices, please become familiar with this ember coding style-guide.
As well as this, we encourage component based design and functional programming. Composability > inheritance.
Make use of the many generators for code, try ember help generate
for more details
Whenever a PR is merged into master, the new build of master is deployed to [dev]](https://discover-dev.repositive.io) automatically.
- Because you can't directly push changes to master, you must first make a new branch.
- Within the new branch, update the version number with
npm version <major | minor | patch>
- Push with tags:
git push && git push --tags
- You can create a release by editting the release notes of the tag. This gives us a good history of what we've deployed.
- Create a PR to merge the upgrade branch into master. You must choose the rebase and merge option, not squash.