Photo evaluation tool for and by Wiki Loves competitions
Round-based photo evaluation is a crucial step in the "Wiki Loves" series of photography competitions. Montage provides a configurable workflow that adapts to the conventions of all groups.
pip install tox
into your virtualenv, then tox
.
Ensure you have the necessary libraries by running pip install -r requirements-dev.txt
in a virtualenv of your choosing.
- Ensure all changes are committed
- Run the tests (
tox
) - Deploy to the dev instance with
fab deploy
. Ensure the script runs successfully.- Check that the the dev site came back up fine.
- Log in and test things out.
- Check the montage-dev sentry (devlabs)
- Use the audit log to check that the production instance isn't in active use.
- Deploy to the production instance with
fab deploy:tool=montage
- Check that the the production site came back up fine.
- Log in and test things out.
- Check the montage sentry (prod)
Some tips (at the time of writing):
fab deploy
without arguments will deploymaster
tomontage-dev
.- To change this, use a command of this format:
fab deploy:branch=other-branch,tool=montage-beta
- It will fail with a helpful message if your branch is not sync'd with origin. Push those commits!
- To change this, use a command of this format:
- If you see a huge golang stack trace from
fab deploy
, it's likely this bug. These seem to fix themselves, come back later if you can, otherwise check out the thread for details on usingGOMAXPROCS
. - All this only deploys the backend for now.
2024-04-23
- Create new $HOME/www/python
- Symlink src to repo clone
- Use webservice to create new venv
- See notes below
- Create / copy over prod config
- Create / copy over uwsgi.ini
- Upload / copy over static
- cp -r ~/(ORIG_LOCATION)/static/ ~/www/python/src/montage/static/
This mostly works: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Web/Python#Creating_a_virtual_environment
But before that you should install mysqlclient explicitly:
export MYSQLCLIENT_CFLAGS="-I/usr/include/mariadb/"
export MYSQLCLIENT_LDFLAGS="-L/usr/lib/x86_64-linux-gnu/ -lmariadb"
pip install mysqlclient
From https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database#Python:_Django
With the move to mariadb, the easiest way to access Montage's own data (not the replicas) is:
# on toolforge, become montage
$ sql tools
> use s53490__montage;s