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

Having Your Pony And Committing It Too

Having Your Pony And Committing It Too

Jacob Burch

May 15, 2013
Tweet

More Decks by Jacob Burch

Other Decks in Programming

Transcript

  1. Me. • Engineer at Revolution Systems • Minor contributor to

    django.core.cache • Not in AUTHORS File • Yet! Wednesday, May 15, 13
  2. Not Covered • Prerequisite skills (virtualenv/git) • Large overview of

    core code • Advice in what to get involved in (The sprint introduction is great for this!) Wednesday, May 15, 13
  3. It's like your first day at a new school. You

    don't know who's popular, why they're popular, where the other kids hang out after school, what teachers they're mocking, what couples they're gossiping about. I remember feeling totally overwhelmed at my first Django sprint...I didn't know anyone, I didn't know Django internals very well, and I had no idea where to start. My initial suggestions were pretty severely rebuffed. In retrospect, I see exactly why, but at the time it would have been easy to declare that "these core devs are dumb and don't understand my pain", or ask "why won't they just commit my patch?" Wednesday, May 15, 13
  4. It's like your first day at a new school. You

    don't know who's popular, why they're popular, where the other kids hang out after school, what teachers they're mocking, what couples they're gossiping about. I remember feeling totally overwhelmed at my first Django sprint...I didn't know anyone, I didn't know Django internals very well, and I had no idea where to start. My initial suggestions were pretty severely rebuffed. In retrospect, I see exactly why, but at the time it would have been easy to declare that "these core devs are dumb and don't understand my pain", or ask "why won't they just commit my patch?" Marty Alchin Author, Pro Django Carl Meyer Django Core Russell Keith-Magee President of the DSF Wednesday, May 15, 13
  5. Max Weber describes politics as "the slow boring of hard

    boards". Open source is much the same. -Russell Keith-Magee Wednesday, May 15, 13
  6. Pro-active vs Patient [I]f I wanted something committed it would

    take real work and persistence Talk to the people, they actually know it better, they've been where you are right now. Don't be afraid. -Jannis Leidel -Carl Meyer Wednesday, May 15, 13
  7. Confident vs Humble You are not your code. -Marty Alchin

    Be bold and don't let the old man's club destroy your ideas. -Jannis Leidel Follow the Wikipedia motto, "Be bold". -Alex Gaynor Realise that you're not going to get instant gratification. -Russell Keith-Magee Wednesday, May 15, 13
  8. Before you even think of anything • Fork https://github.com/django/django/ •

    git clone your repo. • ./runtests.py --settings=test_sqlite • Do not pass GO until tests run* Wednesday, May 15, 13
  9. Bug Fixes • Start with a test condition • “A

    test case that demonstrates the way things are failing for you is worth 20 issues that try to describe the problem perfectly.” - Daniel Lindsley • Test against regressions. • Not necessarily free from discussion Wednesday, May 15, 13
  10. Major Contributions • Do your homework • Search trac •

    Search django-developers • Become familiar with the code you’re proposing to heavily change/modify/ add to. Wednesday, May 15, 13
  11. Minor Additions • Go-ahead not necessary but nice • Treat

    it as seriously as a major addition Wednesday, May 15, 13
  12. In which I run a 90% risk of embarrassing myself

    • Goal: Get an accepted merge into django Full Disclosure • Have “dry” written code • Consulted other core devs offline before attempting such insanity Wednesday, May 15, 13
  13. Proposal • Don’t communicate entitlement. • Don’t focus only on

    your own needs. • Patience: Accept this is the start of a conversation. Wednesday, May 15, 13
  14. Proposal • State the problem clearly • Confidence: Propose a

    clear solution • Show your homework • Previous tickets/attempts • Potential downsides/drawbacks • Humility: Unsure of an aspect? Ask! Wednesday, May 15, 13
  15. Code • pep8, mostly • respect existing style • Linters

    are your friend • Comments are your friend • Get a peer code review before submitting. https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/ “...don't be afraid to source-dive, it's just Python.” -Daniel Lindsley Wednesday, May 15, 13
  16. Code, etc • Follow rules of proposal • Document and

    boldly defend design decisions (wiki) Wednesday, May 15, 13
  17. Review •Your ego is not on the line. • Humility:

    No, really. Wednesday, May 15, 13
  18. (Lack of) Review • Patience: Core Members are people. •

    Pro-active: Send polite, friendly follow up messages often Wednesday, May 15, 13
  19. Review: Pt. 1 of n • Confidence: Do not give

    up or get angry if changes must be made. • Follow up quickly • Email Tag can be frustrating • #django-dev can help Wednesday, May 15, 13
  20. Questions? @jacobburch jacobb Thanks to: Marty Alchin, Jacob Kaplan-Moss, Alex

    Gaynor, Russell Keith-Magee, Jannis Leidel, Daniel Lindsley, Carl Meyer, Jeff Triplett Wednesday, May 15, 13