montage
montage copied to clipboard
📷 Photo evaluation tool for and by Wiki Loves competitions

Montage
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.
Testing
pip install tox into your virtualenv, then tox.
Deployment
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 deploywithout arguments will deploymastertomontage-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.
Installing on toolforge from scratch
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/
venv notes
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
Database administration notes
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