A web application for managing user experiments for Mozilla Firefox.
Перейти к файлу
Jared Kerim a58d31e478 Use higher res logo icon 2017-04-20 16:05:51 -04:00
app Use higher res logo icon 2017-04-20 16:05:51 -04:00
nginx Add project skeleton 2016-11-09 20:06:28 +00:00
scripts Collapse Dockerfiles into one fixes #9 2016-11-24 19:34:43 +00:00
.env.circle Rename postgres service to db and wait to start 2017-04-19 18:47:59 +00:00
.env.sample Rename postgres service to db and wait to start 2017-04-19 18:47:59 +00:00
.gitignore Update README fixes #22 2017-04-18 13:24:55 -04:00
LICENSE Initial commit 2016-10-20 14:42:32 -04:00
Makefile Rename postgres service to db and wait to start 2017-04-19 18:47:59 +00:00
README.md Update README fixes #22 2017-04-18 13:24:55 -04:00
circle.yml Support old compose file layout for legacy docker support on circleci 2017-04-20 13:55:23 -04:00
docker-compose.yml Isolate compose services on their own private network 2017-04-19 23:47:48 +00:00
docker-compose.yml.circleci Support old compose file layout for legacy docker support on circleci 2017-04-20 13:55:23 -04:00

README.md

Logo Experimenter

Experimenter is a Python/Django application for managing experiments in Mozilla projects, such as Activity Stream.

What is an experiment?

An experiment is a way to measure how a change to an application will affect its usage and behaviour. For example you could change the way your application processes data in a way that affects its performance characteristics, as well as how it presents that data to the user. To make that change into an experiment, you could create a flag which optionally enables the new code path, and then enable it for a subset of users and measure how it affects things like performance and engagement.

Installation

  1. Install docker on your machine

  2. Clone the repo

     git clone <your fork>
    
  3. Copy the sample env file

     cp .env.sample .env
    
  4. Create a new secret key and put it in .env

     make secretkey
    
  5. Run tests

     make test
    

Done!

Usage

Experimenter uses docker for all development, testing, and deployment.

The following helpful commands have been provided via a Makefile:

build

Build the application container by executing the build script

compose_build

Build the supporting services (nginx, postgresql) defined in the compose file

up

Start a dev server listening on port 80 using the Django runserver

test

Run the Django test suite with code coverage

lint

Run flake8 against the code

check

Run both test and lint

migrate

Apply all django migrations

shell

Start an ipython shell inside the container (this lets you import and test code, interact with the db, etc)

bash

Start a bash shell inside the container (this lets you interact with the containerized filesystem)

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

Experimenter uses the Mozilla Public License