My experience on trying to fix #24662 Django issue

ticket

dashboard

Steps

As a newbie of Django bug fixing, I had to understand how the bug fixing workflow works.

First thing to do is to build the environment. It is good to work on a virtualenv, since the most important thing is to reproduce the bug in the exact (or more similar) environment the submitter detected the bug. Virtualenvs allow to leave the system untouched while keeping several different environments active in it.

Getting right Dajngo from source

The best way to consistently reproduce (and fix) a bug is to get the right version of Dajngo. And by getting it from source.

get Django from github: git clone git@github.com:django/django.git

checkout to the right tag (like 1.7.7 or stable/1.7.x )

activate virtualenvs

install django in virtualenv by doing:

change directory where the setup.py is and do: pip install -e .

install according requirements:

pip install -r tests/requirements/<>.txt

hint: see pip wheel for some good goodies :D

run tests, to check whether everything went the right way :) :

tests/runtests.py (some test could not be executed. Legend is: x, s (skipped))

Now I have a virtualenv woth django 1.x.x . It is possible to have n virtualenvs, each of them with its version of django.

I also installed Mysql-python==1.2.5 to match with the ticket environment.

Reproduce Bug

Once the environment is ready, it is possible to reproduce the bug. If necessary it can be reproduced with several version of Django.

In my case In my machine I executed (see ticket);

workon 24662_dj177 && ./manage.py migrate && mysql -u root -p < /home/letti/src/app/mysqlscript_20150409.sql && ./manage.py migrate && PYTHONPATH=. python /home/letti/src/app/ipython_20150409.log

workon 24662_dj177 && rm ticket_24662 && ./manage.py migrate && PYTHONPATH=. python /home/letti/src/app/ipython_20150409.log

workon 24662_dj18 && ./manage.py migrate && mysql -u root -p < /home/letti/src/app/mysqlscript_20150409.sql && ./manage.py migrate && PYTHONPATH=. python /home/letti/src/app/ipython_20150409.log

workon 24662_dj18 && rm -f ticket_24662 && ./manage.py migrate && PYTHONPATH=. python /home/letti/src/app/ipython_20150409.lo