Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Contributing to Django

Contributing to Django

It's easy

Tomek Paczkowski

January 12, 2012
Tweet

More Decks by Tomek Paczkowski

Other Decks in Programming

Transcript

  1. Contributing to Django
    Tickets, patches and triaging
    Tomek Paczkowski
    @oinopion
    January 2012

    View full-size slide

  2. Tickets
    Django uses Trac. For better or worse.
    http://code.djangoproject.com

    View full-size slide

  3. Tickets statistics
    All open tickets 1800 (!)
    Waiting for patch 675
    Patch needs improvement 412
    Patch needs tests 167
    Patch needs review 196

    View full-size slide

  4. Ticket triaging
    Tickets start as new

    View full-size slide

  5. Ticket triaging
    Tickets start as new
    If bug is confirmed: accepted

    View full-size slide

  6. Ticket triaging
    Tickets start as new
    If bug is confirmed: accepted
    Patch is good: ready for commit

    View full-size slide

  7. Ticket triaging
    Tickets start as new
    If bug is confirmed: accepted
    Patch is good: ready for commit
    Commited to trunk: fixed

    View full-size slide

  8. 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

    View full-size slide

  9. Ticket flags
    has patch if not, write one!

    View full-size slide

  10. Ticket flags
    has patch if not, write one!
    patch needs improvement style, logic errors

    View full-size slide

  11. Ticket flags
    has patch if not, write one!
    patch needs improvement style, logic errors
    needs documentation docs are a must

    View full-size slide

  12. 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

    View full-size slide

  13. 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

    View full-size slide

  14. 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

    View full-size slide

  15. Running unit tests
    cd /path/to/trunk
    pip install -e . # best in virtualenv
    cd tests/
    ./runtests.py --settings=test_sqlite

    View full-size slide

  16. 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

    View full-size slide

  17. Patching
    svn diff > ticket12345.diff
    or
    git diff > ticket12345.diff

    View full-size slide

  18. Concerned?
    If you have ever shipped any production code
    than you are qualified to contribute.

    View full-size slide

  19. That’s all, folks!
    Questions?

    View full-size slide

  20. That’s all, folks!
    Questions?
    Thank you!
    http://j.mp/django-contribute

    View full-size slide