Contributing to Django
Tickets, patches and triaging
Tomek Paczkowski
@oinopion
January 2012
Slide 2
Slide 2 text
Tickets
Django uses Trac. For better or worse.
http://code.djangoproject.com
Slide 3
Slide 3 text
Tickets statistics
All open tickets 1800 (!)
Waiting for patch 675
Patch needs improvement 412
Patch needs tests 167
Patch needs review 196
Slide 4
Slide 4 text
Ticket triaging
Tickets start as new
Slide 5
Slide 5 text
Ticket triaging
Tickets start as new
If bug is confirmed: accepted
Slide 6
Slide 6 text
Ticket triaging
Tickets start as new
If bug is confirmed: accepted
Patch is good: ready for commit
Slide 7
Slide 7 text
Ticket triaging
Tickets start as new
If bug is confirmed: accepted
Patch is good: ready for commit
Commited to trunk: fixed
Slide 8
Slide 8 text
Ticket triaging
Tickets start as new
If bug is confirmed: accepted
Patch is good: ready for commit
Commited to trunk: fixed
http://j.mp/django-triage
Slide 9
Slide 9 text
Ticket flags
has patch if not, write one!
Slide 10
Slide 10 text
Ticket flags
has patch if not, write one!
patch needs improvement style, logic errors
Slide 11
Slide 11 text
Ticket flags
has patch if not, write one!
patch needs improvement style, logic errors
needs documentation docs are a must
Slide 12
Slide 12 text
Ticket flags
has patch if not, write one!
patch needs improvement style, logic errors
needs documentation docs are a must
needs tests and so are tests
Slide 13
Slide 13 text
Ticket flags
has patch if not, write one!
patch needs improvement style, logic errors
needs documentation docs are a must
needs tests and so are tests
easy pickings good for rookies
Slide 14
Slide 14 text
Get that damn trunk
Check out the code from the repository:
svn co https://code.djangoproject.com/svn/django/trunk/
or
git clone git://github.com/django/django.git
Slide 15
Slide 15 text
Running unit tests
cd /path/to/trunk
pip install -e . # best in virtualenv
cd tests/
./runtests.py --settings=test_sqlite
Slide 16
Slide 16 text
Running unit tests
cd /path/to/trunk
pip install -e . # best in virtualenv
cd tests/
./runtests.py --settings=test_sqlite
Running single test, selenium, etc:
http://j.mp/django-unit-tests
Slide 17
Slide 17 text
Patching
svn diff > ticket12345.diff
or
git diff > ticket12345.diff
Slide 18
Slide 18 text
Concerned?
If you have ever shipped any production code
than you are qualified to contribute.
Slide 19
Slide 19 text
That’s all, folks!
Questions?
Slide 20
Slide 20 text
That’s all, folks!
Questions?
Thank you!
http://j.mp/django-contribute