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.
If you're interested in helping us out, please read through the blog post and reach out to us!
Start by getting the source:
$ git clone --recursive firstname.lastname@example.org: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.
Create a virtualenv for One and Done. Skip the first step if you already have
$ pip install virtualenv $ virtualenv venv $ source venv/bin/activate
Install the compiled requirements:
$ pip install -r requirements/compiled.txt
Set up a local MySQL database. The MySQL Installation Documentation explains how to do this. Make sure your DB is utf8.
Configure your local settings by copying
oneanddone/settings/local.pyand 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
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;
Initialize your database structure:
$ python manage.py syncdb
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
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 (Selenium) tests for oneanddone are maintained by the Web QA team and can be found at oneanddone-tests.
This software is licensed under the
Mozilla Public License v. 2.0_. For more
information, read the file
.. _Mozilla Public License v. 2.0: http://mozilla.org/MPL/2.0/