$30 off During Our Annual Pro Sale. View Details »

Continuous Updating

Robert Reiz
December 14, 2013

Continuous Updating

How do you keep track of your libraries? How do you keep you software projects up-to-date?

Robert Reiz

December 14, 2013
Tweet

More Decks by Robert Reiz

Other Decks in Programming

Transcript

  1. #ContinuousUpdating
    @RobertReiz

    View Slide

  2. 100 libraries per
    project in avg.

    View Slide

  3. How do you keep track
    of your LIBRARIES?

    View Slide

  4. How many DEPENDENCIES do
    you have in your project?

    View Slide

  5. Which LICENSES are
    your dependencies
    using?

    View Slide

  6. You don’t know ?

    View Slide

  7. Requirements
    Analysis
    Design
    Coding
    Testing
    Accepting
    15 years ago we used to work with the WATERFALL MODEL

    View Slide

  8. But today we are AGILE

    View Slide

  9. Everything the Waterfall Model used
    to execute in one year ...
    ... we nowadays execute in 2 weeks!

    View Slide

  10. The way we develop software
    today totally changed!

    View Slide

  11. Being AGILE got us
    CONTINUOUS Testing
    CONTINUOUS Refactoring
    CONTINUOUS Integration
    CONTINUOUS Delivery

    View Slide

  12. But what about
    CONTINUOUS Updating

    View Slide

  13. How do you update your
    LIBRARIES ?

    View Slide

  14. You don’t ?

    View Slide

  15. Because you never touch a
    running system, right ?

    View Slide

  16. So you wanna work
    with COBOL! Right?
    Enjoy!

    View Slide

  17. If you can't fly then run,
    if you can't run then walk,
    if you can't walk then
    crawl,
    but whatever you do
    you have to keep moving
    forward.
    Martin Luther King Jr.

    View Slide

  18. Core committers don’t release
    new versions just for fun!

    View Slide

  19. • Bug Fixes
    • Security Fixes
    • Speed & Memory optimisation
    • New Features
    They always have good reasons

    View Slide

  20. How do you ensure that new
    versions don’t break the system?

    View Slide

  21. Semantic Versioning
    Migration Paths
    Continuous Testing

    View Slide

  22. http://semver.org/

    View Slide

  23. 1.MAJOR version when you make incompatible API changes
    2.MINOR version when you add functionality in a backwards-compatible manner
    3.PATCH version when you make backwards-compatible bug fixes.
    MAJOR.MINOR.PATCH

    View Slide

  24. 2.0.0
    2.1.0
    2.1.1
    2.1.2
    3.0.0
    Major
    Minor
    Patch
    Patch
    Major

    View Slide

  25. Always follow the
    MIGRATION PATH

    View Slide

  26. Many small steps are
    better than one big step
    You can do SMALL MIGRATIONS on the fly.
    BIG MIGRATIONS are risky and expensive.
    If you miss versions, you miss migration paths, too.
    And that leads to TROUBLE!

    View Slide

  27. 1 2 3 4
    migrate migrate migrate
    big migration … expensive!
    Don’t miss migration paths!
    on the fly on the fly on the fly

    View Slide

  28. Always run your TESTS against new versions

    View Slide

  29. Another reason for being current

    View Slide

  30. Do you really believe
    those young talents
    wanna work with
    COBOL?
    Or other OLD SHIT?

    View Slide

  31. Tracking versions is a pain!

    View Slide

  32. SOFTWARE LIBRARIES
    are NOT like iPhone
    Apps!

    View Slide

  33. 100 libraries per
    project in avg.
    After 2 weeks the first libraries are OUT-DATED!

    View Slide

  34. Developers are missing critical BUG FIXES
    and important UPDATES!

    View Slide

  35. Manually checking for
    updates is no fun!
    It cost TIME & MONEY!
    NOBODY WANTS TO DO IT!

    View Slide

  36. So, how do you wanna solve this
    PROBLEM

    View Slide

  37. You have to
    AUTOMATE

    View Slide

  38. You need a TOOL for that!

    View Slide

  39. GemNotifier Gemnasium VersionEye
    Languages Ruby
    Ruby, Node.JS,
    Python
    22 Languages
    GitHub no yes yes
    Bitbucket no no yes
    File upload no no yes
    URL parsing no no yes
    Changelogs no yes in progress
    Security no yes in progress
    Licenses no no yes
    API no no yes

    View Slide

  40. www.VersionEye.com
    Keeps an eye on more than 550K open source libraries!
    Supports 22 Languages and 10 Package Managers!

    View Slide

  41. https://www.versioneye.com/api
    API

    View Slide

  42. https://www.versioneye.com/statistics

    View Slide

  43. https://www.versioneye.com/statistics

    View Slide

  44. @RobertReiz
    Questions?

    View Slide