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

Contributing to Chromium

Contributing to Chromium

Chromium is the open-source project behind Google’s Chrome web browser, and there’s nothing more satisfying than contributing to something you use. Except maybe a freshly opened can of Pringles. But how do you _actually_ contribute to it? We’ll talk about building Chromium locally, making changes, and sending them out for review.

Monica Dinculescu

February 10, 2015
Tweet

More Decks by Monica Dinculescu

Other Decks in Programming

Transcript

  1. (or: all your code could belong to us)
    chromium
    Contributing to

    View full-size slide

  2. the long con
    Act 1:

    View full-size slide

  3. open source

    View full-size slide


  4. user impact

    View full-size slide


  5. GOOD DOCUMENTATION

    View full-size slide

  6. giant codebase

    View full-size slide


  7. NEED A beefy machine

    View full-size slide

  8. the SETUP
    Act 2:

    View full-size slide

  9. get the code

    View full-size slide

  10. fetch chromium

    View full-size slide

  11. git pull && gclient sync

    View full-size slide

  12. GET A COFFEE

    View full-size slide

  13. get the code
    build the code

    View full-size slide

  14. ninja -C out/Debug chrome
    get the code

    View full-size slide

  15. ninja -C out/Release chrome
    get the code

    View full-size slide

  16. ninja -C out/Release tests
    get the code

    View full-size slide

  17. get another coffee
    get the code

    View full-size slide

  18. get the code
    build the code
    make changes

    View full-size slide

  19. get the code
    build the code

    View full-size slide

  20. get the code
    build the code
    out/Debug/chrome.exe

    View full-size slide

  21. get the code
    build the code
    git commit

    View full-size slide

  22. get the code
    build the code
    review changes
    make changes

    View full-size slide

  23. get the code
    build the code
    make changes
    git cl upload

    View full-size slide

  24. let’s talk about tools
    Intermission!

    View full-size slide

  25. generate build files
    gclient sync

    View full-size slide

  26. ninja
    BUILD THE CODE

    View full-size slide

  27. git cl upload
    UPLOAD YOUR CODE

    View full-size slide

  28. git cl upload
    kinda like git push
    UPLOAD YOUR CODE

    View full-size slide

  29. git cl try
    TEST YOUR CODE ON BOTS

    View full-size slide

  30. git cl patch
    DOWNLOAD FROM CODE REVIEW

    View full-size slide

  31. git pull
    GET THE NEW CODE

    View full-size slide

  32. git status -sb
    what is up?

    View full-size slide

  33. git checkout -b foo
    MAKE A BRANCH

    View full-size slide

  34. git rebase master
    UPDATE A BRANCH

    View full-size slide

  35. git commit
    SAVE YOUR CODE

    View full-size slide

  36. code reviews
    Act 3

    View full-size slide

  37. PIET MONDRIAN
    de stijl

    View full-size slide

  38. gerrit rietveld
    de stijl

    View full-size slide

  39. git cl upload

    View full-size slide

  40. OWNERS & OWNER FILES
    Digression

    View full-size slide

  41. codesearch
    tl; dr:
    crbug
    how to
    halp list
    halp irc
    https://code.google.com/p/chromium/codesearch
    https://code.google.com/p/chromium/issues/list
    [email protected]
    #chromium
    http://www.chromium.org/developers/how-tos/get-the-code
    halpful blog post
    http://meowni.ca/posts/chromium-101

    View full-size slide


  42. @notwaldorf

    View full-size slide