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

Continuous Updates

Juanito Fatas
May 20, 2016
100

Continuous Updates

Continuous Updates @ Rails Pacific 2016 <3

Juanito Fatas

May 20, 2016
Tweet

Transcript

  1. CONTINUOUS
    UPDATES
    Update Early x Update Often
    #RailsPacific 2016

    View full-size slide

  2. Juanito Fatas from Taiwan
    Jolly Good Code
    EFQQCPU

    View full-size slide

  3. GEMFILE GEMFILE.LOCK
    BUNDLE INSTALL
    Manage Dependencies
    HFNTSC HFNTMPDLFE
    JOUSPEVDFEJOQSF

    View full-size slide

  4. $ bundle update

    View full-size slide

  5. How often
    do you
    update?
    !!

    View full-size slide

  6. LATER
    EQUALS
    NEVER

    View full-size slide

  7. Winston Teo
    Practice of updating all
    dependencies to
    newer versions several
    times a month.
    Organiser, RedDotRubyConf

    View full-size slide

  8. Benefits of
    Continuous Updates

    View full-size slide

  9. INCREMENTAL
    IMPROVEMENTS

    View full-size slide

  10. FIX SECURITY
    VULNERABILITIES

    View full-size slide

  11. REDUCE

    TECHNICAL DEBT

    View full-size slide

  12. MAKE FUTURE
    UPGRADE EASIER

    View full-size slide

  13. DEVELOPER DISLIKE
    LEGACY GEMS

    View full-size slide

  14. MAINTAINER

    LOVE BUGS FROM
    NEW RELEASES

    View full-size slide

  15. CONTINUOUS
    LEARNINGS FROM
    GEM UPDATES

    View full-size slide

  16. SHIP LATEST
    SOFTWARES

    View full-size slide

  17. Sounds good but
    how to do?

    View full-size slide

  18. bundle update
    add, commit, push
    open a new PR on GitHub.com
    Issue the Pull Request
    Manually

    View full-size slide

  19. From idea
    to script

    View full-size slide

  20. today = Time.current.strftime("%F")
    new_branch = "bundle-update-#{today}"
    `git checkout master`
    `git pull`
    `git checkout -b #{new_branch}`
    `bundle update`
    `git add Gemfile.lock`
    `git commit -m ‘Bundle Updates’
    `git push origin #{new_branch}`
    `git pull-request -m "Updates #{today}"

    View full-size slide

  21. Notification
    Services

    View full-size slide

  22. They only tell you,
    you still need to
    do the work.

    View full-size slide

  23. Still not
    automated

    View full-size slide

  24. Fully
    Automated
    Service

    View full-size slide

  25. Bundle
    Updates

    View full-size slide

  26. Security
    Updates

    View full-size slide

  27. deppbot is your
    Active Support

    View full-size slide

  28. https://www.deppbot.com
    5061
    Pull Requests Sent
    407
    hours
    Engineering Time Saved

    View full-size slide

  29. Update Early

    View full-size slide

  30. Update Often

    View full-size slide

  31. "Continuous Updates"

    View full-size slide

  32. #MakeRubyGreatAgain
    http://blog.testdouble.com/posts/2016-05-09-make-ruby-great-again.html
    Hopefully

    View full-size slide