Continuous Updating

11c3ac04d669661020cf80a822cd9620?s=47 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?

11c3ac04d669661020cf80a822cd9620?s=128

Robert Reiz

December 14, 2013
Tweet

Transcript

  1. #ContinuousUpdating @RobertReiz

  2. 100 libraries per project in avg.

  3. How do you keep track of your LIBRARIES?

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

  5. Which LICENSES are your dependencies using?

  6. You don’t know ?

  7. Requirements Analysis Design Coding Testing Accepting 15 years ago we

    used to work with the WATERFALL MODEL
  8. But today we are AGILE

  9. Everything the Waterfall Model used to execute in one year

    ...  ... we nowadays execute in 2 weeks!
  10. The way we develop software today totally changed!

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

    CONTINUOUS Delivery
  12. But what about  CONTINUOUS Updating

  13. How do you update your LIBRARIES ?

  14. You don’t ?

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

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

  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.
  18. Core committers don’t release new versions just for fun!

  19. • Bug Fixes • Security Fixes • Speed & Memory

    optimisation • New Features They always have good reasons
  20. How do you ensure that new versions don’t break the

    system?
  21. Semantic Versioning Migration Paths Continuous Testing

  22. http://semver.org/

  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
  24. 2.0.0 2.1.0 2.1.1 2.1.2 3.0.0 Major Minor Patch Patch Major

  25. Always follow the MIGRATION PATH

  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!
  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
  28. Always run your TESTS against new versions

  29. Another reason for being current

  30. Do you really believe those young talents wanna work with

    COBOL?  Or other OLD SHIT?
  31. Tracking versions is a pain!

  32. SOFTWARE LIBRARIES are NOT like iPhone Apps!

  33. 100 libraries per project in avg. After 2 weeks the

    first libraries are OUT-DATED!
  34. Developers are missing critical BUG FIXES  and important UPDATES!

  35. Manually checking for updates is no fun! It cost TIME

    & MONEY! NOBODY WANTS TO DO IT!
  36. So, how do you wanna solve this PROBLEM

  37. You have to AUTOMATE

  38. You need a TOOL for that!

  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
  40. www.VersionEye.com Keeps an eye on more than 550K open source

    libraries! Supports 22 Languages and 10 Package Managers!
  41. https://www.versioneye.com/api API

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

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

  44. @RobertReiz Questions?