Skip to content

The "One and Done" initiative, previously known as "QA Taskboard", is a workflow where Mozilla community contributors can pick tasks and work on them - one at a time, one day at a time - and feel good about doing them.

License

lizzard/oneanddone

 
 

Repository files navigation

oneanddone

The "One and Done" initiative, previously known as "QA Taskboard", is a workflow where Mozilla community contributors can pick tasks and work on them - one at a time, one day at a time - and feel good about doing them.

One and Done is written with Playdoh and Django.

If you're interested in helping us out, please read through the blog post and reach out to us!

Development Setup

These instructions assume you have git, python, and pip installed. If you don't have pip installed, you can install it with easy_install pip.

  1. Start by getting the source:

    $ git clone --recursive git@github.com:mozilla/oneanddone.git
    $ cd oneanddone

    Note you may want to fork and clone the repo as described in the github docs if you are doing active development.

  2. Create a virtualenv for One and Done. Skip the first step if you already have virtualenv installed.

    $ pip install virtualenv
    $ virtualenv venv
    $ source venv/bin/activate
  3. Install the compiled requirements:

    $ pip install -r requirements/compiled.txt
  4. Set up a local MySQL database. The MySQL Installation Documentation explains how to do this. Make sure your DB is utf8.

  5. Configure your local settings by copying oneanddone/settings/local.py-dist to oneanddone/settings/local.py and customizing the settings in it:

    $ cp oneanddone/settings/local.py-dist oneanddone/settings/local.py

    The file is commented to explain what each setting does and how to customize them. One item in the local.py settings file you are going to want to change, if you are running this locally and not over HTTPS, is the following.

    Open up local.py, find and uncomment SESSION_COOKIE_SECURE = False

  6. Create the initial empty database:

    # Start the MySQL server
    $ mysql.server start
    # Once successfully started, log into the console
    # using your username and password
    $ mysql -uroot -p
    # Create the database
    mysql> create database oneanddone;
  7. Initialize your database structure:

    $ python manage.py syncdb

Applying Migrations

We're using South to handle database migrations. To apply the migrations, run the following:

$ ./manage.py migrate oneanddone.tasks && ./manage.py migrate oneanddone.users

If you make changes to an existing model you will need to regeneratre the schema migration as follows:

$ ./manage.py schemamigration oneanddone.tasks --auto

To generate a blank schema migration:

$ ./manage.py datamigration oneanddone.mymodel data_migration_name

Then fill in the generated file with logic, fixtures, etc. You can then apply this migration as above with:

$ ./manage.py migrate oneanddone.mymodel

Running the Development Server

You can launch the development server like so:

$ python manage.py runserver

If you are asked to create a super user, just enter no and let the process complete.

Functional Tests

Functional (Selenium) tests for oneanddone are maintained by the Web QA team and can be found at oneanddone-tests.

License

This software is licensed under the Mozilla Public License v. 2.0_. For more information, read the file LICENSE.

.. _Mozilla Public License v. 2.0: http://mozilla.org/MPL/2.0/

About

The "One and Done" initiative, previously known as "QA Taskboard", is a workflow where Mozilla community contributors can pick tasks and work on them - one at a time, one day at a time - and feel good about doing them.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published